#!/bin/sh
#**********************************************************************
#**                                                                 ***
#**  vemaxiom                                                       ***
#**    transforms the splitted vecfem equation file /tmp/terms.$3   ***
#**    into a axiom session file, starts the axiom session          ***
#**    and creates the fortran sources which are changed            ***
#**    to the vecfem user routines by vembuild.                     ***
#**                                                                 ***
#**********************************************************************
#**                                                                 ***
#**        Copyrights University of Karlsruhe, 1995                 ***
#**        Program by L. Grosz                                      ***
#**                                                                 ***
#**********************************************************************
#**                                                                 ***
#**   arguments: $1 => number of solution components (=NK)          ***
#**              $2 => path of the axiom include files              ***
#**              $3 => file extension                               ***
#**                                                                 ***
#**    /tmp/terms.$3 = file of the equation with following syntax:  ***
#**                                                                 ***
#**         fminimize=0,1                                           ***
#**         fsteady=0,1                                             ***
#**       #declarations                                             ***
#**          <name>=<expr>                                          ***
#**       #Dirichlet conditions:                                    ***
#**          DB<i>=<expr>                                           ***
#**       #Initial conditions:                                      ***
#**          U0<i>=<expr>                                           ***
#**       #volume kernels                                           ***
#**          IM(3)=<expr>                                           ***
#**       #area kernels                                             ***
#**          IM(2)=<expr>                                           ***
#**       #line kernels                                             ***
#**          IM(1)=<expr>                                           ***
#**       #point kernels                                            ***
#**          IM(0)=<expr>                                           ***
#**                                                                 ***
#**   expr=(x<i>,tau<ij>,u<i>,u<i>x<j>,ut<i>,ut<i>x<j>,             ***
#**                                    v<i>,v<i>x<j>)               ***
#**         fortran expressions but '^' instead of '**'             ***
#**                                                                 ***
#**  the vecfem variables are elongated so that in the fortran      ***
#**  code of the user routines the code will not become longer      ***
#**                                                                 ***
#**********************************************************************
#**                                                                 ***
#**  generated files:                                               ***
#**                                                                 ***
#**  /tmp/vemuserb.$3                                               ***
#**    for compu=1,$1                                               ***
#**                    s<i>=<expr>                                  ***
#**                    t<i>=<expr>                                  ***
#**                    B(compu)=<expr>                              ***
#**                                                                 ***
#**   /tmp/vemuseru0.$3                                             ***
#**    for compu=1,$1                                               ***
#**                    s<i>=<expr>                                  ***
#**                    t<i>=<expr>                                  ***
#**                    U0ZZ(compu)=<expr>                           ***
#**                                                                 ***
#**   /tmp/vemuserf.$3                                              ***
#**    for compu=1,$1; class=0,3                                    *** 
#**                   s<i>=<expr>                                   ***
#**                   t<i>=<expr>                                   ***
#**                   F0(compv,class)      =<expr>                  ***
#**                   F1(compv,class,1)    =<expr>                  ***
#**                         ...                                     ***
#**                   F1(compv,class,class)=<expr>                  ***
#**                                                                 ***
#**   /tmp/vemusrfu.$3                                              ***
#**    for compu=1,$1; compv=1,$1; class=0,3                        *** 
#**                  s<i>=<expr>                                    ***
#**                  t<i>=<expr>                                    ***
#**                  F0U(compv,compu,class)=<expr>                  ***
#**                  F1U(compv,compu,class,1)=<expr>                ***
#**                         ...                                     ***
#**                  F1U(compv,compu,class,class)=<expr>            ***
#**                  F0UX(compv,compu,class,1)=<expr>               ***
#**                         ...                                     ***
#**                  F0UX(compv,compu,class,class)=<expr>           ***
#**                  F1UX(compv,compu,class,1,1)=<expr>             ***
#**                         ...                                     ***
#**                  F1UX(compv,compu,class,class,class)=<expr>     ***
#**   /tmp/vemusrfut.$3                                             ***
#**    for compu=1,$1; compv=1,$1; class=0,3                        *** 
#**                  s<i>=<expr>                                    ***
#**                  t<i>=<expr>                                    ***
#**                  F0UT(compv,compu,class)=<expr>                 ***
#**                  F1UT(compv,compu,class,1)=<expr>               ***
#**                         ...                                     ***
#**                  F1UT(compv,compu,class,class)=<expr>           ***
#**                  F0UTX(compv,compu,class,1)=<expr>              ***
#**                         ...                                     ***
#**                  F0UTX(compv,compu,class,class)=<expr>          ***
#**                  F1UTX(compv,compu,class,1,1)=<expr>            ***
#**                         ...                                     ***
#**                  F1UTX(compv,compu,class,class,class)=<expr>    ***
#**                                                                 ***
#**     /tmp/vemusermasks.$3                                        ***
#**                                                                 ***
#**                  LSYM=.TRUE./.FALSE.                            ***
#**                                                                 ***
#**   expr=(xzzzz<i>,tauzzz<ij>,uzz(i),dudxzz(i,j),utzz(i),         ***
#**         dutdxzz(i,j),s<i>,t<i>)                                 ***
#**                                                                 ***
#**   fortran expression, where s<i> t<i> are variables of axiom    ***
#**   to optimize the code and to hold the fortran standart of 24   ***
#**   continuation cards.                                           ***
#**                                                                 ***
#**********************************************************************
#**                                                                 ***
echo "axiom is not available." >&2
exit 1
