File: pick-dir/wr_trimolecular_latex.f90

    1       SUBROUTINE WR_TRIMOLECULAR_LATEX(Fn,Jchan,Species,Trimolecular,   &
    2                                      & NMAXR,NMAXS,Nspec,Nkt,           &
    3                                      & Nlinesperpage)
    4       USE KINETIC
    5       IMPLICIT NONE
    6 !
    7 !-----------------------------------------------------------------------
    8 !
    9 ! Dummy arguments
   10 !
   11       CHARACTER(200) :: Fn
   12       INTEGER :: Jchan , Nkt , Nlinesperpage , Nspec
   13       INTEGER :: NMAXR , NMAXS
   14       TYPE (SPECIES_RECORD) , DIMENSION(NMAXS) :: Species
   15       TYPE (TRIMOLECULAR_RECORD) , DIMENSION(NMAXR) :: Trimolecular
   16       INTENT (IN) Fn , Jchan , Nkt , Nlinesperpage , NMAXR , NMAXS ,    &
   17                 & Trimolecular
   18 !
   19 ! Local variables
   20 !
   21       CHARACTER(200) :: argst , powst , string , string1 , string2 ,    &
   22                       & string3 , string4 , string5 , string_m1
   23       INTEGER :: i , i1 , i2 , ii , ilines , ipow , itl , iwantp ,      &
   24                & iwantr , j , nproductsperline
   25       INTEGER :: INT
   26       INTEGER :: ISPEC
   27       LOGICAL :: lend , lfirst , lstart , ltable
   28       CHARACTER(20) :: st_blank , st_m
   29       CHARACTER(10) :: st_num
   30       REAL :: zarg
   31 !
   32 !-----------------------------------------------------------------------
   33 !
   34 !     Written by:   David Lary
   35 !
   36 !     Started:      7/1/1993
   37 !
   38 !     Last updated: 29/1/2004
   39 !
   40 !----------------------------------------------------------------------
   41 !
   42       CALL BLANK(st_blank)
   43       CALL BLANK(st_m)
   44       st_m(1:1) = "m'
   45 !
   46 !----------------------------------------------------------------------
   47 !
   48 !     trimolecular.
   49       WRITE (6,*) TRIM(Fn)
   50       OPEN (Jchan,FILE=TRIM(Fn),STATUS="unknown')
   51 !
   52 !----------------------------------------------------------------------
   53 !
   54 !     LaTeX document header.
   55       WRITE (Jchan,FMT="(a)') "\documentclass[10pt,a4]{article}'
   56       WRITE (Jchan,FMT="(a)')
   57       WRITE (Jchan,FMT="(73a)') "%' , ("-',i=1,72)
   58       WRITE (Jchan,FMT="(a)') "%'
   59       WRITE (Jchan,FMT="(a)')                                           &
   60      &"% LaTeX document automatically generated by the AutoChem Programm&
   61      &e "Pick"."
   62       WRITE (Jchan,FMT="(a)') "%'
   63       WRITE (Jchan,FMT="(a)') "% by David Lary 1993-2004.'
   64       WRITE (Jchan,FMT="(a)') "%'
   65       WRITE (Jchan,FMT="(a)') "% trimolecular reaction list.'
   66       WRITE (Jchan,FMT="(a)') "%'
   67       WRITE (Jchan,FMT="(73a)') "%' , ("-',i=1,72)
   68       WRITE (Jchan,FMT="(a)')
   69       WRITE (Jchan,FMT="(a)') "% Margins.'
   70       WRITE (Jchan,FMT="(a)') "\textwidth      5.9in '
   71       WRITE (Jchan,FMT="(a)') "\oddsidemargin -0.12in '
   72       WRITE (Jchan,FMT="(a)') "\evensidemargin .3in'
   73       WRITE (Jchan,FMT="(a)') "\marginparwidth 1.3in '
   74       WRITE (Jchan,FMT="(a)') "\topmargin     -.9in '
   75       WRITE (Jchan,FMT="(a)') "\textheight    9.4in'
   76       WRITE (Jchan,FMT="(a)')
   77       WRITE (Jchan,FMT="(a)') "% Package definitions.'
   78       WRITE (Jchan,FMT="(a)') "\usepackage{hyperref}'
   79       WRITE (Jchan,FMT="(a)') "\usepackage{times}'
   80       WRITE (Jchan,FMT="(a)')
   81       WRITE (Jchan,FMT="(a)')                                           &
   82                          &"% Make sure equations will not be in italic.'
   83       WRITE (Jchan,FMT="(a)') "\everymath={\fam0 }'
   84       WRITE (Jchan,FMT="(a)')
   85       WRITE (Jchan,FMT="(a)') "% Begin Document.'
   86       WRITE (Jchan,FMT="(a)') "\begin{document}'
   87       WRITE (Jchan,FMT="(a)')
   88 !
   89 !----------------------------------------------------------------------
   90 !
   91 !     trimolecular reaction section.
   92       WRITE (Jchan,FMT="(a)') "\section{Trimolecular Reactions}'
   93       WRITE (Jchan,FMT="(a)')
   94       WRITE (Jchan,FMT="(a)') "A total of '
   95       WRITE (Jchan,FMT="(i6)') Nkt
   96       WRITE (Jchan,FMT="(a)')                                           &
   97           &"trimolecular reactions were selected and they are given in '
   98       WRITE (Jchan,FMT="(a)')                                           &
   99                             &"Table~\ref{Table:trimolecular.reactions}.'
  100       WRITE (Jchan,FMT="(a)')
  101 !
  102 !----------------------------------------------------------------------
  103 !
  104 !     trimolecular reaction table.
  105 !
  106 !     Reaction loop.
  107       ilines = 0
  108       lstart = .TRUE.
  109       lfirst = .TRUE.
  110       DO i = 1 , Nkt
  111 !
  112          WRITE (string,FMT="(i6)') i
  113          WRITE (string_m1,FMT="(i6)') i - 1
  114 !
  115          IF ( lstart ) THEN
  116 !
  117 !           Start table.
  118             lstart = .FALSE.
  119 !
  120             WRITE (Jchan,FMT="(a)') "\begin{table*}'
  121             WRITE (Jchan,FMT="(a)') "\centering'
  122 !           WRITE (Jchan,FMT='(a)') '\small'
  123             WRITE (Jchan,FMT="(a)') "\begin{tabular}{|c|rcl|c|}'
  124             WRITE (Jchan,FMT="(a)') "\hline'
  125             WRITE (Jchan,FMT="(a)')                                     &
  126                     &"\# & Reactants & & Products & Rate coefficient \\'
  127             WRITE (Jchan,FMT="(a)') "\hline'
  128             WRITE (Jchan,FMT="(a)')
  129             WRITE (Jchan,FMT="(a)') "\vspace{-0.12in}&&&&\\'
  130 !
  131          ENDIF
  132 !
  133 !        See the size of the reaction product line and determine
  134 !        if we need to split it up.
  135          itl = 0
  136          DO j = 1 , Trimolecular(i)%iwantp
  137             itl = itl + LEN_TRIM(Trimolecular(i)%P(j))
  138 !
  139             WRITE (st_num,FMT="(f6.3)') Trimolecular(i)%Z(j)
  140             i1 = SCAN(TRIM(st_num),"1.000')
  141             i2 = SCAN(TRIM(st_num),".000')
  142             IF ( i1/=2 ) THEN
  143                IF ( i2==3 ) WRITE (st_num,FMT="(i6)')                   &
  144                                  & INT(Trimolecular(i)%Z(j))
  145                st_num = TRIM(st_num)
  146             ELSEIF ( i1==2 .AND. i2==2 ) THEN
  147                st_num = TRIM(st_num)
  148             ELSE
  149                st_num = st_blank
  150             ENDIF
  151             itl = itl + LEN_TRIM(st_num)
  152          ENDDO
  153 !
  154          IF ( ANY(INT(Trimolecular(i)%Z(1:Trimolecular(i)%iwantp))/=1) )&
  155             & THEN
  156             nproductsperline = 2
  157          ELSE
  158             nproductsperline = 3
  159          ENDIF
  160          IF ( itl>11 ) nproductsperline = 1
  161 !
  162          ltable = .FALSE.
  163          IF ( Trimolecular(i)%iwantp>nproductsperline ) ltable = .TRUE.
  164          IF ( ltable ) WRITE (Jchan,FMT="(a)') "\vspace{-0.12in}&&&&\\'
  165          IF ( Trimolecular(i)%flag=="V' ) WRITE (Jchan,FMT="(a)')       &
  166              & "\vspace{-0.12in}&&&&\\'
  167 !
  168          WRITE (Jchan,FMT="(i6,a)') i , " & '
  169 !
  170          iwantr = Trimolecular(i)%iwantr
  171          IF ( Trimolecular(i)%RE(iwantr)==st_m ) iwantr = iwantr - 1
  172          DO j = 1 , iwantr
  173             ii = ISPEC(Trimolecular(i)%RE(j),Species,Nspec)
  174             WRITE (Jchan,FMT="(a))') "$'//TRIM(Species(ii)%latex)//"$'
  175             IF ( j<iwantr ) WRITE (Jchan,FMT="(a))') "+'
  176          ENDDO
  177 !
  178          WRITE (Jchan,FMT="(a)') "& $\stackrel{M}{\longrightarrow}$ &'
  179 !
  180          IF ( ltable ) THEN
  181             WRITE (Jchan,FMT="(a)') "\vline \ '
  182             IF ( nproductsperline==3 ) THEN
  183                WRITE (Jchan,FMT="(a)') "\begin{tabular}{lclclc}'
  184             ELSEIF ( nproductsperline==2 ) THEN
  185                WRITE (Jchan,FMT="(a)') "\begin{tabular}{lclc}'
  186             ELSEIF ( nproductsperline==1 ) THEN
  187                WRITE (Jchan,FMT="(a)') "\begin{tabular}{lc}'
  188             ENDIF
  189          ENDIF
  190          iwantp = Trimolecular(i)%iwantp
  191          IF ( Trimolecular(i)%P(iwantp)==st_m ) iwantp = iwantp - 1
  192          DO j = 1 , iwantp
  193 !
  194 !           if(st_num(j)/=st_blank)WRITE (jchan,FMT='(a)') TRIM(st_num(j))
  195             WRITE (st_num,FMT="(f6.3)') Trimolecular(i)%Z(j)
  196             i1 = SCAN(TRIM(st_num),"1.000')
  197             i2 = SCAN(TRIM(st_num),".000')
  198             IF ( i1/=2 ) THEN
  199                IF ( i2==3 ) WRITE (st_num,FMT="(i6)')                   &
  200                                  & INT(Trimolecular(i)%Z(j))
  201                WRITE (Jchan,FMT="(a)') TRIM(st_num)
  202             ELSEIF ( i1==2 .AND. i2==2 ) THEN
  203                WRITE (Jchan,FMT="(a)') TRIM(st_num)
  204             ENDIF
  205 !
  206 !
  207             ii = ISPEC(Trimolecular(i)%P(j),Species,Nspec)
  208             WRITE (Jchan,FMT="(a))') "$'//TRIM(Species(ii)%latex)//"$'
  209             IF ( j<iwantp ) THEN
  210                IF ( ltable ) WRITE (Jchan,FMT="(a)') "&'
  211                WRITE (Jchan,FMT="(a))') "+'
  212             ENDIF
  213             IF ( ltable ) THEN
  214                IF ( MOD(j,nproductsperline)==0 ) THEN
  215                   WRITE (Jchan,FMT="(a)') "\\'
  216                   ilines = ilines + 1
  217                ELSE
  218                   WRITE (Jchan,FMT="(a)') "&'
  219                ENDIF
  220             ENDIF
  221          ENDDO
  222          IF ( ltable ) WRITE (Jchan,FMT="(a)') "\end{tabular}'
  223 !
  224 !----------------------------------------------------------------------
  225 !
  226 !        Rate coeffecient expression
  227          IF ( Trimolecular(i)%flag=="E' ) THEN
  228 !
  229             WRITE (Jchan,FMT="(a)') "& \begin{tabular}{l}'
  230             WRITE (Jchan,FMT="(a)') "$k_{'//TRIM(string)                &
  231                                   & //"}$=$\frac{k_'//TRIM(string_m1)   &
  232                                    &//"}{'
  233             ilines = ilines + 2
  234             IF ( Trimolecular(i)%a1/=0. ) THEN
  235                CALL BLANK(string1)
  236                CALL POW_ARG(Trimolecular(i)%a1,zarg,ipow)
  237                CALL WR_POW_ARG(zarg,ipow,argst,powst,string1)
  238                WRITE (Jchan,FMT="(a)') TRIM(string1)
  239             ENDIF
  240 !
  241             IF ( Trimolecular(i)%a2/=0. ) THEN
  242                CALL BLANK(string2)
  243                CALL POW_ARG(Trimolecular(i)%a2,zarg,ipow)
  244                CALL WR_POW_ARG(zarg,ipow,argst,powst,string2)
  245                WRITE (Jchan,FMT="(a)') "e^\frac{'//TRIM(string2)        &
  246                                       &//"}{T}}$'
  247             ENDIF
  248             WRITE (Jchan,FMT="(a)') "\end{tabular}'
  249 !
  250          ELSE
  251 !
  252 !           WRITE (Jchan,FMT='(a)') '& \vline \  \begin{tabular}{l}'
  253             WRITE (Jchan,FMT="(a)') "& \begin{tabular}{l}'
  254 !
  255             ilines = ilines + 3
  256             IF ( Trimolecular(i)%a1/=0. .OR. Trimolecular(i)%a2/=0. .OR.&
  257                & Trimolecular(i)%a4/=0. ) THEN
  258 !
  259                WRITE (Jchan,FMT="(a)') "$k^{o}_{'//TRIM(string)         &
  260                                       &//"}$=[M]'
  261 !
  262                IF ( Trimolecular(i)%a1/=0. ) THEN
  263                   CALL BLANK(string1)
  264                   CALL POW_ARG(Trimolecular(i)%a1,zarg,ipow)
  265                   CALL WR_POW_ARG(zarg,ipow,argst,powst,string1)
  266                   WRITE (Jchan,FMT="(a)') "$'//TRIM(string1)//"$ '
  267                ENDIF
  268 !
  269                IF ( Trimolecular(i)%a2/=0. ) THEN
  270                   CALL BLANK(string2)
  271                   IF ( Trimolecular(i)%a2>=0. ) THEN
  272                      CALL POW_ARG(Trimolecular(i)%a2,zarg,ipow)
  273                      CALL WR_POW_ARG(zarg,ipow,argst,powst,string2)
  274                   ELSE
  275                      CALL POW_ARG(ABS(Trimolecular(i)%a2),zarg,ipow)
  276                      CALL WR_POW_ARG(zarg,ipow,argst,powst,string2)
  277                      string2 = "-'//TRIM(string2)
  278                   ENDIF
  279                   WRITE (Jchan,FMT="(a)') "$T^{'//TRIM(string2)//"}$ '
  280                ENDIF
  281 !
  282                IF ( Trimolecular(i)%a4/=0. ) THEN
  283                   CALL BLANK(string3)
  284                   CALL POW_ARG(Trimolecular(i)%a3,zarg,ipow)
  285                   CALL WR_POW_ARG(zarg,ipow,argst,powst,string3)
  286 !
  287                   CALL BLANK(string4)
  288                   IF ( Trimolecular(i)%a4>=0. ) THEN
  289                      CALL POW_ARG(Trimolecular(i)%a4,zarg,ipow)
  290                      CALL WR_POW_ARG(zarg,ipow,argst,powst,string4)
  291                   ELSE
  292                      CALL POW_ARG(ABS(Trimolecular(i)%a4),zarg,ipow)
  293                      CALL WR_POW_ARG(zarg,ipow,argst,powst,string4)
  294                      string4 = "-'//TRIM(string4)
  295                   ENDIF
  296 !
  297                   WRITE (Jchan,FMT="(a)') "$\frac{T}{'//TRIM(string3)   &
  298                         &//"}^{'//TRIM(string4)//"}$ '
  299                ENDIF
  300 !
  301                IF ( Trimolecular(i)%a5/=0. ) THEN
  302                   CALL BLANK(string5)
  303                   IF ( Trimolecular(i)%a5>=0. ) THEN
  304                      CALL POW_ARG(Trimolecular(i)%a5,zarg,ipow)
  305                      CALL WR_POW_ARG(zarg,ipow,argst,powst,string5)
  306                      WRITE (Jchan,FMT="(a)') "$e^{-\frac{'//            &
  307                           & TRIM(string5)//"}{T}}$ '
  308                   ELSE
  309                      CALL POW_ARG(ABS(Trimolecular(i)%a5),zarg,ipow)
  310                      CALL WR_POW_ARG(zarg,ipow,argst,powst,string5)
  311                      WRITE (Jchan,FMT="(a)') "$e^{\frac{'//TRIM(string5)&
  312                           & //"}{T}}$ '
  313                   ENDIF
  314                ENDIF
  315 !
  316                WRITE (Jchan,FMT="(a)') "\\'
  317 !
  318             ENDIF
  319 !
  320             IF ( Trimolecular(i)%b1/=0. .OR. Trimolecular(i)%b2/=0. .OR.&
  321                & Trimolecular(i)%b4/=0. ) THEN
  322 !
  323                WRITE (Jchan,FMT="(a)') "$k^{\infty}_{'//TRIM(string)    &
  324                                       &//"}$='
  325 !
  326                IF ( Trimolecular(i)%b1/=0. ) THEN
  327                   CALL BLANK(string1)
  328                   CALL POW_ARG(Trimolecular(i)%b1,zarg,ipow)
  329                   CALL WR_POW_ARG(zarg,ipow,argst,powst,string1)
  330                   WRITE (Jchan,FMT="(a)') "$'//TRIM(string1)//"$ '
  331                ENDIF
  332 !
  333                IF ( Trimolecular(i)%b2/=0. ) THEN
  334                   CALL BLANK(string2)
  335                   IF ( Trimolecular(i)%b2>=0. ) THEN
  336                      CALL POW_ARG(Trimolecular(i)%b2,zarg,ipow)
  337                      CALL WR_POW_ARG(zarg,ipow,argst,powst,string2)
  338                   ELSE
  339                      CALL POW_ARG(ABS(Trimolecular(i)%b2),zarg,ipow)
  340                      CALL WR_POW_ARG(zarg,ipow,argst,powst,string2)
  341                      string2 = "-'//TRIM(string2)
  342                   ENDIF
  343                   WRITE (Jchan,FMT="(a)') "$T^{'//TRIM(string2)//"}$ '
  344                ENDIF
  345 !
  346                IF ( Trimolecular(i)%b4/=0. ) THEN
  347                   CALL BLANK(string3)
  348                   CALL POW_ARG(Trimolecular(i)%b3,zarg,ipow)
  349                   CALL WR_POW_ARG(zarg,ipow,argst,powst,string3)
  350 !
  351                   CALL BLANK(string4)
  352                   IF ( Trimolecular(i)%b4>=0. ) THEN
  353                      CALL POW_ARG(Trimolecular(i)%b4,zarg,ipow)
  354                      CALL WR_POW_ARG(zarg,ipow,argst,powst,string4)
  355                   ELSE
  356                      CALL POW_ARG(ABS(Trimolecular(i)%b4),zarg,ipow)
  357                      CALL WR_POW_ARG(zarg,ipow,argst,powst,string4)
  358                      string4 = "-'//TRIM(string4)
  359                   ENDIF
  360 !
  361                   WRITE (Jchan,FMT="(a)') "$\frac{T}{'//TRIM(string3)   &
  362                         &//"}^{'//TRIM(string4)//"}$ '
  363                ENDIF
  364 !
  365                IF ( Trimolecular(i)%b5/=0. ) THEN
  366                   CALL BLANK(string5)
  367                   IF ( Trimolecular(i)%b5>=0. ) THEN
  368                      CALL POW_ARG(Trimolecular(i)%b5,zarg,ipow)
  369                      CALL WR_POW_ARG(zarg,ipow,argst,powst,string5)
  370                      WRITE (Jchan,FMT="(a)') "$e^{-\frac{'//            &
  371                           & TRIM(string5)//"}{T}}$ '
  372                   ELSE
  373                      CALL POW_ARG(ABS(Trimolecular(i)%b5),zarg,ipow)
  374                      CALL WR_POW_ARG(zarg,ipow,argst,powst,string5)
  375                      WRITE (Jchan,FMT="(a)') "$e^{\frac{'//TRIM(string5)&
  376                           & //"}{T}}$ '
  377                   ENDIF
  378                ENDIF
  379 !
  380                WRITE (Jchan,FMT="(a)') "\\'
  381 !
  382             ENDIF
  383 !
  384             WRITE (Jchan,FMT="(a)') "$f^{c}_{'//TRIM(string)//"}$='
  385 !
  386             IF ( Trimolecular(i)%c1/=0. ) THEN
  387                CALL BLANK(string1)
  388                CALL POW_ARG(Trimolecular(i)%c1,zarg,ipow)
  389                CALL WR_POW_ARG(zarg,ipow,argst,powst,string1)
  390                WRITE (Jchan,FMT="(a)') "$'//TRIM(string1)//"$ '
  391             ENDIF
  392 !
  393             IF ( Trimolecular(i)%c3/=0. ) THEN
  394                IF ( Trimolecular(i)%c2/=0. ) THEN
  395                   CALL BLANK(string2)
  396                   CALL POW_ARG(Trimolecular(i)%c2,zarg,ipow)
  397                   CALL WR_POW_ARG(zarg,ipow,argst,powst,string2)
  398 !
  399                   CALL BLANK(string3)
  400                   CALL POW_ARG(Trimolecular(i)%c3,zarg,ipow)
  401                   CALL WR_POW_ARG(zarg,ipow,argst,powst,string3)
  402 !
  403                   WRITE (Jchan,FMT="(a)') "$+(1-'//TRIM(string2)        &
  404                         &//") e^{-\frac{T}{'//TRIM(string3)//"}}$'
  405                ELSE
  406 !
  407                   CALL BLANK(string3)
  408                   CALL POW_ARG(Trimolecular(i)%c3,zarg,ipow)
  409                   CALL WR_POW_ARG(zarg,ipow,argst,powst,string3)
  410 !
  411                   WRITE (Jchan,FMT="(a)') "$+e^{-\frac{T}{'//           &
  412                        & TRIM(string3)//"}}$'
  413                ENDIF
  414             ENDIF
  415 !
  416             IF ( Trimolecular(i)%c4/=0. ) THEN
  417 !
  418                CALL BLANK(string2)
  419                CALL POW_ARG(Trimolecular(i)%c2,zarg,ipow)
  420                CALL WR_POW_ARG(zarg,ipow,argst,powst,string2)
  421 !
  422                CALL BLANK(string4)
  423                CALL POW_ARG(Trimolecular(i)%c4,zarg,ipow)
  424                CALL WR_POW_ARG(zarg,ipow,argst,powst,string4)
  425 !
  426                WRITE (Jchan,FMT="(a)') "$+'//TRIM(string2)              &
  427                                       &//" e^{-\frac{T}{'//TRIM(string4)&
  428                                      & //"}}$'
  429             ENDIF
  430 !
  431             IF ( Trimolecular(i)%c5/=0. ) THEN
  432                CALL BLANK(string5)
  433                CALL POW_ARG(Trimolecular(i)%c5,zarg,ipow)
  434                CALL WR_POW_ARG(zarg,ipow,argst,powst,string5)
  435 !
  436                WRITE (Jchan,FMT="(a)') "$+ e^{-\frac{T}{'//TRIM(string5)&
  437                                      & //"}}$'
  438             ENDIF
  439 !
  440             WRITE (Jchan,FMT="(a)') "\end{tabular}'
  441 !
  442          ENDIF
  443 !
  444 !----------------------------------------------------------------------
  445 !
  446          WRITE (Jchan,FMT="(a)') "\\'
  447          ilines = ilines + 1
  448 !
  449          lend = (i==Nkt) .OR. (ilines>Nlinesperpage)
  450 !
  451          IF ( lend ) THEN
  452 !
  453             ilines = 0
  454             lstart = .TRUE.
  455 !
  456 !           Close table.
  457             WRITE (Jchan,FMT="(a)')
  458             WRITE (Jchan,FMT="(a)') "\vspace{-0.01in}&&&&\\'
  459             WRITE (Jchan,FMT="(a)') "\hline'
  460             WRITE (Jchan,FMT="(a)') "\end{tabular}'
  461             IF ( lfirst ) THEN
  462                WRITE (Jchan,FMT="(a)')                                  &
  463                                     &"\caption{Trimolecular reactions.}'
  464                WRITE (Jchan,FMT="(a)')                                  &
  465                                  &"\label{Table:trimolecular.reactions}'
  466                lfirst = .FALSE.
  467             ELSE
  468                WRITE (Jchan,FMT="(a)')                                  &
  469                         &"\caption{(continued) Trimolecular reactions.}'
  470             ENDIF
  471             WRITE (Jchan,FMT="(a)') "\end{table*}'
  472             WRITE (Jchan,FMT="(a)') "\addtocounter{table}{-1}'
  473 !
  474          ELSE
  475 !
  476             IF ( Trimolecular(i)%flag=="V' ) WRITE (Jchan,FMT="(a)')    &
  477                 & "\vspace{-0.12in}&&&&\\'
  478             IF ( ltable ) WRITE (Jchan,FMT="(a)')                       &
  479                                 & "\vspace{-0.01in}&&&&\\'
  480             WRITE (Jchan,FMT="(a)') "\vspace{-0.01in}&&&&\\'
  481          ENDIF
  482 !
  483       ENDDO
  484 !     End of reaction loop.
  485 !
  486 !----------------------------------------------------------------------
  487 !
  488 !     Close LaTeX document.
  489       WRITE (Jchan,FMT="(a)')
  490       WRITE (Jchan,FMT="(a)') "\end{document}'
  491       CLOSE (Jchan)
  492 !
  493 !----------------------------------------------------------------------
  494 !
  495       END SUBROUTINE WR_TRIMOLECULAR_LATEX