Interactive session for prepared example 5



        *******************************************************            
        ****  Welcome to the PDE2D 9.6 Interactive Driver  ****            
        *******************************************************            
                                                                           
   PDE2D can solve systems of (linear or nonlinear) steady-state,          
   time-dependent and eigenvalue partial differential equations            
   in 1D intervals, general 2D regions, and in a wide range of simple      
   3D regions.  Ordinary differential equation systems can also be         
   solved.                                                                 
                                                                           
   You will now be asked a series of interactive questions about your      
   problem.  The answers you give will be used to construct a PDE2D        
   FORTRAN program, which can then be compiled and linked with the PDE2D   
   runtime routines to produce an executable program.  The FORTRAN         
   driver program created will be well-documented and highly readable      
   (most of the interactive messages are repeated in the comments),        
   so that minor modifications or corrections can be made directly to      
   the FORTRAN program, without the need to work through a new             
   interactive session.                                                    
                                                                           
   You can alternatively create your PDE2D FORTRAN program using the       
   PDE2D graphical user interface (GUI) ("pde2d_gui [progname]").  It      
                                                                      [RETURN]
   is extraordinarily easy to set up problems using the PDE2D GUI,         
   which handles 0D and 1D problems, and 2D and 3D problems in "a wide     
   range of simple regions".  However, the PDE2D GUI cannot handle         
   complex regions, so if you have a complex 2D region you must use        
   this Interactive Driver.                                                
                                                                           
   If this is your first time to use PDE2D, you may want to work           
   through an example problem before trying one of your own.  Do you       
   want to work through a prepared example?                                
|---- Enter yes or no
yes
   Several prepared examples are available.  Enter:                        
                                                                           
       1 - to see a simple problem: a simply-supported elastic plate       
           equation, with a unit load concentrated at the midpoint of      
           a square.                                                       
       2 - to see a more complex problem: a non-linear, steady-state       
           PDE, solved in an annulus.  Dirichlet (U = ...) boundary        
           conditions are imposed on part of the boundary, and Neumann     
           (dU/dn = ...) conditions are imposed on the other part, in      
           this example.  The initial triangulation is generated           
           automatically, and adaptive grid refinement is illustrated.     
       3 - to see an eigenvalue problem.  The region has a curved          
           interface across which material properties vary abruptly, in    
           this example.                                                   
       4 - to see the first part of a thermal stress problem.  In this     
           part, the temperature distribution in a V-notched block is      
           calculated by solving the time-dependent heat conduction        
           equation, using adaptive time step control.                     
       5 - to see the second part of a thermal stress problem.  In         
           this part, the stresses induced in the V-notched block by       
           thermal expansion are calculated, using the temperature         
           distribution output by example 4.  You must run example 4       
                                                                      [RETURN]
           and save the tabular output before you can run example 5.       
           Examples 4 and 5 illustrate communication between problems.     
       6 - to see a 1D time-dependent integro-differential equation for    
           a financial math application.  In this problem there is a       
           term involving an integral of the solution, which requires      
           that we use PDE2D's feature for interpolating the solution      
           at the last saved time step, for use in the integral term.      
       7 - to see a waveguide problem (an eigenvalue problem in which      
           the eigenvalue appears nonlinearly).  This example shows how    
           to handle boundary conditions of different types on the same    
           arc, and how to produce a plot of a computed integral vs time.  
       8 - to see the Navier-Stokes equations (penalty formulation)        
           solved for a fluid flowing around a bend.                       
       9 - to see a 3D elasticity problem, solved in a torus.  This        
           example illustrates the use of user-defined coordinate          
           transformations to handle more general 3D regions.              
      10 - to see a time-dependent wave equation (reduced to a system      
           of two PDEs), solved in a 3D box.                               
      11 - to see a 3D eigenvalue problem (the Schrodinger equation        
           in a hydrogen atom).  This example illustrates the use of       
           spherical coordinates and periodic boundary conditions.         
      12 - to see a 3D eigenvalue problem, solved in a composite region    
                                                                      [RETURN]
           consisting of two cylinders of different material properties.   
      13 - to see the axisymmetric Navier-Stokes equations solved in a     
           non-rectangular channel, using the collocation FEM.             
      14 - to see a 1D saturated/unsaturated water flow problem.           
      15 - to see a 1D version of the Schrodinger eigenvalue equation      
           of example 11.                                                  
       0 - (no example)                                                    
                                                                           
   If you select one of the examples, the correct answer for each          
   interactive question will be supplied after the question.               
|---- Enter an integer value in the range 0 to 15                 
5                                                                       
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
   $ This is a continuation of example 4, so you must run example 4 and   $
   $ save the tabular output (in a file named "dex4.out") before running  $
   $ this example.                                                        $
   $                                                                      $
   $ Recall that in example 4 we computed the temperature distribution    $
   $ in a V-notched block, at a time T=10.  Now we want to compute the    $
   $ stresses in the block induced by thermal expansion, using the        $
   $ temperature profile at T=10.                                         $
   $                                                                      $
   $ The relevant equations are the two coupled linear steady state PDES: $
   $                                                                      $
   $               (s11)x + (s12)y = 0                                    $
   $               (s12)x + (s22)y = 0                                    $
   $ where                                                                $
   $           s11 = E*(e11 + vnu*e22)/(1-vnu**2)                         $
   $           s22 = E*(vnu*e11 + e22)/(1-vnu**2)                         $
   $           s12 = 0.5*E*e12/(1+vnu)                                    $
   $ and                                                                  $
   $           e11 = Ux - al*(Z(x,y) - ZINIT)                             $
   $           e22 = Vy - al*(Z(x,y) - ZINIT)                             $
   $           e12 = Uy + Vx                                              $
                                                                      [RETURN]
   $ and                                                                  $
   $           (U,V) = displacement vector                                $
   $           Z(x,y) = temperature distribution at T=10 (from example 4) $
   $           ZINIT = 300 (equilibrium temperature)                      $
   $           E = 10**7 (elastic modulus)                                $
   $           vnu = 0.3 (Poisson ratio)                                  $
   $           al = 10**(-6) (coefficient of thermal expansion)           $
   $                                                                      $
   $ The block is assumed to be fastened to the wall so that the          $
   $ displacements are zero there.  Along the line of symmetry (X=0),     $
   $ U, Uy and Vx are zero, hence e12 and s12 are also zero.              $
   $                                                                      $
   $          Y=5     ---------------------------                         $
   $                 /                          |                         $
   $                /                           |                         $
   $               /                            |                         $
   $              |                             |                         $
   $              |                             |                         $
   $       U = 0  |                             |  U = 0                  $
   $     s12 = 0  |                             |  V = 0                  $
   $              |                             |                         $
   $              |                             |                         $
                                                                      [RETURN]
   $              |                             |                         $
   $          Y=0 -------------------------------                         $
   $             X=0                           X=5                        $
   $                                                                      $
   $ On the rest of the boundary there are no boundary forces, and the    $
   $ boundary conditions there are ((nx,ny) = unit normal):               $
   $             s11*nx + s12*ny = 0                                      $
   $             s12*nx + s22*ny = 0                                      $
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
                                                                      [RETURN]
   In what follows, when you are told to enter a 'FORTRAN expression',     
   this means any valid FORTRAN expression of 65 characters or less.       
   In this expression, you may include references to FORTRAN function      
   subprograms.  You may define these functions line by line at the end    
   of the interactive session, when prompted, or add them later using an   
   editor.                                                                 
                                                                           
   +++++++++++++++ THE "FINE PRINT" (CAN USUALLY BE IGNORED) ++++++++++++++
   + If you enter a "#" in the first column of any input line, this       +
   + instructs the interactive driver to read this and subsequent input   +
   + lines from the file "pde2d.in".  A "#" in the first column of an     +
   + input line in the file "pde2d.in" (or an end-of-file) instructs the  +
   + driver to switch back to interactive input.                          +
   +                                                                      +
   + All lines input during an interactive session are echo printed to    +
   + a file "echo.out".  You may want to modify this file and rename it   +
   + "pde2d.in", and read some or all of your input from this file during +
   + your next interactive session.                                       +
   ++++++++++++++++++++++++++ END OF "FINE PRINT" +++++++++++++++++++++++++
                                                                           
   PDE2D can solve problems with 0,1,2 or 3 space variables.  Enter the    
   dimension of your problem:                                              
                                                                      [RETURN]
                                                                           
     0 - to solve a time-dependent ordinary differential equation system,  
         or an algebraic or algebraic eigenvalue system                    
     1 - to solve problems in 1D intervals                                 
     2 - to solve problems in general 2D regions                           
     3 - to solve problems in a wide range of simple 3D regions            
                                                                           
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
   $ enter: 2                                                             $
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
|---- Enter an integer value in the range 0 to 3                  
2                                                                       
   Which finite element method do you want to use:                         
                                                                           
   1. Galerkin method                                                      
   2. Collocation method                                                   
                                                                           
   The collocation method can handle a wide range of simple 2D regions;    
   the Galerkin method can handle completely general 2D regions.           
                                                                           
   Enter 1 or 2 to select a finite element method.                         
   +++++++++++++++ THE "FINE PRINT" (CAN USUALLY BE IGNORED) ++++++++++++++
   + If you have a composite region, with discontinuous material          +
   + parameters, you should use the Galerkin method.  If your partial     +
   + differential equations and boundary conditions are difficult to put  +
   + into the "divergence" form required by the Galerkin method, or if    +
   + you have periodic boundary conditions, use the collocation method.   +
   + The collocation method produces an approximate solution with         +
   + continuous first derivatives; the Galerkin solution is continuous    +
   + but its first derivatives are not.                                   +
   ++++++++++++++++++++++++++ END OF "FINE PRINT" +++++++++++++++++++++++++
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
   $ enter: 1                                                             $
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
                                                                      [RETURN]
|---- Enter an integer value in the range 1 to 2                  
1                                                                       
   Is double precision mode to be used?  Double precision is recommended.  
                                                                           
   +++++++++++++++ THE "FINE PRINT" (CAN USUALLY BE IGNORED) ++++++++++++++
   + If double precision mode is used, variables and functions assigned   +
   + names beginning with a letter in the range A-H or O-Z will be DOUBLE +
   + PRECISION, and you should use double precision constants and FORTRAN +
   + expressions throughout; otherwise such variables and functions will  +
   + be of type REAL.  In either case, variables and functions assigned   +
   + names beginning with I,J,K,L,M or N will be of INTEGER type.         +
   +                                                                      +
   + It is possible to convert a single precision PDE2D program to double +
   + precision after it has been created, using an editor.  Just change   +
   + all occurrences of "real" to "double precision"                      +
   +                    " tdp" to "dtdp"  (note leading blank)            +
   + Any user-written code or routines must be converted "by hand", of    +
   + course.  To convert from double to single, reverse the changes.      +
   ++++++++++++++++++++++++++ END OF "FINE PRINT" +++++++++++++++++++++++++
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
   $ enter: yes                                                           $
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
|---- Enter yes or no
yes
   If you don't want to read the FINE PRINT, default NPROB.                
                                                                           
   +++++++++++++++ THE "FINE PRINT" (CAN USUALLY BE IGNORED) ++++++++++++++
   + If you want to solve several similar problems in the same run, set   +
   + NPROB equal to the number of problems you want to solve.  Then NPROB +
   + loops through the main program will be done, with IPROB=1,...,NPROB, +
   + and you can make the problem parameters vary with IPROB.  NPROB      +
   + defaults to 1.                                                       +
   ++++++++++++++++++++++++++ END OF "FINE PRINT" +++++++++++++++++++++++++
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
   $ press [RETURN] to default NPROB                                      $
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
  NPROB =             (Press [RETURN] to default)
|----Enter constant or FORTRAN expression-----------------------|
                                                                 
   PDE2D solves the time-dependent system (note: U,A,B,F,FB,GB,U0 may be   
   vectors, C,RHO may be matrices):                                        
                                                                           
     C(X,Y,T,U,Ux,Uy)*d(U)/dT = d/dX* A(X,Y,T,U,Ux,Uy)                     
                              + d/dY* B(X,Y,T,U,Ux,Uy)                     
                              -       F(X,Y,T,U,Ux,Uy)                     
                                                                           
   or the steady-state system:                                             
                                                                           
                          d/dX* A(X,Y,U,Ux,Uy)                             
                        + d/dY* B(X,Y,U,Ux,Uy)                             
                              = F(X,Y,U,Ux,Uy)                             
                                                                           
   or the linear and homogeneous eigenvalue system:                        
                                                                           
                          d/dX* A(X,Y,U,Ux,Uy)                             
                        + d/dY* B(X,Y,U,Ux,Uy)                             
                              = F(X,Y,U,Ux,Uy) + lambda*RHO(X,Y)*U         
                                                                           
   in an arbitrary two-dimensional region, R, with 'fixed' boundary        
   conditions on part of the boundary:                                     
                                                                           
                                                                      [RETURN]
         U = FB(X,Y,[T])                                                   
                                                                           
   and 'free' boundary conditions on the other part:                       
                                                                           
       A*nx + B*ny = GB(X,Y,[T],U,Ux,Uy)                                   
                                                                           
   For time-dependent problems there are also initial conditions:          
                                                                           
          U = U0(X,Y)   at T=T0                                            
                                                                           
   Here Ux,Uy represent the (vector) functions dU/dX,dU/dY, and (nx,ny)    
   represents the unit outward normal to the boundary.                     
                                                                           
   +++++++++++++++ THE "FINE PRINT" (CAN USUALLY BE IGNORED) ++++++++++++++
   + If your PDEs involve the solution at points other than (X,Y), the    +
   + function                                                             +
   +             (D)OLDSOL2(IDER,IEQ,XX,YY,KDEG)                          +
   + will interpolate (using interpolation of degree KDEG=1,2 or 3) to    +
   + (XX,YY) the function saved in UOUT(*,*,IDER,IEQ,ISET) on the last    +
   + time step or iteration (ISET) for which it has been saved.  Thus,    +
   + for example, if IDER=1, this will return the latest value of         +
   + component IEQ of the solution at (XX,YY), assuming this has not been +
                                                                      [RETURN]
   + modified using UPRINT...  If your equations involve integrals of the +
   + solution, for example, you can use (D)OLDSOL2 to approximate these   +
   + using the solution from the last time step or iteration.             +
   +                                                                      +
   + CAUTION: For a steady-state or eigenvalue problem, you must reset    +
   + NOUT=1 if you want to save the solution each iteration.              +
   ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
   + A system of NEQN complex partial differential equations must be      +
   + written as a system of 2*NEQN real equations, by separating the      +
   + equations into their real and imaginary parts.  However, note that   +
   + the complex arithmetic abilities of FORTRAN can be used to simplify  +
   + this separation.  For example, the complex PDE:                      +
   +       I*(Uxx+Uyy) = 1/(1+U**10),  where U = UR + UI*I                +
   + would be difficult to split up analytically, but using FORTRAN       +
   + expressions it is easy:                                              +
   +   A1 = -UIx,  B1 = -UIy,  F1 =  REAL(1.0/(1.0+CMPLX(UR,UI)**10))     +
   +   A2 =  URx,  B2 =  URy,  F2 = AIMAG(1.0/(1.0+CMPLX(UR,UI)**10))     +
   ++++++++++++++++++++++++++ END OF "FINE PRINT" +++++++++++++++++++++++++
   You may now define global parameters, which may be referenced in any    
   of the "FORTRAN expressions" you input throughout the rest of this      
   interactive session.  You will be prompted alternately for parameter    
   names and their values; enter a blank name when you are finished.       
                                                                      [RETURN]
                                                                           
   Parameter names are valid FORTRAN variable names, starting in           
   column 1.  Thus each name consists of 1 to 6 alphanumeric characters,   
   the first of which must be a letter.  If the first letter is in the     
   range I-N, the parameter must be an integer.                            
                                                                           
   Parameter values are either FORTRAN constants or FORTRAN expressions    
   involving only constants and global parameters defined on earlier       
   lines.  They may also be functions of the problem number IPROB, if      
   you are solving several similar problems in one run (NPROB > 1).  Note  
   that you are defining global CONSTANTS, not functions; e.g., parameter  
   values may not reference any of the independent or dependent variables  
   of your problem.                                                        
                                                                           
   +++++++++++++++ THE "FINE PRINT" (CAN USUALLY BE IGNORED) ++++++++++++++
   + If you define other parameters here later, using an editor, you must +
   + add them to COMMON block /PARM8Z/ everywhere this block appears, if  +
   + they are to be "global" parameters.                                  +
   +                                                                      +
   + The variable PI is already included as a global parameter, with an   +
   + accurate value 3.14159...                                            +
   ++++++++++++++++++++++++++ END OF "FINE PRINT" +++++++++++++++++++++++++
                                                                      [RETURN]
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
   $ enter: ZINIT                                                         $
   $          300.0                                                       $
   $        E                                                             $
   $          1.E7                                                        $
   $        VNU                                                           $
   $          0.3                                                         $
   $        AL                                                            $
   $          1.E-6                                                       $
   $      [blank line]                                                    $
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
 Parameter name = (type blank line to terminate)
ZINIT  
  ZINIT  =
|----Enter constant or FORTRAN expression-----------------------|
300.0                                                            
 Parameter name = (type blank line to terminate)
E      
  E      =
|----Enter constant or FORTRAN expression-----------------------|
1.E7                                                             
 Parameter name = (type blank line to terminate)
VNU    
  VNU    =
|----Enter constant or FORTRAN expression-----------------------|
0.3                                                              
 Parameter name = (type blank line to terminate)
AL     
  AL     =
|----Enter constant or FORTRAN expression-----------------------|
1.E-6                                                            
 Parameter name = (type blank line to terminate)
       
   If you don't want to read the FINE PRINT, enter 'no'.                   
                                                                           
   +++++++++++++++ THE "FINE PRINT" (CAN USUALLY BE IGNORED) ++++++++++++++
   + Do you want to be given a chance to write a FORTRAN block before the +
   + definitions of many functions?  If you answer 'no', you will still   +
   + be given a chance to write code before the definition of the PDE     +
   + coefficients, but not other functions.  Of course, you can always    +
   + add code later directly to the resulting program, using an editor.   +
   ++++++++++++++++++++++++++ END OF "FINE PRINT" +++++++++++++++++++++++++
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
   $ enter: no                                                            $
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
|---- Enter yes or no
no 
   Now, the first step in creating a 2D PDE2D program is to construct      
   an initial triangulation of the region R over which the partial         
   differential equations are to be solved.  This initial triangulation    
   can later be refined and graded to your specifications.                 
                                                                           
   The boundary of the region R should be divided into distinct            
   (curved or straight) arcs, each of which is smooth with smooth          
   boundary conditions.  Thus at every corner or point where the boundary  
   conditions have a discontinuity or change type, a new boundary arc      
   should begin.  Each arc is assigned a unique integer arc number, which  
   is arbitrary except that it must be negative if 'fixed' boundary        
   conditions are specified on that arc, and positive (but < 1000) if      
   'free' boundary conditions are specified.                               
                                                                           
   'Fixed' means that all unknowns are specified on that boundary          
   (Dirichlet type conditions) and 'free' refers to more general boundary  
   conditions, as defined earlier.  These more general conditions include  
   specification of the boundary flux (or normal derivative in the case    
   of a Laplacian operator).                                               
                                                                           
   +++++++++++++++ THE "FINE PRINT" (CAN USUALLY BE IGNORED) ++++++++++++++
   + If some, but not all, of the unknowns are specified on a boundary    +
                                                                      [RETURN]
   + arc, that arc should be considered 'free', since even 'fixed'        +
   + type conditions of the form:                                         +
   +                   Ui = FBi(X,Y,[T])                                  +
   + can be expressed as 'free' boundary conditions in the form:          +
   +               Ai*nx + Bi*ny = zero(Ui-FBi(X,Y,[T]))                  +
   + where zero(f) = Big_Number*f is a PDE2D-supplied function.           +
   ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
   + If Ai=Bi=0 (eg, if the PDE is first order), then setting GBi=0 is    +
   + equivalent to setting "no" boundary condition (which is sometimes    +
   + appropriate for first order PDEs), because the boundary condition    +
   + Ai*nx + Bi*ny = GBi reduces to 0=0.                                  +
   ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
   + Note: while 'fixed' boundary conditions are enforced exactly (at the +
   + nodes), 'free' boundary conditions are not; the greater the overall  +
   + solution accuracy, the more closely they are satisfied.              +
   ++++++++++++++++++++++++++ END OF "FINE PRINT" +++++++++++++++++++++++++
                                                                           
   There are 3 options for generating the initial triangulation:           
                                                                           
   1. If the region R is a rectangle with sides parallel to the X and Y    
      axes, then the initial triangulation can be generated automatically. 
   2. If the region R can be conveniently described by parametric          
                                                                      [RETURN]
      equations in the form:                                               
                      X = X(P,Q)                                           
                      Y = Y(P,Q)                                           
      where P and Q have constant limits (for example, if X=P*COS(Q),      
      Y=P*SIN(Q), P and Q will represent polar coordinates), then the      
      initial triangulation can also be generated automatically.           
   3. For more general regions, you will need to create an initial         
      triangulation by hand.                                               
                                                                           
   Enter INTRI = 1,2 or 3 to choose an initial triangulation option.       
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
   $ There are five arcs.  On the line of symmetry, the boundary          $
   $ conditions are mixed, so a positive arc number (3) is used.          $
   $                                                                      $
   $                          arc 2                                       $
   $                  ++++++++++++++++++++++++++-                         $
   $                 +                          -                         $
   $          arc 2 +                           -                         $
   $               +                            -                         $
   $              +                             -                         $
   $              +                             -                         $
   $        arc 3 +                             - arc -1                  $
                                                                      [RETURN]
   $              +                             -                         $
   $              +                             -                         $
   $              +                             -                         $
   $              +                             -                         $
   $              ++++++++++++++++++++++++++++++-                         $
   $                          arc 2                                       $
   $                                                                      $
   $ enter: INTRI = 3                                                     $
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
  INTRI =
|---- Enter an integer value in the range 1 to 3                  
3                                                                       
   For a general region, an initial triangulation is constructed           
   which generally consists of only as many triangles as needed to define  
   the region and to satisfy the following rules (triangles adjacent       
   to a curved boundary may be considered to have one curved edge):        
                                                                           
   1. The end points of each arc are included as vertices in the           
      triangulation.                                                       
                                                                           
   2. No vertex of any triangle may touch another in a point which is      
      not a vertex of the other triangle.                                  
                                                                           
   3. No triangle may have all three vertices on the boundary.             
                                                                           
   Now enter the number of vertices in the initial triangulation (NV0)     
   and the vertices (VXY(1,i),VXY(2,i)), i=1,...,NV0, when prompted.       
                                                                           
   The vertices may be numbered in any order, but that order will define   
   the vertex numbers referred to in the next list.                        
                                                                           
   +++++++++++++++ THE "FINE PRINT" (CAN USUALLY BE IGNORED) ++++++++++++++
   + If the elements of VXY, IABC and IARC are defaulted, these initial   +
   + triangulation arrays will be read from the file 'pde2d.tri'; in this +
                                                                      [RETURN]
   + case the values of NV0 and NT0 entered below must be the same as     +
   + those in the file.                                                   +
   +                                                                      +
   + A file 'pde2d.tri' is normally created when the final triangulation  +
   + from another program (cases INTRI=1,2 or 3) is dumped.  Reset IOTRI  +
   + to 1 in the other program, to cause the final triangulation to be    +
   + dumped into pde2d.tri.                                               +
   ++++++++++++++++++++++++++ END OF "FINE PRINT" +++++++++++++++++++++++++
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
   $ For this example, we can construct an initial triangulation          $
   $ of five triangles                                                    $
   $                                                                      $
   $            (1,5) 4+++++++++++++++++++++++++3 (5,5)                   $
   $                 + *                       *-                         $
   $                +   *                  *    -                         $
   $               +     *             *        -                         $
   $        (0,4) 5*      *        *            -                         $
   $              +   *    *   *                -                         $
   $              +      *  6 (2,3)             -                         $
   $              +       *     *               -                         $
   $              +     *           *           -                         $
   $              +   *                 *       -                         $
                                                                      [RETURN]
   $              + *                       *   -                         $
   $        (0,0) 1+++++++++++++++++++++++++++++2 (5,0)                   $
   $                                                                      $
   $ where the six vertices are numbered as indicated.                    $
   $ enter: NV0 = 6                                                       $
   $                                                                      $
   $        VXY(1,1) = 0     VXY(2,1) = 0                                 $
   $        VXY(1,2) = 5     VXY(2,2) = 0                                 $
   $        VXY(1,3) = 5     VXY(2,3) = 5                                 $
   $        VXY(1,4) = 1     VXY(2,4) = 5                                 $
   $        VXY(1,5) = 0     VXY(2,5) = 4                                 $
   $        VXY(1,6) = 2     VXY(2,6) = 3                                 $
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
  NV0 =
|---- Enter an integer value in the range 4 to +INFINITY          
6                                                                       


  VXY(1,1) =                         (Press [RETURN] to default)
|----Enter constant or FORTRAN expression-----------------------|
0                                                                
  VXY(2,1) =                         (Press [RETURN] to default)
|----Enter constant or FORTRAN expression-----------------------|
0                                                                


  VXY(1,2) =                         (Press [RETURN] to default)
|----Enter constant or FORTRAN expression-----------------------|
5                                                                
  VXY(2,2) =                         (Press [RETURN] to default)
|----Enter constant or FORTRAN expression-----------------------|
0                                                                


  VXY(1,3) =                         (Press [RETURN] to default)
|----Enter constant or FORTRAN expression-----------------------|
5                                                                
  VXY(2,3) =                         (Press [RETURN] to default)
|----Enter constant or FORTRAN expression-----------------------|
5                                                                


  VXY(1,4) =                         (Press [RETURN] to default)
|----Enter constant or FORTRAN expression-----------------------|
1                                                                
  VXY(2,4) =                         (Press [RETURN] to default)
|----Enter constant or FORTRAN expression-----------------------|
5                                                                


  VXY(1,5) =                         (Press [RETURN] to default)
|----Enter constant or FORTRAN expression-----------------------|
0                                                                
  VXY(2,5) =                         (Press [RETURN] to default)
|----Enter constant or FORTRAN expression-----------------------|
4                                                                


  VXY(1,6) =                         (Press [RETURN] to default)
|----Enter constant or FORTRAN expression-----------------------|
2                                                                
  VXY(2,6) =                         (Press [RETURN] to default)
|----Enter constant or FORTRAN expression-----------------------|
3                                                                
   Now enter the number of triangles in the initial triangulation (NT0),   
   and for each triangle k, give the vertex numbers of vertices a,b,c:     
               IABC(1,k) , IABC(2,k) , IABC(3,k)                           
   where the third vertex (c) is not on the boundary of R (or on a curved  
   interface arc), and the number,                                         
                           IARC(k)                                         
   of the arc cut off by the base, ab, of the triangle.  Put IARC(k)=0     
   if the base of triangle k does not intersect any boundary (or curved    
   interface) arc.  Recall that negative arc numbers correspond to         
   'fixed' boundary conditions, and positive arc numbers ( < 1000)         
   correspond to 'free' boundary conditions.                               
                                                                           
   The order of this list defines the initial triangle numbers.            
                                                                           
   +++++++++++++++ THE "FINE PRINT" (CAN USUALLY BE IGNORED) ++++++++++++++
   + Any of the partial differential equation coefficients or other       +
   + functions of X and Y which you are asked to supply later may be      +
   + defined as functions of a variable 'KTRI', which holds the number    +
   + of the INITIAL triangle in which (X,Y) lies.  This is useful when    +
   + the region is a composite of different materials, so that some       +
   + material parameters have different values in different subregions.   +
   ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
                                                                      [RETURN]
   + If any interfaces between subregions are curved, the interface arcs  +
   + may be assigned unique arc numbers of 1000 and above, and treated    +
   + like boundary arcs in the initial triangulation definition.  (You    +
   + will not be allowed to specify boundary conditions on them, however.)+
   + The triangulation refinement will follow the interface arcs, so that +
   + no final triangles will straddle an interface.                       +
   ++++++++++++++++++++++++++ END OF "FINE PRINT" +++++++++++++++++++++++++
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
   $ Recall that the initial triangulation is:                            $
   $                                                                      $
   $                            arc 2                                     $
   $                  4+++++++++++++++++++++++++3                         $
   $                 + *                       *-                         $
   $          arc 2 +   *     III          *    -                         $
   $               + IV  *             *        -                         $
   $              5*      *        *            -                         $
   $              +   *    *   *                -                         $
   $       arc 3  +      *  6         II        -  arc -1                 $
   $              +  V    *     *               -                         $
   $              +     *           *           -                         $
   $              +   *       I         *       -                         $
   $              + *                       *   -                         $
                                                                      [RETURN]
   $              1+++++++++++++++++++++++++++++2                         $
   $                            arc 2                                     $
   $                                                                      $
   $ where I,II,III,IV,V are the initial triangle numbers.                $
   $ enter:  NT0 = 5                                                      $
   $                                                                      $
   $   IABC(1,1) = 1   IABC(2,1) = 2   IABC(3,1) = 6    IARC(1) = 2       $
   $   IABC(1,2) = 2   IABC(2,2) = 3   IABC(3,2) = 6    IARC(2) = -1      $
   $   IABC(1,3) = 3   IABC(2,3) = 4   IABC(3,3) = 6    IARC(3) = 2       $
   $   IABC(1,4) = 4   IABC(2,4) = 5   IABC(3,4) = 6    IARC(4) = 2       $
   $   IABC(1,5) = 5   IABC(2,5) = 1   IABC(3,5) = 6    IARC(5) = 3       $
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
  NT0 =
|---- Enter an integer value in the range 3 to +INFINITY          
5                                                                       


  IABC(1,1) =                        (Press [RETURN] to default)
|----Enter constant or FORTRAN expression-----------------------|
1                                                                
  IABC(2,1) =                        (Press [RETURN] to default)
|----Enter constant or FORTRAN expression-----------------------|
2                                                                
  IABC(3,1) =                        (Press [RETURN] to default)
|----Enter constant or FORTRAN expression-----------------------|
6                                                                
  IARC(1) =               (Press [RETURN] to default)
|----Enter constant or FORTRAN expression-----------------------|
2                                                                


  IABC(1,2) =                        (Press [RETURN] to default)
|----Enter constant or FORTRAN expression-----------------------|
2                                                                
  IABC(2,2) =                        (Press [RETURN] to default)
|----Enter constant or FORTRAN expression-----------------------|
3                                                                
  IABC(3,2) =                        (Press [RETURN] to default)
|----Enter constant or FORTRAN expression-----------------------|
6                                                                
  IARC(2) =               (Press [RETURN] to default)
|----Enter constant or FORTRAN expression-----------------------|
-1                                                               


  IABC(1,3) =                        (Press [RETURN] to default)
|----Enter constant or FORTRAN expression-----------------------|
3                                                                
  IABC(2,3) =                        (Press [RETURN] to default)
|----Enter constant or FORTRAN expression-----------------------|
4                                                                
  IABC(3,3) =                        (Press [RETURN] to default)
|----Enter constant or FORTRAN expression-----------------------|
6                                                                
  IARC(3) =               (Press [RETURN] to default)
|----Enter constant or FORTRAN expression-----------------------|
2                                                                


  IABC(1,4) =                        (Press [RETURN] to default)
|----Enter constant or FORTRAN expression-----------------------|
4                                                                
  IABC(2,4) =                        (Press [RETURN] to default)
|----Enter constant or FORTRAN expression-----------------------|
5                                                                
  IABC(3,4) =                        (Press [RETURN] to default)
|----Enter constant or FORTRAN expression-----------------------|
6                                                                
  IARC(4) =               (Press [RETURN] to default)
|----Enter constant or FORTRAN expression-----------------------|
2                                                                


  IABC(1,5) =                        (Press [RETURN] to default)
|----Enter constant or FORTRAN expression-----------------------|
5                                                                
  IABC(2,5) =                        (Press [RETURN] to default)
|----Enter constant or FORTRAN expression-----------------------|
1                                                                
  IABC(3,5) =                        (Press [RETURN] to default)
|----Enter constant or FORTRAN expression-----------------------|
6                                                                
  IARC(5) =               (Press [RETURN] to default)
|----Enter constant or FORTRAN expression-----------------------|
3                                                                
   Are there any curved boundary (or curved interface) arcs?               
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
   $ enter: no                                                            $
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
|---- Enter yes or no
no 
   How many triangles (NTF) are desired for the final triangulation?       
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
   $ enter: NTF = 100                                                     $
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
  NTF =
|---- Enter an integer value in the range 5 to +INFINITY          
100                                                                     
   Enter a FORTRAN expression for TRIDEN(X,Y), which controls the          
   grading of the triangulation.  TRIDEN should be largest where the       
   triangulation is to be most dense.  The default is TRIDEN(X,Y)=1.0      
   (a uniform triangulation).                                              
                                                                           
   TRIDEN may also be a function of the initial triangle number KTRI.      
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
   $ press [RETURN] to default TRIDEN                                     $
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
  TRIDEN =             (Press [RETURN] to default)
|----Enter constant or FORTRAN expression-----------------------|
                                                                 
   If you don't want to read the FINE PRINT, enter 'no'.                   
                                                                           
   +++++++++++++++ THE "FINE PRINT" (CAN USUALLY BE IGNORED) ++++++++++++++
   + Do you want the triangulation to be graded adaptively?               +
   +                                                                      +
   + If you answer "yes", make sure there is no "pde2d.adp" file in the   +
   + working directory the first time you run the program, then run the   +
   + program two or more times, possibly increasing NTF each time.  On    +
   + the first run, the triangulation will be graded as guided by         +
   + TRIDEN(X,Y), but on each subsequent run, information output by the   +
   + previous run to "pde2d.adp" will be used to guide the grading of the +
   + new triangulation.                                                   +
                                                                          +
   + If ADAPT=.TRUE., after each run a file "pde2d.adp" is written        +
   + which tabulates the values of the magnitude of the gradient of the   +
   + solution (at the last time step or iteration) at an output NXP8Z by  +
   + NYP8Z grid of points (NXP8Z and NYP8Z are set to 101 in a PARAMETER  +
   + statement in the main program, so they can be changed if desired).   +
   + If NEQN > 1, a normalized average of the gradients of the NEQN       +
   + solution components is used.                                         +
   +                                                                      +
   + You can do all the "runs" in one program, by setting NPROB > 1.      +
                                                                      [RETURN]
   + Each pass through the DO loop, PDE2D will read the gradient values   +
   + output the previous pass.  If RESTRT=.TRUE., GRIDID=.FALSE., and     +
   + T0,TF are incremented each pass through the DO loop, it is possible  +
   + in this way to solve a time-dependent problem with an adaptive,      +
   + moving, grid.                                                        +
   +                                                                      +
   + Increase the variable EXAG from its default value of 1.5 if you want +
   + to exaggerate the grading of an adaptive triangulation (make it less +
   + uniform).  EXAG should normally not be larger than about 2.0.        +
   ++++++++++++++++++++++++++ END OF "FINE PRINT" +++++++++++++++++++++++++
                                                                           
   If you don't want to read the FINE PRINT, enter 'no'.                   
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
   $ enter: no                                                            $
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
|---- Enter yes or no
no 
   If you don't want to read the FINE PRINT, default SHAPE.                
                                                                           
   +++++++++++++++ THE "FINE PRINT" (CAN USUALLY BE IGNORED) ++++++++++++++
   + Enter a FORTRAN expression for SHAPE(X,Y), which controls the        +
   + approximate shape of the triangles.  The triangulation refinement    +
   + will proceed with the goal of generating triangles with an average   +
   + height to width ratio of approximately SHAPE(X,Y) near the point     +
   + (X,Y).  SHAPE must be positive.  The default is SHAPE(X,Y)=1.0.      +
   +                                                                      +
   + SHAPE may also be a function of the initial triangle number KTRI.    +
   ++++++++++++++++++++++++++ END OF "FINE PRINT" +++++++++++++++++++++++++
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
   $ press [RETURN] to default SHAPE                                      $
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
  SHAPE =             (Press [RETURN] to default)
|----Enter constant or FORTRAN expression-----------------------|
                                                                 
   If you don't want to read the FINE PRINT, enter ISOLVE = 4.             
                                                                           
   +++++++++++++++ THE "FINE PRINT" (CAN USUALLY BE IGNORED) ++++++++++++++
   + The following linear system solvers are available:                   +
   +                                                                      +
   + 1. Band method                                                       +
   +               The band solver uses a reverse Cuthill-McKee ordering. +
   + 2. Frontal method                                                    +
   +               This is an out-of-core version of the band solver.     +
   + 3. Jacobi bi-conjugate gradient method                               +
   +               This is a preconditioned bi-conjugate gradient, or     +
   +               Lanczos, iterative method.  (This solver is MPI-       +
   +               enhanced, if MPI is available.)  If you want to        +
   +               override the default convergence tolerance, set a      +
   +               new relative tolerance CGTL8Z in the main program.     +
   + 4. Sparse direct method                                              +
   +               This is based on Harwell Library routines MA27/MA37,   +
   +               developed by AEA Industrial Technology at Harwell      +
   +               Laboratory, Oxfordshire, OX11 0RA, United Kingdom      +
   +               (used by permission).                                  +
   + 5. Local solver                                                      +
   +               Choose this option ONLY if alternative linear system   +
                                                                      [RETURN]
   +               solvers have been installed locally.  See subroutines  +
   +               (D)TD3M, (D)TD3N in file (d)subs.f for instructions    +
   +               on how to add local solvers.                           +
   + 6. MPI-based parallel band solver                                    +
   +               This is a parallel solver which runs efficiently on    +
   +               multiple processor machines, under MPI.  It is a       +
   +               band solver, with the matrix distributed over the      +
   +               available processors.  Choose this option ONLY if the  +
   +               solver has been activated locally.  See subroutine     +
   +               (D)TD3O in file (d)subs.f for instructions on how to   +
   +               activate this solver and the MPI-enhancements to the   +
   +               conjugate gradient solver.                             +
   +                                                                      +
   + Enter ISOLVE = 1,2,3,4,5 or 6 to select a linear system solver.      +
   ++++++++++++++++++++++++++ END OF "FINE PRINT" +++++++++++++++++++++++++
                                                                           
   If you don't want to read the FINE PRINT, enter ISOLVE = 4.             
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
   $ enter: ISOLVE = 3                                                    $
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
  ISOLVE =
|---- Enter an integer value in the range 1 to 6                  
3                                                                       
   Enter the element degree (1,2,3 or 4) desired.  A suggested value is    
   IDEG = 3.                                                               
                                                                           
   +++++++++++++++ THE "FINE PRINT" (CAN USUALLY BE IGNORED) ++++++++++++++
   + A negative value for IDEG can be entered, and elements of degree     +
   + ABS(IDEG) will be used, with a lower order numerical integration     +
   + scheme.  This results in a slight increase in speed, but negative    +
   + values of IDEG are normally not recommended.                         +
   +                                                                      +
   + The spatial discretization error is O(h**2), O(h**3), O(h**4) or     +
   + O(h**5) when IDEG = 1,2,3 or 4, respectively, is used, where h is    +
   + the maximum triangle diameter, even if the region is curved.         +
   ++++++++++++++++++++++++++ END OF "FINE PRINT" +++++++++++++++++++++++++
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
   $ enter: IDEG = 4                                                      $
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
  IDEG =
|---- Enter an integer value in the range -4 to 4                 
4                                                                       
   What type of PDE problem do you want to solve?                          
                                                                           
      1. a steady-state (time-independent) problem                         
      2. a time-dependent problem                                          
      3. a linear, homogeneous eigenvalue problem                          
                                                                           
   Enter 1,2 or 3 to select a problem type.                                
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
   $ enter: 1                                                             $
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
|---- Enter an integer value in the range 1 to 3                  
1                                                                       
   Is this a linear problem? ("linear" means all differential equations    
   and all boundary conditions are linear).  If you aren't sure, it is     
   safer to answer "no".                                                   
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
   $ enter: yes                                                           $
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
|---- Enter yes or no
yes
   How many differential equations (NEQN) are there in your problem?       
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
   $ enter: NEQN = 2                                                      $
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
  NEQN =
|---- Enter an integer value in the range 1 to 99                 
2                                                                       
   You may now choose names for the component(s) of the (possibly vector)  
   solution U.  Each must be an alphanumeric string of one to three        
   characters, beginning with a letter in the range A-H or O-Z.  The       
   variable names X,Y,T,S,A and B must not be used.  The name should       
   start in column 1.                                                      
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
   $ enter: U1 = U                                                        $
   $        U2 = V                                                        $
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
 U1 =
U   
 U2 =
V   
   PDE2D solves the system of equations:                                   
                                                                           
                 d/dX* A1(X,Y,U,Ux,Uy,V,Vx,Vy)                             
               + d/dY* B1(X,Y,U,Ux,Uy,V,Vx,Vy)                             
                     = F1(X,Y,U,Ux,Uy,V,Vx,Vy)                             
                                                                           
                 d/dX* A2(X,Y,U,Ux,Uy,V,Vx,Vy)                             
               + d/dY* B2(X,Y,U,Ux,Uy,V,Vx,Vy)                             
                     = F2(X,Y,U,Ux,Uy,V,Vx,Vy)                             
                                                                           
   with 'fixed' boundary conditions:                                       
                                                                           
         U = FB1(X,Y)                                                      
         V = FB2(X,Y)                                                      
                                                                           
   or 'free' boundary conditions:                                          
                                                                           
        A1*nx + B1*ny = GB1(X,Y,U,Ux,Uy,V,Vx,Vy)                           
        A2*nx + B2*ny = GB2(X,Y,U,Ux,Uy,V,Vx,Vy)                           
                                                                           
   where U(X,Y) and V(X,Y) are the unknowns and F1,A1,B1,F2,A2,B2,         
   FB1,FB2,GB1,GB2 are user-supplied functions.                            
                                                                      [RETURN]
                                                                           
   note:                                                                   
         (nx,ny) = unit outward normal to the boundary                     
         Ux = d(U)/dX     Vx = d(V)/dX                                     
         Uy = d(U)/dY     Vy = d(V)/dY                                     
                                                                           
   Is this problem symmetric?  If you don't want to read the FINE PRINT,   
   it is safe to enter 'no'.                                               
                                                                           
   +++++++++++++++ THE "FINE PRINT" (CAN USUALLY BE IGNORED) ++++++++++++++
   + This problem is called symmetric if each of the matrices             +
   +                                                                      +
   +    F1.U    F1.Ux    F1.Uy    F1.V    F1.Vx    F1.Vy                  +
   +    A1.U    A1.Ux    A1.Uy    A1.V    A1.Vx    A1.Vy                  +
   +    B1.U    B1.Ux    B1.Uy    B1.V    B1.Vx    B1.Vy                  +
   +    F2.U    F2.Ux    F2.Uy    F2.V    F2.Vx    F2.Vy                  +
   +    A2.U    A2.Ux    A2.Uy    A2.V    A2.Vx    A2.Vy                  +
   +    B2.U    B2.Ux    B2.Uy    B2.V    B2.Vx    B2.Vy                  +
   +                                                                      +
   + and                                                                  +
   +          GB1.U     GB1.V                                             +
   +          GB2.U     GB2.V                                             +
                                                                      [RETURN]
   +                                                                      +
   + is always symmetric, where F1.U means d(F1)/d(U), and similarly      +
   + for the other terms.  In addition, GB1,GB2 must not depend on        +
   + Ux,Uy,Vx,Vy.                                                         +
   +                                                                      +
   + The memory and execution time are halved if the problem is known to  +
   + be symmetric.                                                        +
   ++++++++++++++++++++++++++ END OF "FINE PRINT" +++++++++++++++++++++++++
                                                                           
   If you don't want to read the FINE PRINT, enter 'no'.                   
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
   $ enter: yes                                                           $
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
|---- Enter yes or no
yes
   You may calculate one or more integrals (over the entire region) of     
   some functions of the solution and its derivatives.  How many integrals 
   (NINT), if any, do you want to calculate?                               
                                                                           
   +++++++++++++++ THE "FINE PRINT" (CAN USUALLY BE IGNORED) ++++++++++++++
   + In the FORTRAN program created by the preprocessor, the computed     +
   + values of the integrals will be returned in the vector SINT8Z.  If   +
   + several iterations or time steps are done, only the last computed    +
   + values are saved in SINT8Z (all values are printed).                 +
   +                                                                      +
   + A limiting value, SLIM8Z(I), for the I-th integral can be set        +
   + below in the main program.  The computations will then stop          +
   + gracefully whenever SINT8Z(I) > SLIM8Z(I), for any I=1...NINT.       +
   ++++++++++++++++++++++++++ END OF "FINE PRINT" +++++++++++++++++++++++++
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
   $ enter: NINT = 1                                                      $
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
  NINT =
|---- Enter an integer value in the range 0 to 20                 
1                                                                       
   Enter FORTRAN expressions for the functions whose integrals are to be   
   calculated and printed.  They may be functions of                       
                                                                           
              X,Y,U,Ux,Uy,V,Vx,Vy and (if applicable) T                    
                                                                           
   The integrals may also contain references to the initial triangle       
   number KTRI.                                                            
                                                                           
   +++++++++++++++ THE "FINE PRINT" (CAN USUALLY BE IGNORED) ++++++++++++++
   + If you only want to integrate a function over part of the region,    +
   + define that function to be zero in the rest of the region.           +
   ++++++++++++++++++++++++++ END OF "FINE PRINT" +++++++++++++++++++++++++
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
   $ We will calculate the total volume change by integrating 2*(Ux+Vy)   $
   $ over the half-block.  (Correct value is about 0.00333.)              $
   $ enter: INTEGRAL = 2*(Ux+Vy)                                          $
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
 INTEGRAL =
|----Enter constant or FORTRAN expression-----------------------|
2*(Ux+Vy)                                                        
   You may calculate one or more boundary integrals (over the entire       
   boundary) of some functions of the solution and its derivatives.  How   
   many boundary integrals (NBINT), if any, do you want to calculate?      
                                                                           
   +++++++++++++++ THE "FINE PRINT" (CAN USUALLY BE IGNORED) ++++++++++++++
   + In the FORTRAN program created by the preprocessor, the computed     +
   + values of the integrals will be returned in the vector BINT8Z.  If   +
   + several iterations or time steps are done, only the last computed    +
   + values are saved in BINT8Z (all values are printed).                 +
   +                                                                      +
   + A limiting value, BLIM8Z(I), for the I-th boundary integral can be   +
   + set below in the main program.  The computations will then stop      +
   + gracefully whenever BINT8Z(I) > BLIM8Z(I), for any I=1...NBINT.      +
   ++++++++++++++++++++++++++ END OF "FINE PRINT" +++++++++++++++++++++++++
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
   $ enter: NBINT = 0                                                     $
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
  NBINT =
|---- Enter an integer value in the range 0 to 20                 
0                                                                       
   If you don't want to read the FINE PRINT, enter 'no'.                   
                                                                           
   +++++++++++++++ THE "FINE PRINT" (CAN USUALLY BE IGNORED) ++++++++++++++
   + Do you have point source terms in your PDEs, involving "Dirac Delta" +
   + functions?  A Dirac Delta function DEL(x-xd0,y-yd0) is a function    +
   + whose integral is 1, but which is zero everywhere except at a        +
   + singular point (xd0,yd0).                                            +
   ++++++++++++++++++++++++++ END OF "FINE PRINT" +++++++++++++++++++++++++
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
   $ enter: no                                                            $
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
|---- Enter yes or no
no 
   Now enter FORTRAN expressions to define the PDE coefficients, which     
   may be functions of                                                     
                                                                           
                         X,Y,U,Ux,Uy,V,Vx,Vy                               
                                                                           
   They may also be functions of the initial triangle number KTRI          
   and, in some cases, of the parameter T.                                 
                                                                           
   Recall that the PDEs have the form                                      
                                                                           
                  d/dX*A1 + d/dY*B1 = F1                                   
                  d/dX*A2 + d/dY*B2 = F2                                   
                                                                           
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
   $ The partial differential equations may be written                    $
   $                                                                      $
   $          d/dX*(s11) + d/dY*(s12) = 0                                 $
   $          d/dX*(s12) + d/dY*(s22) = 0                                 $
   $ where                                                                $
   $           s11 = E*(e11 + vnu*e22)/(1-vnu**2)                         $
   $           s22 = E*(vnu*e11 + e22)/(1-vnu**2)                         $
   $           s12 = 0.5*E*e12/(1+vnu)                                    $
                                                                      [RETURN]
   $ and                                                                  $
   $           e11 = Ux - al*(Z(x,y) - ZINIT)                             $
   $           e22 = Vy - al*(Z(x,y) - ZINIT)                             $
   $           e12 = Uy + Vx                                              $
   $                                                                      $
   $ When asked if you want to write a FORTRAN block,                     $
   $ enter: yes                                                           $
   $   then, when prompted, define:                                       $
   $          E11 = Ux - AL*(Z(X,Y) - ZINIT)                              $
   $          E22 = Vy - AL*(Z(X,Y) - ZINIT)                              $
   $          E12 = Uy + Vx                                               $
   $          S11 = E*(E11 + VNU*E22)/(1-VNU**2)                          $
   $          S22 = E*(VNU*E11 + E22)/(1-VNU**2)                          $
   $          S12 = 0.5*E*E12/(1+VNU)                                     $
   $        [blank line]                                                  $
   $ (The function Z(X,Y) will be defined later by interpolating the      $
   $ tabular output created by example 4.)                                $
   $   then enter the following, when prompted:                           $
   $    F1 = 0       A1 = S11    B1 = S12                                 $
   $    F2 = 0       A2 = S12    B2 = S22                                 $
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

  Do you want to write a FORTRAN block to define some parameters to be
   used in the definition of these coefficients?
|---- Enter yes or no
yes
 Remember to begin FORTRAN statements in column 7
|-----7-----Input FORTRAN now (type blank line to terminate)-----------|
      E11 = Ux - AL*(Z(X,Y) - ZINIT)                                    
      E22 = Vy - AL*(Z(X,Y) - ZINIT)                                    
      E12 = Uy + Vx                                                     
      S11 = E*(E11 + VNU*E22)/(1-VNU**2)                                
      S22 = E*(VNU*E11 + E22)/(1-VNU**2)                                
      S12 = 0.5*E*E12/(1+VNU)                                           
                                                                        
 F1 =         (Press [RETURN] to default to 0)
|----Enter constant or FORTRAN expression-----------------------|
0                                                                
 A1 =         (Press [RETURN] to default to 0)
|----Enter constant or FORTRAN expression-----------------------|
S11                                                              
 B1 =         (Press [RETURN] to default to 0)
|----Enter constant or FORTRAN expression-----------------------|
S12                                                              
 F2 =         (Press [RETURN] to default to 0)
|----Enter constant or FORTRAN expression-----------------------|
0                                                                
 A2 =         (Press [RETURN] to default to 0)
|----Enter constant or FORTRAN expression-----------------------|
S12                                                              
 B2 =         (Press [RETURN] to default to 0)
|----Enter constant or FORTRAN expression-----------------------|
S22                                                              
   Now the 'fixed' boundary conditions are described.                      
                                                                           
   Are there any boundary arcs with negative arc numbers, where nonzero    
   'fixed' boundary conditions must be specified?  (The boundary           
   conditions on arcs with negative numbers default to FB=0.)              
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
   $ On the only arc with negative arc number (-1), U and V may be        $
   $ defaulted to 0, so                                                   $
   $ enter: no                                                            $
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
|---- Enter yes or no
no 
   Now the 'free' boundary conditions are described.                       
                                                                           
   Are there any boundary arcs with positive (but < 1000) arc numbers,     
   where nonzero 'free' boundary conditions must be specified?  (The       
   boundary conditions on arcs with positive numbers default to GB=0.)     
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
   $ enter: yes                                                           $
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
|---- Enter yes or no
yes
   Enter the arc number (IARC) of a boundary arc with positive arc number. 
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
   $ enter: IARC = 3                                                      $
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
  IARC =
|---- Enter an integer value in the range 1 to 999                
3                                                                       
   Enter FORTRAN expressions to define the following free boundary         
   condition functions on this arc.  They may be functions of              
                                                                           
              X,Y,U,Ux,Uy,V,Vx,Vy and (if applicable) T                    
                                                                           
   +++++++++++++++ THE "FINE PRINT" (CAN USUALLY BE IGNORED) ++++++++++++++
   + These functions may also reference the components (NORMx,NORMy) of   +
   + the unit outward normal vector, the initial triangle number KTRI,    +
   + and the arc parameter S (S = P or Q when INTRI=2).                   +
   ++++++++++++++++++++++++++ END OF "FINE PRINT" +++++++++++++++++++++++++
                                                                           
   Recall that free boundary conditions have the form                      
                                                                           
                   A1*nx+B1*ny = GB1                                       
                   A2*nx+B2*ny = GB2                                       
                                                                           
   +++++++++++++++ THE "FINE PRINT" (CAN USUALLY BE IGNORED) ++++++++++++++
   + Note that 'fixed' boundary conditions:                               +
   +                   Ui = FBi(X,Y,[T])                                  +
   + can be expressed as 'free' boundary conditions in the form:          +
   +                  GBi = zero(Ui-FBi(X,Y,[T]))                         +
   ++++++++++++++++++++++++++ END OF "FINE PRINT" +++++++++++++++++++++++++
                                                                      [RETURN]
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
   $ Recall that along the line of symmetry (arc number 3, X=0) we have   $
   $ (nx,ny) = (-1,0) and U=s12=0, so we can set                          $
   $       GB1 = A1*nx + B1*ny = -A1 = -s11 = zero(U)                     $
   $       GB2 = A2*nx + B2*ny = -A2 = -s12 = 0                           $
   $ The first boundary condition is (almost) equivalent to U=0.          $
   $ Thus enter, when prompted:                                           $
   $    GB1 = zero(U)                                                     $
   $    GB2 = 0.0                                                         $
   $++++++++++++++ THE "FINE PRINT" (CAN USUALLY BE IGNORED) ++++++++++++++
   $ Note: this "symmetry" boundary condition is the same as the "free-   +
   $ slip" boundary condition, which requires that the normal velocity    +
   $ and tangential force both be 0.  This can be imposed by setting:     +
   $    GB1 = Big_number*NORMx*(U*NORMx+V*NORMy)                          +
   $    GB2 = Big_number*NORMy*(U*NORMx+V*NORMy)                          +
   $ so that U*NORMx+V*NORMy, the normal velocity, is 0; the tangential   +
   $ force, NORMy*GB1-NORMx*GB2=0 also.  On vertical or horizontal        +
   $ boundaries such as the above (NORMx=0 or NORMy=0), Big_number can be +
   $ arbitrarily large; in the general case, however, choosing Big_number +
   $ too large may result in an ill-conditioned matrix.                   +
   $+++++++++++++++++++++++++ END OF "FINE PRINT" +++++++++++++++++++++++++
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
                                                                      [RETURN]
 GB1 =         (Press [RETURN] to default to 0)
|----Enter constant or FORTRAN expression-----------------------|
zero(U)                                                          
 GB2 =         (Press [RETURN] to default to 0)
|----Enter constant or FORTRAN expression-----------------------|
0.0                                                              
   Are there any more positive arcs, with nonzero boundary conditions?     
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
   $ On the only other arc with positive arc number (2), GB1 and GB2 may  $
   $ be defaulted, since GB1 = A1*nx + B1*ny = s11*nx + s12*ny = 0        $
   $                 and GB2 = A2*nx + B2*ny = s12*nx + s22*ny = 0, so    $
   $ enter: no                                                            $
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
|---- Enter yes or no
no 
   If you don't want to read the FINE PRINT, default all of the following  
   variables.                                                              
                                                                           
   +++++++++++++++ THE "FINE PRINT" (CAN USUALLY BE IGNORED) ++++++++++++++
   + Normally, PDE2D saves the values of U,A1,B1,V,A2,B2 at the           +
   + output points.  If different variables are to be saved (for later    +
   + printing or plotting) the following functions can be used to         +
   + re-define the output variables:                                      +
   +    define UPRINT(1) to replace U                                     +
   +           APRINT(1)            A1                                    +
   +           BPRINT(1)            B1                                    +
   +           UPRINT(2)            V                                     +
   +           APRINT(2)            A2                                    +
   +           BPRINT(2)            B2                                    +
   + Each function may be a function of                                   +
   +                                                                      +
   +    X,Y,U,Ux,Uy,A1,B1,V,Vx,Vy,A2,B2 and (if applicable) T             +
   +                                                                      +
   + Each may also be a function of the initial triangle number KTRI and  +
   + the integral estimates SINT(1),...,BINT(1),...                       +
   +                                                                      +
   + The default for each variable is no change, for example, UPRINT(1)   +
                                                                      [RETURN]
   + defaults to U.  Enter FORTRAN expressions for each of the            +
   + following functions (or default).                                    +
   ++++++++++++++++++++++++++ END OF "FINE PRINT" +++++++++++++++++++++++++
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
   $ We will want to plot the temperature distribution Z(X,Y) (which will $
   $ be defined later by interpolating the output from example 4), so to  $
   $ save Z in B1                                                         $
   $ enter: BPRINT(1) = Z(X,Y)                                            $
   $        and default the other output modification variables           $
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
      Replace U for postprocessing?
  UPRINT(1) =             (Press [RETURN] to default)
|----Enter constant or FORTRAN expression-----------------------|
                                                                 
      Replace A1 for postprocessing?
  APRINT(1) =             (Press [RETURN] to default)
|----Enter constant or FORTRAN expression-----------------------|
                                                                 
      Replace B1 for postprocessing?
  BPRINT(1) =             (Press [RETURN] to default)
|----Enter constant or FORTRAN expression-----------------------|
Z(X,Y)                                                           
      Replace V for postprocessing?
  UPRINT(2) =             (Press [RETURN] to default)
|----Enter constant or FORTRAN expression-----------------------|
                                                                 
      Replace A2 for postprocessing?
  APRINT(2) =             (Press [RETURN] to default)
|----Enter constant or FORTRAN expression-----------------------|
                                                                 
      Replace B2 for postprocessing?
  BPRINT(2) =             (Press [RETURN] to default)
|----Enter constant or FORTRAN expression-----------------------|
                                                                 
   The solution is normally saved on a NX+1 by NY+1 rectangular grid of    
   points                                                                  
                 (XA + I*(XB-XA)/NX , YA + J*(YB-YA)/NY)                   
   I=0,...,NX, J=0,...,NY.  Enter values for NX and NY.  Suggested values  
   are NX=NY=25.                                                           
                                                                           
   +++++++++++++++ THE "FINE PRINT" (CAN USUALLY BE IGNORED) ++++++++++++++
   + If you want to save the solution at an arbitrary user-specified      +
   + set of points, set NY=0 and NX+1=number of points.  In this case you +
   + can request tabular output of the solution, but you cannot make any  +
   + solution plots.                                                      +
   +                                                                      +
   + If you set NEAR8Z=1 in the main program, the values saved at each    +
   + output point will actually be the solution as evaluated at a nearby  +
   + integration point.  For most problems this obviously will produce    +
   + less accurate output or plots, but for certain (rare) problems, a    +
   + solution component may be much less noisy when plotted only at       +
   + integration points.                                                  +
   ++++++++++++++++++++++++++ END OF "FINE PRINT" +++++++++++++++++++++++++
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
   $ enter: NX = 9                                                        $
   $        NY = 9                                                        $
                                                                      [RETURN]
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
  NX =
|---- Enter an integer value in the range 1 to +INFINITY          
9                                                                       
  NY =
|---- Enter an integer value in the range 0 to +INFINITY          
9                                                                       
   The solution is saved on an NX+1 by NY+1 rectangular grid covering the  
   rectangle (XA,XB) x (YA,YB).  Enter values for XA,XB,YA,YB.  These      
   variables are usually defaulted.                                        
                                                                           
   The default is a rectangle which just covers the entire region.         
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
   $ press [RETURN] to default XA,XB,YA,YB                                $
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
  XA =             (Press [RETURN] to default)
|----Enter constant or FORTRAN expression-----------------------|
                                                                 
  XB =             (Press [RETURN] to default)
|----Enter constant or FORTRAN expression-----------------------|
                                                                 
  YA =             (Press [RETURN] to default)
|----Enter constant or FORTRAN expression-----------------------|
                                                                 
  YB =             (Press [RETURN] to default)
|----Enter constant or FORTRAN expression-----------------------|
                                                                 
   To generate tabular or graphical output, choose an output option from   
   the list below.                                                         
                                                                           
   0. No further output is desired                                         
   1. Table of values at output points                                     
         The tabulated output is saved in a file.                          
   2. Surface plot of a scalar variable                                    
   3. Contour plot of a scalar variable                                    
   4. Vector field plot, with arrows indicating magnitude and direction    
   5. One-dimensional cross-sectional plots (versus X, Y or T)             
      or, if applicable:                                                   
   6. Stress field plot (requires 2 or more PDES)                          
         A plot of the principal stresses. Compression is indicated        
         by arrows pointing toward each other, and tension by              
         arrows pointing away from each other.                             
                                                                           
   Enter 0,1,2,3,4,5 or 6 to select an output option.                      
                                                                           
   +++++++++++++++ THE "FINE PRINT" (CAN USUALLY BE IGNORED) ++++++++++++++
   + If you set NY=0 and saved the solution at an arbitrary set of        +
   + user-specified output points, you can only request tabular output.   +
   +                                                                      +
                                                                      [RETURN]
   + If you decide later that you want additional types of plots not      +
   + requested during this interactive session, you will have to work     +
   + through a new interactive session, so it is recommended that you     +
   + request all output or plots you think you MIGHT eventually want now, +
   + during this session.                                                 +
   +                                                                      +
   + Regardless of the options you select, a dummy subroutine POSTPR      +
   + will be included in the program created by the interactive driver;   +
   + you can add your own postprocessing code to this subroutine.         +
   ++++++++++++++++++++++++++ END OF "FINE PRINT" +++++++++++++++++++++++++
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
   $ We want three plots: a vector field plot of the displacements, a     $
   $ stress field plot, and a contour plot of the temperature.  Thus      $
   $ enter: 4, the first time you see this message and                    $
   $        6, the second time                                            $
   $        3, the third time                                             $
   $        0, the fourth time                                            $
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
|---- Enter an integer value in the range 0 to 6                  
4                                                                       
   Enter values for IVARX, IVARY to select the X and Y components of       
   the vector to be plotted.                                               
       IVARX or IVARY = 1 means U  (possibly as modified by UPRINT,..)     
                        2       A1                                         
                        3       B1                                         
                        4       V                                          
                        5       A2                                         
                        6       B2                                         
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
   $ We want a vector field plot of (U,V), so                             $
   $ enter: IVARX = 1                                                     $
   $        IVARY = 4                                                     $
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
  IVARX =
|---- Enter an integer value in the range 1 to 6                  
1                                                                       
  IVARY =
|---- Enter an integer value in the range 1 to 6                  
4                                                                       
   If you don't want to read the FINE PRINT, enter 'no'.                   
                                                                           
   +++++++++++++++ THE "FINE PRINT" (CAN USUALLY BE IGNORED) ++++++++++++++
   + Do you want to scale the axes on the plot so that the region is      +
   + undistorted?  Otherwise the axes will be scaled so that the figure   +
   + approximately fills the plot space.                                  +
   ++++++++++++++++++++++++++ END OF "FINE PRINT" +++++++++++++++++++++++++
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
   $ enter: yes                                                           $
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
|---- Enter yes or no
yes
   For the purpose of scaling the arrows, the ranges of the two components 
   of the vector are assumed to be (-VR1MAG,VR1MAG) and (-VR2MAG,VR2MAG).  
   Enter values for VR1MAG and VR2MAG.  VR1MAG and VR2MAG are often        
   defaulted.                                                              
                                                                           
   +++++++++++++++ THE "FINE PRINT" (CAN USUALLY BE IGNORED) ++++++++++++++
   + By default, VR1MAG and VR2MAG are the maxima of the absolute values  +
   + of the first and second components.  For a common scaling, you may   +
   + want to set VR1MAG=A1MAG, VR2MAG=A2MAG.  A1MAG, A2MAG are the        +
   + maxima of the absolute values over all output points and over all    +
   + saved time steps or iterations.                                      +
   ++++++++++++++++++++++++++ END OF "FINE PRINT" +++++++++++++++++++++++++
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
   $ press [RETURN] to default VR1MAG and VR2MAG                          $
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
  VR1MAG =             (Press [RETURN] to default)
|----Enter constant or FORTRAN expression-----------------------|
                                                                 
  VR2MAG =             (Press [RETURN] to default)
|----Enter constant or FORTRAN expression-----------------------|
                                                                 
   Enter a title, WITHOUT quotation marks.  A maximum of 40 characters     
   are allowed.  The default is no title.                                  
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
   $ enter: Thermal stress problem                                        $
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
  TITLE =             (Press [RETURN] to default)
|----Enter title or name---------------|
Thermal stress problem                  
   To generate tabular or graphical output, choose an output option from   
   the list below.                                                         
                                                                           
   0. No further output is desired                                         
   1. Table of values at output points                                     
         The tabulated output is saved in a file.                          
   2. Surface plot of a scalar variable                                    
   3. Contour plot of a scalar variable                                    
   4. Vector field plot, with arrows indicating magnitude and direction    
   5. One-dimensional cross-sectional plots (versus X, Y or T)             
      or, if applicable:                                                   
   6. Stress field plot (requires 2 or more PDES)                          
         A plot of the principal stresses. Compression is indicated        
         by arrows pointing toward each other, and tension by              
         arrows pointing away from each other.                             
                                                                           
   Enter 0,1,2,3,4,5 or 6 to select an output option.                      
                                                                           
   +++++++++++++++ THE "FINE PRINT" (CAN USUALLY BE IGNORED) ++++++++++++++
   + If you set NY=0 and saved the solution at an arbitrary set of        +
   + user-specified output points, you can only request tabular output.   +
   +                                                                      +
                                                                      [RETURN]
   + If you decide later that you want additional types of plots not      +
   + requested during this interactive session, you will have to work     +
   + through a new interactive session, so it is recommended that you     +
   + request all output or plots you think you MIGHT eventually want now, +
   + during this session.                                                 +
   +                                                                      +
   + Regardless of the options you select, a dummy subroutine POSTPR      +
   + will be included in the program created by the interactive driver;   +
   + you can add your own postprocessing code to this subroutine.         +
   ++++++++++++++++++++++++++ END OF "FINE PRINT" +++++++++++++++++++++++++
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
   $ We want three plots: a vector field plot of the displacements, a     $
   $ stress field plot, and a contour plot of the temperature.  Thus      $
   $ enter: 4, the first time you see this message and                    $
   $        6, the second time                                            $
   $        3, the third time                                             $
   $        0, the fourth time                                            $
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
|---- Enter an integer value in the range 0 to 6                  
6                                                                       
   Enter values for IVAR11, IVAR22, IVAR12 to select the components which  
   represent tensile stress in the X-direction, tensile stress in the      
   Y-direction, and shear stress, respectively.                            
   IVAR11,IVAR22,IVAR12 = 1 means U  (possibly as modified by UPRINT,..)   
                          2       A1                                       
                          3       B1                                       
                          4       V                                        
                          5       A2                                       
                          6       B2                                       
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
   $ Since A1=S11, B2=S22 and A2=S12 (since BPRINT(1)=Z(X,Y), do not set  $
   $ IVAR12 = 3):                                                         $
   $ enter: IVAR11 = 2                                                    $
   $        IVAR22 = 6                                                    $
   $        IVAR12 = 5                                                    $
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
  IVAR11 =
|---- Enter an integer value in the range 1 to 6                  
2                                                                       
  IVAR22 =
|---- Enter an integer value in the range 1 to 6                  
6                                                                       
  IVAR12 =
|---- Enter an integer value in the range 1 to 6                  
5                                                                       
   If you don't want to read the FINE PRINT, enter 'no'.                   
                                                                           
   +++++++++++++++ THE "FINE PRINT" (CAN USUALLY BE IGNORED) ++++++++++++++
   + Do you want to scale the axes on the plot so that the region is      +
   + undistorted?  Otherwise the axes will be scaled so that the figure   +
   + approximately fills the plot space.                                  +
   ++++++++++++++++++++++++++ END OF "FINE PRINT" +++++++++++++++++++++++++
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
   $ enter: yes                                                           $
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
|---- Enter yes or no
yes
   If you don't want to read the FINE PRINT, default STRMAX.               
                                                                           
   +++++++++++++++ THE "FINE PRINT" (CAN USUALLY BE IGNORED) ++++++++++++++
   + For the purpose of scaling the stresses, the maximum magnitude of    +
   + the principle stresses is assumed to be STRMAX.  If the default is   +
   + used, the stress tensors drawn will be as large as possible without  +
   + tensors running together.  If stress plots at several time steps or  +
   + iterations are made and a common scale is desired, STRMAX = ASTRMX   +
   + is suggested.                                                        +
   +                                                                      +
   + Enter a value for STRMAX, or default it.                             +
   ++++++++++++++++++++++++++ END OF "FINE PRINT" +++++++++++++++++++++++++
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
   $ press [RETURN] to default STRMAX                                     $
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
  STRMAX =             (Press [RETURN] to default)
|----Enter constant or FORTRAN expression-----------------------|
                                                                 
   Enter a title, WITHOUT quotation marks.  A maximum of 40 characters     
   are allowed.  The default is no title.                                  
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
   $ enter: Thermal stress problem                                        $
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
  TITLE =             (Press [RETURN] to default)
|----Enter title or name---------------|
Thermal stress problem                  
   To generate tabular or graphical output, choose an output option from   
   the list below.                                                         
                                                                           
   0. No further output is desired                                         
   1. Table of values at output points                                     
         The tabulated output is saved in a file.                          
   2. Surface plot of a scalar variable                                    
   3. Contour plot of a scalar variable                                    
   4. Vector field plot, with arrows indicating magnitude and direction    
   5. One-dimensional cross-sectional plots (versus X, Y or T)             
      or, if applicable:                                                   
   6. Stress field plot (requires 2 or more PDES)                          
         A plot of the principal stresses. Compression is indicated        
         by arrows pointing toward each other, and tension by              
         arrows pointing away from each other.                             
                                                                           
   Enter 0,1,2,3,4,5 or 6 to select an output option.                      
                                                                           
   +++++++++++++++ THE "FINE PRINT" (CAN USUALLY BE IGNORED) ++++++++++++++
   + If you set NY=0 and saved the solution at an arbitrary set of        +
   + user-specified output points, you can only request tabular output.   +
   +                                                                      +
                                                                      [RETURN]
   + If you decide later that you want additional types of plots not      +
   + requested during this interactive session, you will have to work     +
   + through a new interactive session, so it is recommended that you     +
   + request all output or plots you think you MIGHT eventually want now, +
   + during this session.                                                 +
   +                                                                      +
   + Regardless of the options you select, a dummy subroutine POSTPR      +
   + will be included in the program created by the interactive driver;   +
   + you can add your own postprocessing code to this subroutine.         +
   ++++++++++++++++++++++++++ END OF "FINE PRINT" +++++++++++++++++++++++++
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
   $ We want three plots: a vector field plot of the displacements, a     $
   $ stress field plot, and a contour plot of the temperature.  Thus      $
   $ enter: 4, the first time you see this message and                    $
   $        6, the second time                                            $
   $        3, the third time                                             $
   $        0, the fourth time                                            $
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
|---- Enter an integer value in the range 0 to 6                  
3                                                                       
   Enter a value for IVAR, to select the variable to be plotted or         
   printed:                                                                
       IVAR = 1 means U  (possibly as modified by UPRINT,..)               
              2       A1                                                   
              3       B1                                                   
              4       V                                                    
              5       A2                                                   
              6       B2                                                   
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
   $ We want a contour plot of Z(X,Y), which has been saved in B1, so     $
   $ enter: IVAR = 3                                                      $
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
  IVAR =
|---- Enter an integer value in the range 1 to 6                  
3                                                                       
   If you don't want to read the FINE PRINT, enter 'no'.                   
                                                                           
   +++++++++++++++ THE "FINE PRINT" (CAN USUALLY BE IGNORED) ++++++++++++++
   + Do you want to scale the axes on the plot so that the region is      +
   + undistorted?  Otherwise the axes will be scaled so that the figure   +
   + approximately fills the plot space.                                  +
   ++++++++++++++++++++++++++ END OF "FINE PRINT" +++++++++++++++++++++++++
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
   $ enter: yes                                                           $
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
|---- Enter yes or no
yes
   Enter lower (UMIN) and upper (UMAX) bounds for the contour values. UMIN 
   and UMAX are often defaulted.                                           
                                                                           
   Labeled contours will be drawn corresponding to the values              
                                                                           
                UMIN + S*(UMAX-UMIN),    for S=0.05,0.15,...0.95.          
                                                                           
   +++++++++++++++ THE "FINE PRINT" (CAN USUALLY BE IGNORED) ++++++++++++++
   + By default, UMIN and UMAX are set to the minimum and maximum values  +
   + of the variable to be plotted.  For a common scaling, you may want   +
   + to set UMIN=ALOW, UMAX=AHIGH.  ALOW and AHIGH are the minimum and    +
   + maximum values over all output points and over all saved time steps  +
   + or iterations.                                                       +
   ++++++++++++++++++++++++++ END OF "FINE PRINT" +++++++++++++++++++++++++
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
   $ press [RETURN] to default UMIN and UMAX                              $
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
  UMIN =             (Press [RETURN] to default)
|----Enter constant or FORTRAN expression-----------------------|
                                                                 
  UMAX =             (Press [RETURN] to default)
|----Enter constant or FORTRAN expression-----------------------|
                                                                 
   Do you want two additional unlabeled contours to be drawn between each  
   pair of labeled contours?                                               
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
   $ enter: yes                                                           $
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
|---- Enter yes or no
yes
   Enter a title, WITHOUT quotation marks.  A maximum of 40 characters     
   are allowed.  The default is no title.                                  
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
   $ enter: Thermal stress problem                                        $
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
  TITLE =             (Press [RETURN] to default)
|----Enter title or name---------------|
Thermal stress problem                  
   To generate tabular or graphical output, choose an output option from   
   the list below.                                                         
                                                                           
   0. No further output is desired                                         
   1. Table of values at output points                                     
         The tabulated output is saved in a file.                          
   2. Surface plot of a scalar variable                                    
   3. Contour plot of a scalar variable                                    
   4. Vector field plot, with arrows indicating magnitude and direction    
   5. One-dimensional cross-sectional plots (versus X, Y or T)             
      or, if applicable:                                                   
   6. Stress field plot (requires 2 or more PDES)                          
         A plot of the principal stresses. Compression is indicated        
         by arrows pointing toward each other, and tension by              
         arrows pointing away from each other.                             
                                                                           
   Enter 0,1,2,3,4,5 or 6 to select an output option.                      
                                                                           
   +++++++++++++++ THE "FINE PRINT" (CAN USUALLY BE IGNORED) ++++++++++++++
   + If you set NY=0 and saved the solution at an arbitrary set of        +
   + user-specified output points, you can only request tabular output.   +
   +                                                                      +
                                                                      [RETURN]
   + If you decide later that you want additional types of plots not      +
   + requested during this interactive session, you will have to work     +
   + through a new interactive session, so it is recommended that you     +
   + request all output or plots you think you MIGHT eventually want now, +
   + during this session.                                                 +
   +                                                                      +
   + Regardless of the options you select, a dummy subroutine POSTPR      +
   + will be included in the program created by the interactive driver;   +
   + you can add your own postprocessing code to this subroutine.         +
   ++++++++++++++++++++++++++ END OF "FINE PRINT" +++++++++++++++++++++++++
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
   $ We want three plots: a vector field plot of the displacements, a     $
   $ stress field plot, and a contour plot of the temperature.  Thus      $
   $ enter: 4, the first time you see this message and                    $
   $        6, the second time                                            $
   $        3, the third time                                             $
   $        0, the fourth time                                            $
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
|---- Enter an integer value in the range 0 to 6                  
0                                                                       
   Do you want to define any FORTRAN function subprograms used in any of   
   the FORTRAN 'expressions' entered earlier, entering them line by line?  
                                                                           
   +++++++++++++++ THE "FINE PRINT" (CAN USUALLY BE IGNORED) ++++++++++++++
   + If you selected double precision accuracy earlier, be sure to        +
   + declare these functions and their arguments DOUBLE PRECISION.        +
   ++++++++++++++++++++++++++ END OF "FINE PRINT" +++++++++++++++++++++++++
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
   $ enter: no                                                            $
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
|---- Enter yes or no
no 
   If you don't want to read the FINE PRINT, enter 'no'.                   
                                                                           
   +++++++++++++++ THE "FINE PRINT" (CAN USUALLY BE IGNORED) ++++++++++++++
   + Do you want to define any FORTRAN function subprograms used in any   +
   + of the FORTRAN 'expressions' entered earlier, by interpolating the   +
   + tabular output saved in a file created on an earlier PDE2D run?      +
   ++++++++++++++++++++++++++ END OF "FINE PRINT" +++++++++++++++++++++++++
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
   $ enter: yes                                                           $
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
|---- Enter yes or no
yes
   Enter the name of the FORTRAN function subprogram, in columns 1-6.      
   It must be a function of X and Y only, but do not enter the '(X,Y)'.    
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
   $ enter: Z                                                             $
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
 Function name =
Z     
   If you don't want to read the FINE PRINT, enter NWORK = 20000.          
                                                                           
   +++++++++++++++ THE "FINE PRINT" (CAN USUALLY BE IGNORED) ++++++++++++++
   + Enter a dimension, NWORK, for the workarray, WORK, which is used to  +
   + store the tabulated values, for interpolation on later calls.  NWORK +
   + must be at least (NX+1)*(NY+1)+6, where NX,NY are the output grid    +
   + parameters used by the program which generated the tabulated values. +
   ++++++++++++++++++++++++++ END OF "FINE PRINT" +++++++++++++++++++++++++
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
   $ enter: NWORK = 2000                                                  $
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
  NWORK =
|---- Enter an integer value in the range 10 to +INFINITY         
2000                                                                    
   Enter, WITHOUT quotation marks, the name (FNAME) of the file which      
   contains the tabulated values to be read and interpolated.  The         
   tabulated values must have been generated by PDE2D using the            
   rectangular output grid option.                                         
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
   $ Enter the name of the example 4 tabular output file, e.g:            $
   $ enter: FNAME = dex4.out                                              $
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
  FNAME =
|----Enter title or name---------------|
dex4.out                                
   Enter the number, ISET, of the set in this file which contains the      
   tabulated values to be read and interpolated.  A 'set' is a block of    
   output following a line containing 'T = ...'.  The default is ISET=1.   
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
   $ The tabular output file contains the temperature profile at six      $
   $ time points, T=0,2,4,6,8,10; we want to read the profile at T=10, so $
   $ enter: ISET = 6                                                      $
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
  ISET =             (Press [RETURN] to default)
|----Enter constant or FORTRAN expression-----------------------|
6                                                                
   Enter the desired degree, KDEG=1,2 or 3, of the interpolation between   
   gridpoints.  Set KDEG=2 or 3 only if the tabulated function is smooth.  
                                                                           
   +++++++++++++++ THE "FINE PRINT" (CAN USUALLY BE IGNORED) ++++++++++++++
   + The tabulated values are read from file FNAME into the workarray the +
   + first time the function is called, and on this and subsequent calls, +
   + interpolation is done to compute the function value.                 +
   ++++++++++++++++++++++++++ END OF "FINE PRINT" +++++++++++++++++++++++++
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
   $ enter: KDEG = 3                                                      $
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
  KDEG =
|---- Enter an integer value in the range 1 to 3                  
3                                                                       
   Do you want to define any more functions, by interpolating tabular      
   output created by a previous PDE2D run?                                 
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
   $ enter: no                                                            $
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXAMPLE 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
|---- Enter yes or no
no 
   More detailed information about PDE2D can be found in the book          
   "Solving Partial Differential Equation Applications with PDE2D,"        
   Granville Sewell, John Wiley & Sons, 2018.                              
                                                                           
              *******************************************                  
              ***** Input program has been created  *****                  
              *******************************************