145
OR- LA-7595-M U Manual MOL1D: A General Purpose Subroutine Package for the Numerical Solution of Partial Differential Equations CO c o CO O «*— o 2? CD LOS ALAMOS SCIENTIFIC LABORATORY Post Office Box 1663 Los Alamos. New Mexico 87545

LA-7595-M U MOL1D: A General Purpose Subroutine Package

  • Upload
    others

  • View
    5

  • Download
    1

Embed Size (px)

Citation preview

Page 1: LA-7595-M U MOL1D: A General Purpose Subroutine Package

OR-LA-7595-M U

Manual

MOL1D: A General Purpose Subroutine

Package for the Numerical Solution

of Partial Differential Equations

COco

CO

O«*—o2?CD

LOS ALAMOS SCIENTIFIC LABORATORYPost Office Box 1663 Los Alamos. New Mexico 87545

Page 2: LA-7595-M U MOL1D: A General Purpose Subroutine Package

LA-7595-MManual

UC-32Issued: March 1979

M0L1D: A General Purpose Subroutine

Package for the Numerical Solution

of Partial Differential Equations

JrmiesM. Hyman

NOTICEThis report was prepared as an account of worksponsored by the United States Government. Neither theUnited States nor the United States Department ofl:nti[ry, inn any of ;hen employees, nor an; of iheircontractors, subconiraciots. or iheu employees, makesan> warranty, exp~ess oi implied, or assumes any tegiiliability or icsponstbiliiy foi the accuracy.completeness

process disclosed, oi represents thai its use would not

cpnv ned n

Page 3: LA-7595-M U MOL1D: A General Purpose Subroutine Package

CONTENTS

ABSTRACT 1

I. INTRODUCTION 1

II. GENERAL OVERVIEW OF THE PACKAGE 2

III. CALLING SEQUENCE OF M0L1D 5

IV. INDEPENDENT USER-CALLABLE SUBROUTINES 10A. Subroutine COMPAR 10B. Subroutine DECB and SOLB 11C. Subroutine FFT8-.2 12

V. SUBROUTINES SUPPLIED BY THE USER 13A. Subroutine PDE 13B. Subroutine FUNC 15C. Subroutine BNDRY 16

VI. SAMPLE PROGRAMS 17Example 1: Euler Equations of Gas Dynamics 17Example 2: Reaction Diffusion Equations 35Example 3: Linearized Burger's Equation 37Example 4: Regularized Long-Wave Equation 41

VII. USER NOTES 53

VHI. INSTALLATION TIPS 53

IX. AVAILABILITY 54

ACKNOWLEDGMENTS 54

REFERENCES 55

APPENDIX: SUBROUTINE LISTING 56MOL1D 57CKINP 71SOLPPT 74SOLPLT 76SOLDMP 77DIFFUN 80BEVAL 82

Page 4: LA-7595-M U MOL1D: A General Purpose Subroutine Package

UDER 85FDER 91DRIVEB 97INTERP 103STIFFB 104COSET 112PSETB 115DECB 117SOLB 119PDB 120FFT842 121FTFILT 125COMPAR 126PDE 129FUNC 130BNDRY 131SOLPLT (Tektronix Plot-10) 132SOLPLT (CalComp) 137

VI

Page 5: LA-7595-M U MOL1D: A General Purpose Subroutine Package

M0L1D: A GENERAL PURPOSE SUBROUTINE PACKAGE FORTHE NUMERICAL SOLUTION OF PARTIAL DIFFERENTIAL EQUATIONS

by

James Nt. Hyman

ABSTRACT

M0L1D is a FORTRAN subroutine package for the method of lines solu-tion for systems of initial-boundary-value partial differential equations inone space dimension. Using the package, a programmer with limited ex-perience in numerical analysis can accurately solve linear and nonlinearhyperbolic equations with or without discontinuities, linear and nonlinearparabolic equations, including those arising in reaction-diffusion equa-tions, and elliptic boundary value problems when posed as the stable time-independent solution of a parabolic equation. Systems are handled as easilyas single equations, and a wide variety of boundary conditions can be ac-commodated, including most that arise in applications. The major advan-tage of the package is that initial value problems can be solved accuratelywith a minimum of programming effort and with moderate computer cost.

I. INTRODUCTION

The initial value problem of a system of partial differential equations (PDEs) can be written inoperator form as

u t = g(u) , u(x,o) = uo(x) (i.i)

where u(x,t) lies in some function space and g is a nonlinear differential operator. For example, ifg(u) = 1/2 (u2)x + 8uxx then Eq. (1.1) would be Burger's equation. The boundary conditions forthe PDEs are incorporated as restrictions on the domain of g.

In the method of lines (MOL), u is approximated by an element U of some finite dimensionalspace whose components are the values of u at a discrete set of points. The differential operator gis approximated b3r a discrete operator G mapping that space into itself. The approximation to(1.1),

U t = G(U) , U(o) = U , (1.2)

Key Words: Computer codes, differential equations, method of lines, numerical analysis,numerical solution, one-dimensional calculation.

Page 6: LA-7595-M U MOL1D: A General Purpose Subroutine Package

is a system of ordinary differential equations (ODEs) which are then integrated numerically.This procedure, in which the differential operator is approximated by a discrete operator and

the resulting ODEs are integrated, can be performed automatically by the MOL subroutinepackage M0L1D. The user must describe the nature of his problem—hyperbolic or parabolic,linear or nonlinear, smooth or discontinuous—and the spatial discretization to be used;thereupon the package discretizes the problem and selects an appropriate numerical method forintegrating the resulting system of ODEs. The Ua r has the option to override this choice and tocall for any one of a number of ODE integration methods in the Hindmarsh GEARB package.The output includes a description of the numerical method used.

This report is a practical guide and supplement to an earlier theoretical report1 on the MOL.The descriptions of the computer routines listed in the appendix permit a user to set up aprogram for solving a system of PDEs as quickly and efficiently as possible. We emphasize thatthe package can be used by a scientist who has had only minimal computing experience, such asa "quickie" FORTRAN course.

II. GENERAL OVERVIEW OF THE PACKAGE

M0L1D was programmed with two goals in mind. First, the package is designed so that ascientist can proceed directly to computing acceptable solutions to PDEs and avoid many of theredundant efforts usually required in preparing PDE programs. The software is reliable, ef-ficient, and convenient to use. Thoroughly tested numerical algorithms permit users with aminimum of computing experience to solve a variation of the original problem with only slightprogramming changes.

Second, M0L1D is useful to the numerical analyst in comparing different temporal andspatial discretization techniques. For example, the accuracy of different spatial approximationscan be compared by accurately integrating the time derivative. The package offers many com-binations of methods and is structured so that more can be added easily.

The system of PDEs that can be integrated automatically by MOLlD must be well posed andof the form

ut = g(x.t,u,ux,uxx,fx) , ( 2 1 )

where

f = f(x,t,u,ux,uxx)

on the finite interval [xo,xN]. The vector u has dimension NPDE and f and g are vector-valuedfunctions. The package requires initial values for u and accepts both periodic boundaries andboundary conditions of the form

3 U + bUX = C " (2.2)

If b ^ 0, then a, b, and c can be functions oft and u; otherwise, a and c can be functions oft only.MOLlD then computes a numerical approximation to the solution of Eq. (2.1) at user-selectedvalues of the independent variable t in the interval [to,T]. The user has complete control over alarge selection of temporal and spatial derivative approximations. The time variable is in-tegrated with the GEARB package either by Gear's backward differentiation formula or by anAdams-Eashford-Moulton multistep method. The spatial derivatives are approximated' by

Page 7: LA-7595-M U MOL1D: A General Purpose Subroutine Package

second-, fourth-, or sixth-order symmetric differences, second- or third-order unsymmetric dif-ferences, or by the Fourier method. Unsymmetric differences are restricted to hyperbolic equa-tions in characteristic form [see Ref. lj. The Fourier method may be used only in periodicproblems. In nonperiodic problems a third-order unsymmetric spatial derivative approximationis used at the mesh points neighboring the boundaries.

When the equations or boundary conditions are not in the form of (2.1) or (2.2) the packagecannot automatically difference the equations .and incorporate the boundary conditions into thediscrete approximation. The equations can stiil be integrated by the package if they are wellposed and can be written in the form

A ( x , t , u ) u t = B ( x , t , u ) , (2.3)

where A and B are differential or integral operators. The equation form (2.3) requires the user tosupply his own special finite difference formulations. Examples 3 and 4 in Sec. VI show how tosolve such equations.

To use MOLID the programmer must provide a user-written main program and three sub-routines. The algorithm parameters are set in the main program. The three subroutines suppliedby the user are: subroutine PDE to define u, in terms of g and fx as in Eq. (2.1), subroutine FUNCto define f, and subroutine BNDRY to define a, b, and c in Eq. (2.2). MOLID is called by themain program. MOLID then forms and integrates a semidiscrete approximation to the PDE. Allintermediate output is provided by the package, and control is returned to the main programonly after completion of the problem.

The MOLID package comprises 20 FORTRAN subroutines, including a modified version ofthe GEARB ODE package. Figure 1 shows the lines of communication between these sub-routines and the routines supplied by the user. The subroutines in MOLID have the followingnames and perform the tasks indicated.MOLID Dvjver routine for the package. Allocates storage, performs in-

itialization tasks, and monitors progress of the time integration.CKINP Checks the validity of input parameters.SOLPRT Prints the solution at user-prescribed timesSOLPLT Plots the solution at user-prescribed times.SOLDMP Prints all relevant space derivatives of U and error estimates for

the temporal integration. Used for debugging and in cases where afailure flag is returned from GEARB.

DIFFUN Defines the time derivatives of U for integration package GEARB.BEVAL Evaluates boundary conditions and incorporates them into the

equation by cubic extrapolation to fictitious points outside theregion of integration.

UDER Evaluates the derivatives of U with respect to x.FDER Evaluates the derivatives of f with respect to x.FFT842 A fast Fourier transform routine.FTF1LT Filters high modes of the discrete Fourier transform.COMPAR A user-callable routine to compute the accuracy in calculations

when an exact solution is available.DRIVEB Driver subroutine in the ODE package GEARB. This package also

includes subroutines INTERP, STIFFB, COSET, PSETB, DECB,SOLB, and PDB. (See Ref. 6.)

The graphics option in MOLID is a deviation from the general portability policy used inprogramming the package, but the author believes that graphic output is essential if the

Page 8: LA-7595-M U MOL1D: A General Purpose Subroutine Package

MAIN 1

MOLID

DRiVEB

DIFFUN

1COMPAR

CKINP

SOLPRT

SOLPLT

SOLDMP

Fig. 1.Direction of the procedure calls in a MOLID operational program. Routines supplied by theuser are indicated by heavy borders.

Page 9: LA-7595-M U MOL1D: A General Purpose Subroutine Package

behavior of even relatively simple PDEs is to be understood. All plotting procedures are in sub-routine SOLPLT, so that only one subroutine need be modified to implement the package on adifferent graphics system. Two versions of SOLPLT are available, one of which uses standardCalComp2 routines and the other Plot-10 Tektronix3 routines.

In many problems the accuracy of the calculations can be estimated by solving a similar equa-tion for which an exact solution is known. The accuracy of such calculations can be computed insubroutine COMPAR, which measures the difference between the exact solution, u, and thecomputed solution, v, in the L,, L2, and L^ norms. In periodic problems where the solution con-sists of a single mode, the phase difference between u pnd v is computed and scaled to the range[-TT,IT\. The vector v is then translated to eliminate the phase error, and the distortion of thecomputed solution is measured by computing the difference between u and the translated com-puted solution.

Sometimes a linear system of equations must be solved on each time step. Such is the casewhen compact or Pade finite difference methods are used or when a component in the differentialequation is constrained to satisfy an associated elliptic PDE. These systems can be solved by us-ing the DECB and SOLB routines in the package.

The fast Fourier transform subroutine, FFT842, also may be used directly to compute the dis-crete complex Fourier transform of a vector.

The calling sequences for the routines COMPAR, DECB, SOLB, and FFT842 at e described inSec. IV.

III. CALLING SEQUENCE OF M0L1D

We now describe the arguments of subroutine M0L1D and the subroutines that the program-mer must supply. The arguments of MOLlD describe how the system of NPDE PDEs are to besolved. The initial conditions for the PDE enter the routine in an array UZ defining the solutionon a mesh XM of NPTS points. The user must describe the i:ind of boundary conditions (KBC)for the equation and has the option of describing the kind of equation (KEQN) that is to be in-tegrated (e.g., hyperbolic or parabolic, linear or nonlinear). The appropriate MOL approxima-tion is determined by the temporal integration method (METH), the error per time step (EPS),and the spatial method order (MORD). The user has the option of allowing the package to choosea time integration method—a choice based on the results of numerical testing described in Ref.1. The equations are integrated from the initial time TINT to the final time TLAST and the out-put appears at user-prescribed times in the array TOUT. The character of the output (MOUT)may be either printed or graphic. The printed output is written on tape 3 and the graphics usestandard CalComp or Plot-10 plotting routines.

The complete calling sequence for MOLlD is

CALL MOLlD (NPDE,NPTS,KEQN,KBC,METH,EPS,MORD,TINT,TLAST,MOIJT,TOUT,UZ,XM,KMOL).

The arguments of MOLlD are defined as follows:NPDE Number of PDEs.N.PTS Number of spatial mesh points.KEQN Descriptor of the kind of equation that is to be solved. This variable

is used to pick the initial time step and the ODE method if thedefault option is chosen. KEQN is greater than zero if the equation

Page 10: LA-7595-M U MOL1D: A General Purpose Subroutine Package

is linear; otherwise, it is less than zero. It has the following valuesand meanings:±1 Hyperbolic equation.±2 Parabolic equation.±3 Equation in conservation form and/or solution has discon-

tinuities.4 Nonstandard equation type (i.e., other).

KBC Descriptor of the kind of boundary conditions for the equation. Ithas the following values and meanings:0 Boundary conditions to be supplied by user in subroutine

PDE.1 Periodic boundary conditions. When this option is used,

the solution is computed at only one of the endpoints.2 Boundary conditions of the form A*U + B*UX = C. If B *

0 then A, B, and C may be functions of T and U.Otherwise, A and C may be functions of T only. Also in-cluded in this option are: boundary conditions defined byan ODE. free boundaries, and boundary conditionsprescribed.

3 Boundary conditions as in KBC = 2 except that someboundary conditions are defined by a PDE requiringspatial derivatives not used in the main PDE. Allderivatives are evaluated at the boundary in this option,thus eliminating the need to set MORD to a nonzero valuefor those derivatives needed only at the boundary.

MSTH ODE method flag used to set the calling arguments in GEARB. Ifeither of the default options is used, METH returns set to theparameter value of the method selected. This method is chosen bythe values of KEQN, KBC, NPTS, and NPDE. METH has twodecimal digits, MODE and MJAC (METH = 10*MODE +MJAC).

MODE ODF method indicator with the following values and meanings:0 MOLlD selects one of the following methods:1 Adams-Bashford-Moulton method.2 Gear stiffly stable backward difference method.

MJAC Corrector iteration method indicator, with the following values andmeanings'.0 MOLlD selects one of the following methods:1 Jacobian approximated by the identity matrix (function

iteration).3 Jacobian approximated by a banded matrix. Bandwidth =

NPDE (for stiff equations).4 Jacobian approximated by a banded matrix. Bandwidth =

3*NPDE (for stiff equations).5 Jacobian approximated by a banded matrix. Bandwidth =

5*NPDE (for stiff equations).EPS Time integrator local error tolerance parameter chosen such that

the estimate of the time step error at the spatial grid points for all

Page 11: LA-7595-M U MOL1D: A General Purpose Subroutine Package

the PDEs is kept less than EPS in the root-mean-square (RMS)norm. EPS also is used to choose the initial step.

MOUT Input parameter that indicates the character of the output. IfMOUT is less than zero, the solution is printed at each time stepfor (MOUT) steps. If MOUT is greater than or equal to zero, it hasthe following values and meanings:0 No output is printed or plotted.1 The solution is printed at the preselected times in the array

TOUT. The printing is done in subroutine SOLPRT ontapr S.

2 The solution and its time derivative are printed at thepreselected times in TOUT.

3 The solution is printed and plotted at the preselected timesin TOUT. The plotting is done in subroutine SOLPLT.The user may supply an alternative subroutine if he wishesto provide his own graphics routine.

4 The lime derivative of the solution is printed and the solu-tion is both printed and plotted at the preselected times inTOUT.

5 The solution is plotted at the preselected times in TOUT.6 The solution is plotted, then rotated 90 degrees on 16-mm

film, and thus can be viewed as a movie. At the CourantInstitute's Computer Center this option is available only ifeither the FILMF or MOVIEF library routine is loaded.

(See note on the graphics option following the calling sequence description.)TOUT An input array of the times that the solution is to be printed or

plotted. If MOUT > 0, the solution is interpolated (by Taylorseries) at these times from its values at the actual integrationtimes. If MOUT < 0, the first (MOUT) printout times are returnedin TOUT.

MORD A matrix-dimensioned (NPDE.3) that indicates which derivatives?of the PDE variables are needed and what type of approximation isto be used. All derivative calculations done by the package assumean equally spaced mesh. If an unequally spaced mesh is used, setMORD(I,J) = 0 for all I and J or a terminal error message willresult, MORD(I,1), MORD(I,2), and M0RD(I,3) refer to UX(I),UXX(I), and FX(I), respectively. If the derivatives are needed onlyat the boundary, set KBC = 3 rather than setting MORD to a non-zero value. MORD has the following values and meanings:6 Sixth-order centered differences.4 Fourth-order centered differences.2 Second-order centered differences.1 Fast Fourier transform approximation.0 Derivative is not to be calculated by the package. It may

still be calculated by the user in subroutine PDE. Notethat the package cannot calculate derivatives on an un-equally spaced mesh.

— 1 Fast Fourier transform with linear filtering of the highermodes.

Page 12: LA-7595-M U MOL1D: A General Purpose Subroutine Package

TINTTLAST

UZ

XM

KMOL

-2 Second-order differences oriented into the characteristicsof ut = fx. The centered differences are used if the charac-teristics are perpendicular to the x axis.

- 4 Fourth-order centered differences or unsymmetric third-order differences oriented into the characteristics of ut = f*.

Initial value of the independent time variable t.Final integration time when control is to be returned to the callingprogram. TLAST must be greater than or equal to TINT. If theODE integrator fails to converge during integration, TLASTreturns equal to the last integration time.A matrix-dimensioned (NPDE.NPTS) of the dependent variableU. On input, UZ(I,J) contains the value of the I-th PDE compo-nent at the J-th mesh point at time t = TINT. On output, UZreturns the value of the solution at time = TLAST. Note that whenthere are periodic boundary conditions (KBC = 0) then UZ(I,1) ^UZ(I, NPTS) because the solution is calculated at only one of theboundary endpoints.An array of length NPTS containing the mesh points. The meshpoints must be evenly spaced if the derivatives are to be calculatedby the package. XM need not be evenly spaced if MORD(I.J) = 0for all I,J. On unevenly spaced meshes the derivatives can be com-puted in subroutine PDE by the user.An indicator flag used for both input and output. On input, it hasthe following values and meanings:<0 Calls a debugging dump on the first and last time steps. In

a debugging dump the solution, all relevant spatial andtemporal derivatives, and error estimates are printed.

0 No dumps are called unless an error is encountered.On output, KMOL returns one of the following values:0 Integration was successful.<0 Integration was halted after encountering a fatal error. A

message is printed and returns with the following KMOLv.ilues and meanings:

- 1 Integration was halted after failure to pass the error testeven after the time step DT was reduced by a factor of 1010

from its original value.-2 Ervor test failure indicating that EPS is too small for the

problem.—3 Integration was halted after failing to achieve corrector

convergence. If possible, increase MJAC for more accurateJacobian approximation.

-4 An illegal input was found by the GEARB package. Anerror message is printed on tape 3.

- 5 Insufficient storage available. Increase array dimensions insubroutine M0L1D.

- 6 Illegal input NPTS <5 or NPDE <1.- 7 Illegal input KEQN * ±1, ±2, ±3, 4.- 8 Illegal input KBC ^ 0, 1, 2, 3.- 9 Illegal input MODE * 0, 1, 2.

Page 13: LA-7595-M U MOL1D: A General Purpose Subroutine Package

-10 Illegal input MJAC * 0, 1, 2, 3, 4, 5.-11 Illegal input in MORD.-12 Illegal input MOUT > 6.-13 Error in TOUT array; TLAST never reached.-14 Error in TOUT array; TOUT (I + 1) < TOUT(I) for some

I.-15 Error in plotting parameters in COMMON/MOLPLT/.— 16 Fourier method can be used only if there are periodic

boundaries and NPTS = 2**N for some N.-17 XM is not evenly spaced and MORD * 0.

If the solution is to be plottod (MOUT > 2), the user must provide the following common block:

COMMON/MOLPLT/NPLT,IDEN,MG,XAL,UAL,XAXIS(2),UAXIS(NPDE,2),

with the following values and meanings for its arguments:NPLT Descriptor for the way the solution is to be plotted. NPLT has the

following values and meanings:0 Each PDE component is plotted on a separate set of axes

with dynamic scaling (Tektronix Plot-10 only).1 Each PDE component is plotted on a separate set of axes.2 All PDE components are plotted on the same set of axes at

each output time.3 AH PDE components are plotted on the same axes for the

entire run.IDEN Plot identification label (as read with an A6 format).MG Graph method parameter to determine the type of line used to plot

the solution. If MG > 0, the solution data points are designated by"X"; otherwise, an unmarked line is drawn. If quadratic interpola-tion is to be used between the data points, MG so indicates and hapthe following values and meanings:±1 No interpolation.±2 Interpolate one point between each pair of data points on

an evenly spaced grid.±3 Interpolate two points between each pair of data points on

an evenly spaced grid.XAL Length of X axis in inches (<10) (CalComp only).UAL Length of U axis in inches (<10) (CalComp only).XAXlS(l) Minimum values of X axis (NPLT * 0).XAXIS(2) Maximum values of X axis (NPLT * 0).UAXIS(U) Minimum value of U(I) axis (NPLT * 0).UAXIS(I,2) Maximum value of U(I) axis. To prevent U(I) from being plotted,

set UAXIS(I,2) = UAXIS(I.l).Additional communication between the user and the package can be gained through the com-

mon block:

COMMON/MOLINF/DTL.DTAVG.LORD.ORDAVG.NSTEPS.NPDEE.NJACE.CPTIME

Page 14: LA-7595-M U MOL1D: A General Purpose Subroutine Package

with the following meanings and values for the arguments:DTL Last time step size.DTAVG Average time step in the calculation.LORD Order of the time integration method last used.ORDAVG Average order of the time integrator used in the calculation.NSTEPS Cumulative number of time steps taken.NPDEF Cumulative number of PDE evaluations.NJ ACF Cumulative number of Jacobian evaluations of the differential dif-

ference equation.CPTIME Cumulative computer running time used for the integration.

Approximations of the spatial derivatives of the solution at the last PDE evaluation are con-tained in the following common blocks:

C0MM0N/M0LC2/UX(NPDE,NPTS)C0MM0N/M0LC3/UXX(NPDE,NPT S)C0MM0N/M0LC4/FX(NPDE,NPTS).

IV. INDEPENDENT USER-CALLABLE SUBROUTINES

The subroutines COMPAR, DECB, SOLB, and FFT842 can be called directly to estimate theaccuracy of a calculation, solve a banded system of linear equations, or compute the discreteFourier transform of an array. These routines are modular and can be used independently of therest of the package.

A. Subroutine COMPAR

In calculations where the exact solution is known, the accuracy of the numerical solution canbe found by calling subroutine COMPAR. COMPAR is often useful for comparing different timeand space differencing methods on a test problem similar to a system of equations in which theexact solution is not known. If the optimal method is selected for the test problem, a near-optimal method for the original equation is likely to result.

Subroutine COMPAR measures the difference between two vectors u and v of length N bycalculating the

discrete

DLl =

disc. 3te

DL2 = |

Li

1N

U

norm

N

£i=l

norm

N

i=l

10

Page 15: LA-7595-M U MOL1D: A General Purpose Subroutine Package

and L or max normoo

DMAX = max j u . - v . |i = l , 2 , . . . N 1 1

In periodic problems (UN11 = U,) the phase difference in the dominant Fourier mode of U andthe same mode of V can be ca'c^iaiea u iv - 2m. This phase difference is scaled to the range[ —7r,7r]. The phase error m V is then eliminated in Fourier space and the shifted vector is re-turned in VS.

Once the phase error has been removed, the distortion or difference in shape between the Uand V can be computed by calculating the corrected L,, L2, and L^ differences between U andVS.

The parameter list and calling sequence for subroutine COMPAR is:

SUBROUTINE COMPAR ( N , U , V , U S , U L 2 , V L 2 , D L 1 , D L 2 , D M A X , D P H , C D L 1 , C D L 2 , -

CDMAX.IND).

The calling parameters have the following values and meanings:N Input parameter equal to the number of spatial mesh points.U Input array of length N.V Input array of length N to be compared with U.VS Output array of length N equal to the input vector V shifted to

correct for the phase error in the dominant Fourier mode of U.UL2 Discrete L2 norm of U.VL2 Discrete L2 norm of V.DLl Difference between U and V in the discrete 1,! norm.DL2 Difference between U and V in the discrete L2 norm.DMAX Difference between U and V in the maximum norm.DPH Phase difference in the dominant Fourier mode of U.CDLl Difference between U and VS in the discrete Lj norm.CDL2 Difference between U and VS in the discrete L2 norm.CDMAX Difference between U and VS in the maximum norm.IND Indicator used for both input and output. On input, IND > 0 fla^s

"no printed output." If IND < 0, the difference between U and V isprinted on tape 3. The magnitude of IND has the following valuesand meanings:1 Phase differences are not computed.2 Phase differences are computed.IND returns equal to ±1 if N is not a power of 2 and phase errorswere called for; otherwise, it returns unchanged.

B. Subroutines DECB and SOLB

Subroutines DECB and SOLB will solve a banded linear system of equations of the formAx = b by forming the LU decomposition of A and solving the decomposed system. That is, inDECB the matrics L, U, and P are found such that LU = PA. Subroutine SOLB then solves thelinear system LI Tx = Pb. Here L is a lower trianj. .lar matrix, U is an upper triangular matrix,and P is a pen. ation matrix.

Page 16: LA-7595-M U MOL1D: A General Purpose Subroutine Package

The LU decomposition can be calculated in

SUBROUTINE DECB(NDIM,N,ML,MU,C,IP,IER),

whereN Order of matrix.C N by (2*ML + MU+1) array containing the matrix A on input and

the LU factors on output. On input, C(I,K) (1 < I < N) containsthe K-th diagonal of A, or A(I,J) is stored in C(I,J-I+ML+1). Onoutput, C contains the L and U factors, with U in columns 1 toML+MU-rl, and L in columns ML+MU+2 to 2*ML+MU+1

ML.MU Widths of the lower and upper parts of the band, not counting themain diagonal. Total bandwidth is ML+MU+1.

NDIM The first dimension (column length) of the array C. Note thatNDIM > N.

IP Array of length N containing pivot information.IER Error indicator, which returns:

0 if no errors were encounteredK if the K-th pivot chosen was zero (A is singular).

The input arguments are NDIM, N, ML, MU, C. The output arguments are C, IP, IER.

When the storage is available and A does not change during the calculation, the LU decom-position needs to be performed only once at the beginning of the calculation. At each time stepthe system Ax = b is solved by

SUBROUTINE SOLB(NDIM,N,ML,MU,C,Y,IP),

where NDIM, N, ML, MU, ai.d C are as returned from subroutine DECB, Y is the right-handvector B, of length N on input and the solution vector X on output.

All the arguments are input arguments. The output argument is Y. Example 4 in Sec. VI usesthese routines.

C. Subroutine FFT842

Subroutine FFT842 calculates the discrete complex Fourier transform of a vector Z = X + iYof length 2N2POW by using the fast Fourier transform with base 8, 4, and 2 iterations. The uses forFFT842 include computation of accurate approximations to the spatial derivatives and analysisor filtering of the solution during a calculation.

The input parameters for

SUBROUTINE FFT842(N2POW,X,Y)

are the real and imaginary parts of the vector Z(I) = X(I) + >/-! Y(I) of length 2N2POW. The realand imaginary parts of the discrete Fourier coefficients are returned in the X and Y vectors,respectively.

12

Page 17: LA-7595-M U MOL1D: A General Purpose Subroutine Package

V. SUBROUTINES SUPPLIED BY THE USER

To structure MOLlD into an operational program the user must provide a main program andthree subroutines. In the main program the arguments cf the package are initialized and sub-routine MOLlD is called. The subroutines describe the PDE system to be solved.

For example, consider the Eulerian equations of gas dynamics. These equations can be writtenin the form

Wt + p W x = 6Wxx

where

(5.1)

and

Ui = mass densityu2 = m o m e n t u mu3 = total energy per uni t volume or energy densityv = Uj/Ui = velocityp = 2/3 (u3 - 1/2 u,^) = pressure5 = 0.008 = artificial dissipation coefficient.

The reflecting boundary conditions at x = 0 and x = 2 can be written in the form

= 0 (5.2)

To solve these equations the user must supply not only the main program but also subroutinesPDE, FUNC, and BNDRY.

A. Subroutine PDE

Subroutine PDE aiways must be provided by the user to describe the right-hand side of thedifferential equation. The calling sequence and array data structure for this subroutine are:

SUBROUTINE PDE(UT,U,UX,UXX,FX,T,X,IX,NPDE)DIMENSION UT(NPDE),U(NPDE),UX(NPDE),UXX(NPDE),FX(NPDE).

In subroutine PDE the time derivative of the I-th PDE components UT(I) (= (U,)t, i =1,2,...,NPDE) are defined as functions of X,T,U(J),UX(J),UXX(J), and the derivative of the

Page 18: LA-7595-M U MOL1D: A General Purpose Subroutine Package

flux function F(J), FX(-J). Here, the argument J refers to the J-th PDE. The flux function F isdefined in subroutine FUNC, a user-supplied subroutine described later in this section.

On each call the subroutine defines the PDE at one point on the spatial mesh. This spatialpoint X is the IX-th element in the array of mesh points XM defined by the user and passed tosubroutine M0L1D.

Subroutine PDE could be written to solve the Euler equations (5.1) as:

SUBROUTINE PDE(UT,U,UX,UXX,FX,T,X,IX,NPDE)DIMENSION U(NPDE),UT(NPDE),UX(NPDE),UXX(NPDE),FX(NPDE)UT(1) = - FX(1) + 0.006*UXX(l)UT(2) = - FX(2) + 0.006*UXX(2)UT(3) = - FX(3) + 0.006*UXX(3)RETURNEND.

When it would be inefficient to define the differential equation point by point, subroutinePDE can be written to define the solution along the entire array of mesh points. The callingsequence and array data structure for that line form of subroutine PDE are:

SUBROUTINE PDE(UT,U,UX,UXX,FX,T,XM,IX,NPDE)DIMENSION UT(NPDE,NPTS).U(NPDE,NPTS),UX(NPDE,NPTS),

1 UXX{NPDF,,NPTS), FX(NPDE,NPTS},XM(NPTS).

With the above form, all the time derivatives of the PDE components UT(I,J) are defined atall the spatial mesh points XM(J) as functions of XM,T,U(I,J),UX(I,J),UXX(I,J), and FX(I,J)for I = 1,2,... or NPDE and J = 1,2,... or NPTS. The integer pointer IX enters the routine equalto one and must be set to IX = NPTS in the subroutine to indicate that the time derivatives havebeen defined at all the points between XM(IXenter) and XM(IXreturn).

To solve the Euler equations (5.1) with a mesh of NPTS = 101 points, subroutine PDE couldbe written as:

SUBROUTINE PDE(UT,U,UX,UXX,FX,T,XM,IX,NPDE)DIMENSION U(NPDE,101),UT(NPDE,101),UX(NPDE,101),UXX(NPDE,101)

1 FX(NPDE,101),XM(101)

DO 10J = 1,101UT(l.J) = -FX(l,J)+0.006*UXX(l,J)UT(2.J) = -FX(2,J)+0.006*UXX(2,J)

10 UT(3.J) = -FX(3,J)+0.006*UXX(.J,J)IX = 101

RETURNEND.

The l'ne form of subroutine PDE has several advantages over the point-by-point form. Userscan prescribe their own special differencing for meshes with unequal grid spacing, staggeredgrids, or for special nonlinear terms such as (IP)XX. For example, a better form than 5WXX for theartificial dissipation term is the Rusanov form

14

Page 19: LA-7595-M U MOL1D: A General Purpose Subroutine Package

6 DX [ ( | v | + c ) W v 1 = « K + 1 / 5 > - D. , / ? \ (5.3)

where

and 5 is chosen slightly less than one. Here, the subscript i lefers to the spatial mesh point, v isthe velocity, and c the gas sound speed.4 It is easier to add a Rusanov form of artificial dissipa-tion to the line formulation of subroutine PDE than to the pointwise form.

With the line formulation it also is easier to include global integral or differential relationshipsin the solution of the differential equation. The line formulation should be used for boundaryconditions that are defined by an ordinary differential equation.

Often the system of differential equations is in the form

AUt = g(x,t,u3ux,uxx,fx)

and a linear system must be solved at every time step. For example, such a system of equationsoccurs naturally in the regularized long-wave shallow-water equation

( o \ o

3x2 / 3t 9xwhich is solved in Example 4 in Sec. VI. If the linear system is to be solved, the solution must beknown at all the mesh points, hence the line formulation of subroutine PDE must be used. Com-pact or Pade finite difference equations also give rise to linear systems that must be solved onevery time step. The package has a linear solver for banded systems, which is described in Sec.IV.

B. Subroutine FUNC

When the equation involves the derivative of a flux function, that function should be definedin subroutine FUNC to retain the divergence form of the differentia! equations in the differenceequations. Subroutine FUNC defines F as a function of T,X,U,UX, and UXX.

For the Euler equations (5.1) subroutine FUNC could be written as

SUBROUTINE FUNC(F,U,UX,UXX,T,X,IX,NPDE)DIMENSION F(NPDE),U(NPDE),UX(NPDE),UXX(NPDE)

VEL = U(2) / U(l)PRES = 0.667*(U(3)-0.5*U(1)*VEL**2)F(l) - U(2)F(2) = VEL*U(2)+PRESF(3) = VEL*(U(3)+PRES)

RETURNEND.

15

Page 20: LA-7595-M U MOL1D: A General Purpose Subroutine Package

When centered differences a>-e used to approximate the derivatives of the flux function(M0RD(*,3) > -1), a form similar to the line formulation of subroutine PDE may be used todefine the flux function at all the mesh points on each call. For the Euler equations on a mesh ofNPTS = 101 points, subroutine F'UNC could be written as:

SUBROUTINE FUNC(F,U,UX,UXX,T,XM,IX,NPDE)DIMENSION F(NPDE,101),U(NPDE,101),UX(NPDE,101),UXX(NPDE,101),

1 XM(101)DO 10 J = 1,101VEL = U(2,J)/UU,J)PRES = 0.667*(U(3,J)-0.5*U(l,J)*VEL**2)F(1,J) = U(2,J)F(2,J) = VEL*U(2,J)+PRES

10 F(3,J) = VEL*(U(3,J)+PRES)IX = 101

RETURNEND.

As in subroutine PDE, when the function F is defined at all the mesh points, the user sets IX =NPTS as a flag to the package.

C. Subroutine BNDRY

When the boundary conditions are other than periodic (KBC = 1) and are not defined in sub-routine PDE (KBC = 0), the user must provide subroutine BNDRY to describe the boundaryconditions to the package.

The calling sequence and array data structure for BNDRY are:

SUBROUTINE BNDRY(T,UL,AL,BL,CL,UR,AR,BR,CR,NPDE)DIMENSION UL(NPDE),AL(NPDE),BL(NPDE),CL(NPDE)DIMENSION UR(NPDE),AR(NPDE),BR(NPDE),CR(NPDE).

Subroutine BNDRY can be used to define boundary conditions at the left boundary:

AL(I)*U (I)+BL(I)*UX(I)=CL(I) a t X=XM{1) (5.4a)

and at the right boundary:

AR(I)*U (I)+BR(I)*UX(I) = CR(I) a t X = XM(NPTS) , (5.4b)

where UL(I) and UR(I) contain the solution for the I-th PDE at the left and right boundaries,respectively. If BL or BR is not equal to zero, then AL, AR, BL, BR, CL, and CR can be functionsof UL, UR, and T; otherwise, they can be functions of T only. If no boundary conditions are im-posed, or if the boundary is defined in differential form in subroutine PDE, the package can beflagged accordingly by not altering the value of the coefficients in Eq. (5.4) or by setting them tozero (the default value).

16

Page 21: LA-7595-M U MOL1D: A General Purpose Subroutine Package

To define the boundary conditions (5.2) for the Euler equations, subroutine BNDRY could bewritten as:

SUBROUTINE BNDRY(T,UL,AL,BL,CL,UR,AR,BR,CR1NPDE)DIMENSION UR(NPDE),AR(NPDE),BR(NPDE),CR(NPDE)DIMENSION UL(NPDE),AL(NPDE))BL(NPDE),CL(NPDE)

BL(1) =AL(2) =BUS) -

BR(1) =AR(2) =BR(3) =

RETURNEND.

1.01.01.0

1.01.01.0

VI. SAMPLE PROGRAMS

Example 1: Euler Equations of Gas Dynamics

We now list a complete program and output for solving the Euler equations (F.I) with thereflecting boundary conditions (5.2) and the initial conditions

0 < X < -J

U^X.O) = 1.0

U2(X,0) = 0.0

U3(X,O) = 1.5

J < X < 2

0.125

0.0

0.15

Figure 2 shows the solution at time t = 0.5 after forming into a shock wave, a contact discon-tinuity, and a rarefaction wave.

17

Page 22: LA-7595-M U MOL1D: A General Purpose Subroutine Package

OGRAM F ! J L E | : ? f T f v t : i J T , r , , i T p : J T , T A P f 3 - 0 i l T i : > U T , T A P L S 9 s T T V ;

ON JZ f 5 , U M ) , V11 f 1^1 ) , ' i n « 0 ( 3 , i"> , T O U T ( 2 )

O L P L T / M P L T , I ^ t ' ' J , !•'(,, y A L » J A L » x A x l S f ^ )

C

N P O E - 3M P T S s i f lK p. Q M = • SK H C - ?DO 1 0 I s t

I» 25 =?

cc

cc

EPTlTL

KM

S

A

= 1 .T = .1

PL = -TOU

OE

DO

UZ

IF

uzUZ

50 UZ

SE

F

f(

f(cf

T

r(i

INE

50I)s1, I

XM(t » I5 s Ie?» I

Et

1)

f-

IF

>

I)))

-'1

TH£I HA

Sl fLOA

).LSi*,

P L O T T I

AS

I

MPT(d

T.1?15

MG

T

M

T5T-

P

rr

i)

7 5

AR

AL Cf^/f'lTl

*C>x

) GO TO SH

A'lF T F P 5

J A L = 1*3. 3

DO 7P I = l , N P D E

U A X I S C I » D s t i . W

70 CONTINUEC

CALL MOL)1 rlMTjTLACALL EXITEND

18

Page 23: LA-7595-M U MOL1D: A General Purpose Subroutine Package

S U B R O U T I N E PDErjT,'l,UX,UXX,FX,T,X,lx»NPDF.)ON U(NPnE),HTCNPDE),,l)tfNpr)t),UXX(NpnE) fFX(NP[)E)

UT(l) s -Fy ( 1 )UT(2) = - P V ( ? )J T ( 3 ) = -?*( 5)

RE T J R NEND

Ti NE C f , , , T , « I , -)D I M E N S I O N F ( N p n E ) , U ( N P D f ) , J x C N P D F ) , j X X ( N P D E )

F(3) =

I R Y ( T , Jl.,AL#HL.Cl.# J » # A ^ , B R # C R » ND I M E N S I O N J R ( N P D F ) , A R ( N P D E ) , B R ( N P D E ) # C R ( N P D E )O :JL(NPDF),At.(NPOE"},BL(NPDE)#CU(NPOE)

A L ( 2) s 1 . »

A R f 2) s 1 . PB R ( 3 ) s l ,C»

R t T J P NEND

19

Page 24: LA-7595-M U MOL1D: A General Purpose Subroutine Package

a

(A

£

i

1 1 1 11 1 1 1

//

1 1 1

)

f

r

1

V

CM \

ZD \

1 1 1 i

. i-

i i

r

-

00g

Io

I

20

Page 25: LA-7595-M U MOL1D: A General Purpose Subroutine Package

THE I N 0 J T P A R A M E T E R S A R E «

= 3 Nt»TS a m i *HC = ?K fc" '3 \i = • 3 M E T H = | 1 f PS = 1 , fi w vi (AI m fl U

» 2 , 3 ) s aM O R O C 3 , ? ) = 2

T I ^ T = H, TLAST = 5,00PI2JE-FI1 MO'.jT s -'I

TOUT s 5 , /»:,H?l'tE-3]

********** PLOTTING PARAME»F:«S **********

EJLER PLOTS

3 =>LOTS PE* FRAME VIR S -1X AXIS LENGTH s ld,?;i INCHESU AXIS LENGTH = I?».a3 INCHES

X AxIS RASJGES RETHEEN 0. ANn ?,J(l) AXIS RANGES 8t.TiJFEN ^. ANn 2,J(2) AXIS RANGES R E T - J E E N ^. ANn 2,J(3) AXIS RANGES Bt.

21

Page 26: LA-7595-M U MOL1D: A General Purpose Subroutine Package

UJ liJ 1*1 1*I 1*1 1*1 H I UJ 1*1 u i 1*1 1*1 1*1 1U 1&4 UJ l&l 1*1 4*1 l4i t*« 1*1 1*1 l*i LvJ 1*1 4*1 1*1 I*J 1*1 1*1 iLl UJ 1*1 111 i l l 1*1 111 1

1*1 L*J !*• 1*1 Lii 1*1 l*i 1*1 k- 1*>

w <ti rfi KI s HI m it v £ i > M

1 l*i kO k*l UJ I*J kui **1 l4l 1*J 1*1 1*1 1*1 Upl 1*1 kfci 1*1 l&i l4i 1*1 ifci 1*1 Lkl l&i l4 l 1*1 l* i U 1*J UU 1*1 Ui ifci lAi 1*1 m l&J 1*J Lfti Ifcl

1*1 l*i 1*1 1A« 1*1 I*J 111 i l t J 1*4 ll> IA I 1*> *i> 1*4 1*J * - ' " • •

II 1*1 LU 1*1 U-l UllilUlUi(llUILill)UlLu(UUJLULlluUJU.klUJUllliiLllUliiUlulUbJLllulLlU>lU i*i 1*1

— oSi m —•• »-ui e «i

Si ollll)S. « •« O

• 1*1 O

si — mm =» «»»o-

1*1 1*J 1*1 1*1 1*1 1*1 1*1 1*J 1*1 1*1 i&l LU I*J L*. Lu 1*1 111 1*1 1*1 1*1 I*J 1*J 1*1 1*1 1*1 k*J 1*1 UJ liJ !*• I*J 1*1 1*1 1*1 Lil 1*1 Ifcl ^ i

UI SI - • «X * (US

»- Id »

s

H 1*1

22

Page 27: LA-7595-M U MOL1D: A General Purpose Subroutine Package

- * A j - * * * ~ * - ~ ~ S . -a - * —

A* C* - • (

• • • •

=5 4)tOh--<>»

— 9 9 •— r*>r -

« ao cr - - —• --*

•*> IT ro 3 9 i/* -« r» r* • - r- 9 ot,

t • r •

• • • ft

( 8 P S G 1 S S S S K & G S R t R K 6 i K G R ( l i 6 i . K C F « t 6 ^ C& K G. C» & S K (LGi & f i E. K b Ci E (S & S

^ i^ r\j rv /KM

Q 6 C- G. C . & K n C j G . & . C i rc&

UJ ttl L.' l J tiJ LA. |Li U' ' • ' l i i u i ^ i U) UM

(Vt J &.• O" (T CS1 AJ ot t^ a, ru h <X n— •— A,

U- M U UJ

9 9 99 99 9 9

t U a J u ^ u J U i U . O J U J U l U . t ^ - i i l l I t . 4 , f ^ t t l 1 ^ t i ^ ^ t f ^^^ i

ir M m 3 ^1© « M 3 41 ai <si AJ r 4)ITI n <M 3 .o3 ^ 9 3 3 1/MTlO l/> IT « >O « )

—• A* P*l 9 JY 4>N (C9 9 9 9 9 9 9 9

23

Page 28: LA-7595-M U MOL1D: A General Purpose Subroutine Package

~- Ci K\> .o m rj,

> © • - • • • • « - • *

=3- ro &, ,0 in :» in —• si •-» o> &• F-

^Jtss" »-- r*- 41 cc in K»

• t i t r • • •

i/i r- .£> f\i

• » i

C IS. 6

l\< (\1 »\4

•o

s.

o-

K l

r.

rum

tf. o-

3 —

rvi r\i

U: UJ UI Ul

d Ci R. C-

t R. r> c.

•£c

UJ

sl/><AJ

•o

K.

n*

s.

UI

s1/1rvj

i t i i^j ^ u ..t r L ^ ^ IL _ th * ^ J >* * \*i i ^i i^ ^ «,fr

c j A c O f ^ f \ j 3 * ( C O / \ i = i ^) an s:(^ p** I** a ( t iC flL *C &1 ^ ^ O1 CP* S.

24

Page 29: LA-7595-M U MOL1D: A General Purpose Subroutine Package

DJ*>> CALLED AT TIMf. « 5,Bj?iE»?l

,BU5 CPJ SECONDS SINCE T H E LAST PRJK'T

OT e ?,9U35E«0J DX sTHE LAST SUCCESSFUL TIME ST£*» USfD A 5 O»OE<? METHOD «ITrt DT = 2,

TwF EOJATIDN HAS BEEU INT£G»ATFD JIB TIME STEPS USING391 JT EVALJTIONS ANP P J A C O P I A N

FLAGS AJ»E» KfL*G s 0INDEX E 0

25

Page 30: LA-7595-M U MOL1D: A General Purpose Subroutine Package

tiJ uJ ULJ t i i u j »iJ >JJ t i l UJ «** **J uJ «*J UJ uJ) uJ UJ UJ

tjj ki_ ^J L»J UJ «4J UJ UJ UJ OJ U» kki UJ >k> U^ UJ viJ UJ U* UJ UJ UJ tfct UJ UJ

* - ^ ) — S

k J UJ UJ UJ Oi UJ UJ UJ UJ 1<J UJ **J UJ UJ UJ UJ Ui li-i bU

f\i •-• "O ^ S f1*- 3D ff" ^^ i/ *\* LO ~* P** Li"* f"«- <O S ru "O 0 ^ f^ S ••* "O "* 3T 3 -O */ 3 ^ r

'XJ OD "^ f\J VJ *\i ?* O" *O **) S r<*. 3 R £ ^* j ^ ff" f*i ufl **• CC QD © -fi 3 ^* ^ 5J ^ f*l f** 3 "^^~ f\i i/ ^ 'VJ ** **i TS AJ 3 -^ f * ^ ^^ r\* ^ if »© <c ff s "~ fVi *^ ^ i/*" o ^ ^^ *- cc <c ^ O1

C + + + • • + • • + • + ! I I I I I i l l • I I I I I + + + + • « • » •fy y^ ^^ ^J ^ 11 kj | ii i ^^ ^J it ' t| I | i ^J ^j ^J ^^ ^j ^ j ^^ ^J 111 ^J ^J ^j ^J l i i Wt ^J la l ^ j ^ j ^ j ^ j ^ j | ^ ^J

u n s. K e. s z> • • • rum a s s3 1^'^ -r- f rv 'v a.

• • • • £t o - - c

o

u n ti II n t— :

41

«

a

X

«

ycrc_

s%1.

cs.

i

B. ! ,

c

&

ft

•^ SI<+> <ciJ_ UJ^ IT

s. s• •

I 1.1 J , nl l.i ti. LJ it! liJ bJ UJ

cr s nj — a- s N

U> UJ UJ U_ l i i U-» U^ U_ b j Lk< U^ UU UJ UJ UJ Lki UJ kki UJ UJ i u hiJ UJ U> U_i UJ Ik.

a: o«t aoz >-O T

O

26

Page 31: LA-7595-M U MOL1D: A General Purpose Subroutine Package

X — f \ j r v i P — — r\j

U- UJ ^ du uJ u . i u

S S S K . ^ S . S S 5 . S K K S S . S & C ( S K . Sff 3 I I • t I i I • J » I f * - * * - * * *

i fc t . » | t 1 i I ^ j t i 1

j rv, f\j f\i f\j ru "f\* •

^ t i i ^ ^ ^ «• * i | f . | . ; j ^ | . i . . ^ ^ j ^ ) ia j ^ ^ ^ ^ ^ I ^j ^ ^ ^ ^

S©lT Si^ S iT. X ^ i

S K S S S S C C C C ' S ' S C

^ .or-cc

r\J -O J J T \ J ^ .

• • • »

i•^^p^O P- ^ co •—• •a o* -\i o to"»flC ^ XI >I S S r - - f * - C ' ' I T -C

t a • t i t

27

Page 32: LA-7595-M U MOL1D: A General Purpose Subroutine Package

x ^ n i K i a - <\, »- — ic <£ r\. ru h- — =1 x .c KI —

S S S & S S S S S S S S S C T S S S S . K S

~- K o- rv. rvJ ao d s a 7tCf\jfflSi'\j(?'u'\Jir?S3 *-WIT -« 3 <O - 3 •* S —• fS Oj (C - i P K ^ 3 p

ro — r\j - - —* — r \ j»* -^K>u^^-^-x — ir » - iv ^• i till & • * »

•^ «- 'S .^ s — '"uru^^jni/iiTi-or'^ccaao1 — s

X) ^ ra — rr- ^r\ j«o' \ j >

- 1 « w >S3 X Lr S tc ff (t

J !

s is

o is

» -D

»ruXc

ru

r\j

cc

!o

S. K

J"t J

3 tn

in J I rIS K (

ry ry fl5 ^jnr~ r— "»J; — 0

r- a o-j "1 ^"> JO x

s •o cy ccJT r- cc£ jl 39 X X

•Mi r

K

ru•~

s-

Xo-

s ft> K cr f. (TO'Ccr*- — s a r r\. IT « N - r x

- ^ i c ? C K -ftftft

'*: s ^r;. si

K-. —co a M

s s s s s i s s s i s ^ j ' s a s s t s s r r s R S -s

11 \ ^ ^ ] ^_| i . I ^ ^ ^ i t j . i^ ' ^ i ^_i .a > j ; * • .^ : t> < _ t t > a t i f c i _a <

^W ^T ^JO 3D ^& ^ J ^ ^5 CX3 ^ ^ J ^ sO *y» ^v r\J J ^3 ^C ^^

j j . B ^ S - o r ^ f - p ^ t ^ f ^ c c c c c c c o c c O ' O ' r j - a o - s

28

Page 33: LA-7595-M U MOL1D: A General Purpose Subroutine Package

(XGO aXT _U

u uJ J

Q. K S i ( S S S . S S .• • • • • • • < • • • • •

U*UiUJLkltiJUUiUJk.*o <?• s o x « »\J

II SI

LlJ tJj UJ l*J tAi kkJ UJ LkJ

1 HI f ^ W

ru

UJ s 'a icr xuiox si

UJ UJ UJ LkJ Lli kLd i l l LkJ LlJ LlJ UJ UJ Lk> UJ U i UJ UJ I*) L*J UJ UU UU UJ UJ \U *LJ UJ UJ UJ

*\i f\J ~* S OU U E K — — Z

• 1 1 1 <MX X U. U. J- UJ

s a s. in• ^ ^ tj-1 r\j •

ru — r FO cti (_>

+ tj S S S3 • • • -f« U J UJ UJ UJ

< ^ ^ K S

V g V J V US K S S S S S S S S S t S S S S I S S S S B O S B S S S S S S S I S E S

s «i rvi i

i ru IM

ru t- u II n n

- cCD ^

li. lu U-t *u UJ Ui UJ U- U> UJ UJ

zO en

oa.

to 3

S S S S K S S S S S S S S K S S S S S S : S 1 S C B C S . S C S S B C 5 S S S K C £

X iL)UyUJikJUUJUiUU:iliWu)lUiJUJ^UIUIIWIiJIUUJUbUUlUJUJUiu;UiLluJiiJS 5 > ! S S ^ S - ; S S S ( » ^ B ^ ^ S S S S B S I S S S

-M-^3inj)iva;(MB—fvl'fl3«-OMti(MS—

29

Page 34: LA-7595-M U MOL1D: A General Purpose Subroutine Package

4S 0 S 9 h

I T O { > 9 O Ovo-o-oo-o-o-oo-o o- o o-

r-f"i^»^r- — — v -C o-

cc*">9 «< K> ni s IP <

It • I I

IAJ UJ 4 1 ilJ i&J I U UJ

•c r~ <n a ^

* + t I t I I 1 1 1 I I ! + • • • • • + + + • • • ! • * • • • » • • • • • • • + • • • • • t * « + i + * * *1.1 l«l 11 Hi n. lit LA., itl til U lU^Ul tU HJ IA , . . . L.I .«: .1- . i . L. li^ LiJ Ll. . i ; m UI J I Li; tLUJ LU Ul AJ Ul liJ bi u l tli Ul aJ l»l !•! U I in H I 1

nn<M/isMr>j3/>rMt>O£Mnj^lt»rtS3ft'fl4«iliffrtO3inarM»jjj)

ti t

UJ UJ U UJ U> UJ U J UJ UJ l&J l J tA» iLi UJ

K K S S S S S S S & K S 5 S 5 G S S E H S 5 I K S S S S K S S K B S K S S S K S S S S S S S S

I*^ ^ i LJ ^ ^ Lkv I t r

u. UJ MJ J-. u:UJu-UJWajujUJa-UJUjUJU,UJl^uJuJUJUJUiUJlUUJUJ'aJaJUJUJUJS*JUJuJUJUJUJl*JCwC9^^^l^'5R^'\J3O«iKfVI?Xitl(Of\J^^lt53fU5fiaiQfVi3*©f3fM*ftSft

30

Page 35: LA-7595-M U MOL1D: A General Purpose Subroutine Package

• ti- * - * f\) -\j r*>

v« -— Cf> f\, f*> F*l Aj -J3 ff" *O 9 " * ID (D CC- ff) CC A CC

U J IXJ U\J U J ifc * ^ 0 U J ^ H i ^ ^ j t^ L LJL . ULJ> ^ J ^ J IL| . ^ ^

i>O c» • - K> — <\J . - — p o i r * - .S • • • « 6 »

LJJJ l*J UJ kU L»J UJ UJ u^ UJ UJ UJ UJ UJ U4 LLt UJ uJ

( J O O ^) M f^ S ff- w 3 J3J3 > in S " ^ ^ iJlec c a * r - c s s^ i fE in&wf .a ' ^

kLj u_ UJ U_ U J U J «i.

UJ IAJ IXJ UJ UJ U> UJ UJ LkJ UJ UJ UJ UJ U i UJ UJ U J 'JJ UJ

3 SO1 *SSI""-'VJWtfllP5^f«*rflS

• I t i l l * i I

UJUJUJUJUJUJUJUJUJUJUJU. 'U- 'bJU-U-U-

a- Gt

t t • I f ft t

^ s a -^ ^ **3 (Q Q

S S C & K K K ® S S K- CB K C C G S S S - S I S

UJ UJ uJ UJ UJ Ui *iJ UJ l i j UJ UJ UJ* u U j U- UJ UJ UJ UJ

^D J^ i £ ^ - * ^ - ^ ^ ^C> Q CC GO £p ^ C ^ ^ ^^ *S

31

Page 36: LA-7595-M U MOL1D: A General Purpose Subroutine Package

<s s

M II

s. s

K SS SS KSI -S.

UJ UJ UJ Ik. UJ UJ UJ Uii UJ UJ Uut UJ ILJ UJ *lj UJ UJ UJ UJ iMJ UJ Uj UJ UJ UJ I*J U> UJ UJ U> UJ U> Uj UJ 4X I S S K S S S ' S S S S l i S K S l K . t S C S S S K S I S — • - • —r H H I " X I V N t l T S 3•« 5: E K K f . K S K K G . S K K S K & . & I S K S S K K ' S . E K K S K K K — E ""

aic i UJ UJ U_ UJ

) Si S ^ S S * * ^* ™

• • • * - • ! • •) U J U J U J U J U J U J U . U J

UJo

s es s s. s. s <s• » • • • > t

- — LTl C 31 O" 7 ^ I

-fl cc o* es.*-f\i

LJJI S. & 3 S S. S G.

G K IS ^ E E. S

•s s —KM S X S

ru ^ s sl«- -C O. G.-^. 3 -S S

— r- — _ o

II II N B

Xa:oa.

*UJ

•-• X

i - ^

a. • I

s.

c

I I

A j">t

a jK

S

f

I I

^

-*-UJKK.I V

I M

«

UJ

I I

S K . S ' ^ r ' S i ' S ' S S n ' S S S K .K K K K K S S K K S E K K+ + + * + + + + * • + + *•+•

hL I jj_J ^ I n i tfc I I t i )a t ^ I ^ I ^ | I i n ! • I ^ L* I At I t a l fc • t 1^ I t f t

CO Pw LO ** LO *>f ^i^ ^ l ^ ^^ ''^ 3 G* CO ^^ - CO * ^ 3••- 3 ^ |/* 1*1 CX »^ CC I"O 3 K tfl ^ f*> t+* ^* l/l ^- ^- fO^ F - CD **l K f*- {/y S 3 ^ 3 K ijO CT? S —• *\ I r'l r^ Z3

^T ^7 t ^ C 0 - fT*> ^^ Q CD ^D ^ •& -J^ | ^ CT V1^ ^U ^^

S - S K E K K - K O - S S t i C r S C il t

I I h i | t ^ LB » la . 1 . . it I jg ,

2TO

c

; uJ LLJ uJ uJ U J •*-• U J U J U J U J U J U J U J <ki LU U J U J U J I

• S 35 S K f\l 5T >O CD K f\j 3 ^t C S f^ 3" .JO CD '

) UJ ** > ^ UJ w.J ^ UJ *, • fc i n t ti i ^^ j |

' 'Vl ^t 0 CD t". ^l 3 JJ I S > 3 JO !

3O z

•3o

32

Page 37: LA-7595-M U MOL1D: A General Purpose Subroutine Package

i v« —* v4 •-• S ••• S ^ ) ^ 5 !S Si 3 S Cft S 5> 1 "S S S 2& "S S S S CD

j J u J d J o J U J u J a J J a i d J j J U J j J ' d J A l d j t i J A t U J k i J ^ t i J a J i L l J l i J y u J d J U J a J u J u i j J d J ^ J a J u J J a J a J ^ J JJ oi ui JJ UJr - r - - 9 f \ j ^ . r ^ i / - C S — O1 9 ,C — 9 9 C T 1 — > X - ~ ( C H s 0 9 X " ^ ' ' r > ^ C C » 1 ' l X m — C O 9 f 9 9 « - i — • « X " l X M ' \ l i r « l

I I I I • I I I • . • I I I • I I^»j ^»j J IL ^IJJ ^ j ^ ^^ ^ i ^ Jjw I JJJ ^^^ ^L^ U ^ ^^J ^LJ ^Lj IjhJ ^^^

t>i Hi LL' U.' U.' Ul U) U1 U> j ) ^ >J.i M,i W.i Lj. :uJ l^t iJl iul iJ^LJ>.U.t l j l iaLUlt iUJUJUJ^lU

« x x 3 i v - » - 3 N f \ J i r ( t — • - rv. cr x — — » - f V ) ' V ) ' i o r ' ' r ^ K f \ . f \ . - — c =rrvj«-:- — —• *n cc — 9 rv» f\j iv> o- x >

S C i K S K K G ? " - K S G C i ( S C 5 K S . ' ^ R . K C K E K S S ' ( S ' S ^ < S C : K C E S S K - K . S S ^ K S S ( S ( S 1 K ' ( S * 1

a*<r-o-o*tccco-&

i U.' UJ U-! U) t^.! '-A' iAf ! •

t 5 I It

: LJL t i l :.l In , i , UJ LL LJ aJ LJ kJ m UJ lu U-' UJ LJ U.' LJ Li-i IJJ 111 l.t l.i t i '

• » • » » • ftftftfttft

S B , 5 S C S E S G . S C . S S K S ( S S S C < S S . S C S E . S t S S S S S K K S £ ( S S S C S & . K S S i S . S K

^ ^ i jj & L L ^LJ) ^ L J JJ^^ ^ L J Lrf LLJ ^JJW JJ_« ^Jjv ^jjw ^ J ^ Lw* ^ i ^ ^J L^J ^ ^ L.^ LLJ LLJ L L . L L * ^ L J L L . ^ L J LLJ JV« L L ^ LLJ JJ^ ^^J ^ L J L L J ^_ ^JJM ^JJM IJJJB' ^ ^ ^ ^JJ^ ^ L J L ^

33

Page 38: LA-7595-M U MOL1D: A General Purpose Subroutine Package

rv joo—'^ ^ r-- r\i f\i »~ — ^ mI It S i l l

*• + + * + + + *• + + + + * * • * • * • + + *•

+ • • • + • • • § • • # » I 8 f l i t ! I fI ^ ^^ i ^ ^ ^ J * / ' 11 ^ 1 ^ J ^^^ ^^^ AJ it,) ^ ^ > ^ ^ u^l ^ J ^^^r o J \) ^ P^ *^ LO - ry ^ * 3C ^ * ^ ^ ** T

<^ '^O i O ( ^ iO L^ »O ^ ^ L O L^ ""^ ^> ZT *^ ^ ^ CD ^^ •& -J£^

• » > • » i f f •

UJ

ruru""

^,

s

3 (> r« •-* :r* r -^ I. C

» tC —>nin

h»CDS. o-

F~ D-* inin

en

in

o-IT^.~*

UJ

f\i

UJ

K>_4

S

» • i i i i • • •

oro

a.U.' Ci- a

uJU.U--UJUJUJUJUJUJiiJuJUJUJU-ii,uju:ujUi c?ar

f\jnifl

11 i t . t•H 11 \t i it • 11 T ^ * i t L ^ ^ ; ^^ ^ | 11 11 i ! • ^ : -t i ^ ^ If IB J

^^^ ^^ ^ ^ * ^f ^y ^y ^7 ^3 ^ ^ l ^ ^ ^ ^ ^ ^ 4 ^ ^ ^ ^ - ^ ^ ^ »

34

Page 39: LA-7595-M U MOL1D: A General Purpose Subroutine Package

Example 2: Reaction Diffusion Equations

A system of autocatalytic chemical reactions, described by Robertson,6 can be written in theform-

k lA —*- 3 , k1 = 0.04

B + C ^-— A + C , k2 = 10H

t 72B ±~- C + B , k3 = 3x10

The differenual equations describing the kinetics of this system are very stiff, and Robertson'smodel has become a standard test problem for stiff ODE met.iods. We modify the equations toinclude spatial variations and passive diffusion. Tne corresponding system of PDEs foT thesereactions is

u. = -k,u + k9vw + du , 0 < x < 1

, 2v t = k.u - kpvw - k-v + dv (6.1)

wt = k 3 v 2 + d wxx •

where the diffusion coeuicient d = 0.1 and u = [k], \ = [IB,], and w = [Q] denote the concentra-tions of the chemical components. We take initial conditions of the form

1 . 5 , x > 2

u(x,0) =0.5 , x < \

v(x,0) = 0

w(x,0) = 0

At the boundaries the solution is constrained to satisfy the zero flux conditions

U = v = W = 0 , X = 0,1X X X

The subroutines needed to solve this system could be written as:

SUBROUTINE PDE(UT,U,UX,UXX,FX,T,X,IX,NPDE)DIMENSION U(NPDE),UT(NPDE),UX(NPDE),UXX(NPDE),FX(NPDE)UT(1) = -0.04*U(l) + 1.0E4*U(2)*U(3)+0.1*UXX(l)UT(2) = 0.04*U(l)-1.0E4*U(2)*U(3)-3.0E7*U(2)**2+0.1*UXX(2)UT(3) = 3.0E7*U(2)**2+0.1*UXX(3)

35

Page 40: LA-7595-M U MOL1D: A General Purpose Subroutine Package

RETURNEND.SUBROUTINE BNDRY(T,UL)AL,BL)CL,UR(AR,BR,CR,NPDE)DIMENSION UR(NPDE),AR(NPDE),BR(NPDE))CR(NPDE)DIMENSION UL(NPDE),AL(NPDE),BL(NPDE),CL(NPDE)

DO 10 I = l.NPDEBL(I) = 1.0

10 BR(I) = 1.0

RETURNEND.

As is typical in diffusion reaction problems, the solution has a quick initial transient statefollowed by a smooth transition to the steady state solution.

The difficulties involved in the numerical solution of diffusion equations for chemical reac-tions lie in the temporal integration and not in the spatial approximation. Therefore we usefourth-order differences on a coarse grid of eight mesh points to reduce the computer time for thisexample. Other numerical experiments with MOLID indicate that the behavior of the package isthe same for finer meshes.

The system (6.1) was integrated from t = 0 to t = 103. The final time (t = 10s) falls well into theperiod when the solution is varying smoothly into steady state solution. The accuracy of the solu-tions was checked by using different integration methods to compute the conservation of massand the consistency of the numerical solutions. In both cases, the error was <0.01%, but com-puter times differed greatly (see Table I).

TABLE I

COMPUTER TIMES (IN SECONDS) FOR MOLIDSOLUTION OF EQ. (6.1) ON A CDC 6600

MJAC

123

4

5

Adams-Moulton GearJacobian

Approximation

Function iterationDiagonal approximationBanded approximation

bandwidth = .Banded approximate i

bandwidth = 9Banded approximation

bandwidth = 15

EPS=10"

b

c

b

32

66

10"

b

117109

LI

24

EPS=10" 10"

b b

65108 115

23 21

22 23

"Jacobian-method flag used by MOLID.

"Problem not completed after 2 min of computer time.

Incorrectly integrated solution.

36

Page 41: LA-7595-M U MOL1D: A General Purpose Subroutine Package

The computing time of the Adams-Bashford-Moulton method decreases when more stringenttemporal accuracy restrictions are imposed. When the error tolerance (EPS) is set to 10"4,corrector convergence is not achieved by any method and an error message is returned by theGEARB package. When the error tolerance parameters are set at 10", the diagonal approxima-tion methods deceive themselves and converge to the wrong solution. The overall efficiency isimproved by integrating the time variable with far more accuracy than that used in approx-imating the spatial derivatives. The computer time necessary for solving stiff equations can bedecreased by requiring an error tolerance stringent enough to prevent instability caused byvariable step-size selection in the GEARB package. Such instability is evidenced by a large os-cillation in the time step. The problem is described further in Ref. 6.

Example 3: Linearized Burger's Equation

Example 3 illustrates the advantage of using a coordinate transformation or mesh refinementto improve the accuracy in numerical solutions of the equation

u. = -u + 5u , 6 = 0.003L. X A A

(6.2)u (x ,0 ) = 2 + cos TT(2X - 1) , 0 < x < 1

with the boundary conditions

u ( 0 , t ) = u ( l , t ) = 1 .

The decay caused by the diffusion term is small and the solution behaves like the solution of theassociated hyperbolic problem (<5 = 0) for x < 1. Thus at t = 1/2 the solution to (6.2) is approx-imated by

2 + COS 2u(x - 1 ) , A < X < 1u ( x , t ) =

1 , 0 < x < 1

with a sharp boundary layer in a small neighborhood of x = 1.The unit interval was discretized into 64 evenly spaced mesh points and Eq. (6.2) was solved

by MOL1D with fourth-order spatial differences. Figure 3 shows the solution at t = 0 and t = 1/2and demonstrates how reflections destroy the solution near the right boundary. The accuracy ofthe solution can be improved by a coordinate transformation of the form z = \/x. The trans-formed equation is

U t = 2(v - z ) u z + 4<Sz2uzz . (6.3)

If we discretize evenly in z space, more points are crowded near the boundary in the original xspace. In Fig. 3b the reflections in the transformed equation disappear.

Browning et al.7 obtained similar results for Eq. (6.3) by refining the mesh in the original coor-dinate system. MOL1D also can solve Eq.(6.3) on a nonuniform grid in the original coordinate

37

Page 42: LA-7595-M U MOL1D: A General Purpose Subroutine Package

system. However, the package cannot calculate derivatives on an unequally spaced mesh.Therefore, the user must set MORD(I.J) = 0 for all I and J. Figure 3c shows that the reflectionsare reduced considerably when the mesh points Xj = [(j - 1)/63J"S, j = 1,2 G4 are used. Thederivatives were calculated with finite differences and the subroutine PDE listed below.

S U B S n i l T I N E P r ' E C u T , u 4 ! I X , U X X # F X , T , X M # I XD I M E N S I O N j T ( 6 5 ) , l i ( A 5 ) f H X ( 6 5 ) # U V X ( 6 5 ) f X M ( 6 * > )

J ( . C X M ( A 5 ) » C x Z ( « l > S ) , C x P ( ' S t > ) » C x X M f 6 S ) . C V X Z ( h S ) , COATA I N I T / P /

CC T M T T A l I 7 E T ^ E o F R T v A T I V F C O F F T C T E N T S O N THfc F I R S T

DO JC»H = X M f

CC FIRST OEPlVATlV E

CC SECOMD D F R I V A T T V E r

CXXMfCXXZf

IP) CONTTNIJE2P" T N I T s i

cC nEFlwE THE TIMF. HgRlVATIVES TN THE DIFFERLNTIAL

DO 3P> I«?

3P1 UT(u T tIJTf

cRETURN

38

Page 43: LA-7595-M U MOL1D: A General Purpose Subroutine Package

oen

T=0

o

o

13.00

Fig. 3a.MOLID solution of Eq. (6.2).

39

Page 44: LA-7595-M U MOL1D: A General Purpose Subroutine Package

1.00

Fig. 3b.MOLID solution of Eq. (6.3).

40

Page 45: LA-7595-M U MOL1D: A General Purpose Subroutine Package

o

< o

T=0

• .4

Fig. 3c.M0L1D solution of A\\ (6.2).

Example 4: Regularized Long-Wave Equation

The regularized long-wave (RLW) equation,

U t + uux

or, equivalently,

2 2

u

( 1 - S

txx

) u = - i ' x ' (6.4)

described by Benjamin et al.,8 models the unidirectional propagation of dispersive long waveswith weak nonlinear interactions. The RLW equation has the same formal justification as theKdV equation solved in the earlier MOL report.1

Equation (6.4), unlike the KdV, does not fit automatically into a form such as Eq. (2.1) thatcan be integrated by the package. The user must discretize the operator [1 - 52(32/9x2)J and solvea linear system on each time step using, say, the DECB and SOLB linear system solvers of thepackage.

We will consider the RLW equation with periodic conditions. Therefore, on every time step wemust solve an equation of the form

41

Page 46: LA-7595-M U MOL1D: A General Purpose Subroutine Package

w - 6 w = d ( x ) ,X X x '

w ( 0 ) = w ( i ) , v / ( 0 ) =

(6.5)

where w = u, and d = -l /2(u2)x .If we begin by replacing the spatial derivatives with second-order centered differences, we ob-

tain a linear system of the form

= D

where

P =Ax

-2 1 0 0 . . . 0 1

1 - 2 1 0 0

0 1 - 2 1

0 1 - 2 1

1 0 . . . 0 0 1 - 2

and

W =

W(0)

W(Ax)

, D = - T12

u 2

X2

uX

u 2

X

(0)

(AX)

(1-Ax)

(6.6)

W(l-Ax)

The matrix (I - <52P) is not banded, and the DECB and SOLB routines are written for bandedsystems. The difficulty can be overcome by using a periodic tridiagonal solver or a two-step solu-tion process. The two-step process begins by solving numerically the equation

z - = d ( x ) z(0) = z ( l ) = c (6.7)

42

Page 47: LA-7595-M U MOL1D: A General Purpose Subroutine Package

Here c is some arbitrary constant—an estimate of the correct boundary value. The discretizedapproximation of Eq. (6.7) can be solved with a banded solver; however, the solution will notnecessarily satisfy the boundary condition z'(0) = z'(l) for Eq. (6.5).

In compensating for the error in the derivatives, we note that the homogeneous problem

y - 62y" = 0 , y(0) = y ( l ) (6.8)

has the solution

y(x) = a exp (x/6) + b exp (-x/6)

where

a = b [1 - exp ( - 1 / 6 ) ] / (exp ( 1 / 6 ) - 1 ) ] = bY .

The combination of these last two solutions, w = y + z, will then satisfy Eq. (6.5) if

b = S [ z ' ( l ) - z ' ( 0 ) ] / [ Y ( l - exp ( 1 / 6 ) ) - (1 - fcxp ( - 1 / 6 ) ) ] .

Here z' is calculated by one sided finite differences from the numerical solution of (6.7).In that way, solution of the periodic problem (6.5) is reduced to the solution of a simpler

Dirichlet boundary value problem on each time step.The following program solves the periodic RLW equation when 8 = 0.05. Figure 4c shows that

the solution, initially u(x,0) = 0.1 + sin (2x), breaks into two solitons.

43

Page 48: LA-7595-M U MOL1D: A General Purpose Subroutine Package

M T f S T ( l N P u T , OUTPUT »TAPF3 = C)tJTPUT-, TAPE "59= 1TY)CC PSOGBAM tO SOlVf RLW EQUATION UT + U*U>f = U T X X * D F L * * ?

D I M E N S I O N n Z ( l £ M ) , X M U C n , * 0 R D f 3 ) , T u i n ( l t M )

CDELspi.C*5

C SET P A R A M E T E R S FOR

KEQN S -3KBC s 1K'ETH 3 ilFPS s t.F-«

f3' B 6T I N T B B . 0

TLAST s 1.0

c 0

c

cc

ccr

PI sDX sDELIEXPDDO 1XM(JF X UF.XI(

10 LIZ (I

SETMG sNPLTTDENUALXAXIXAXIUAXIUAXI

FORMCALL

CALL1 TLACALL

ACOS(-lt1.3/NPTS= l'./DfcL

sEXPfDELlm Ts1,NPT

^ s f i - Di s FXPtnT) = l./E^ s «,1 +

PLOTTING

-2s 1

s6Hf?l rt EOs VAL = 1*(1)=XM(1!«(?)eXM(N

R(J) = -1S(?> = 2,

Lll DECOMLUDFC

M O L l D f N PS T , M O J T , TEfflT

)

)S

E L I * X «X < I )S IN ( X

PARAME

d.)pTs> + D:

.0

P n S T T T I

DE,NPT<OUT»J7(

(D)

M(I)*?.1*F

TFRS

X

;iN FACTD«S

5#KEQM,KBr,SM# KMDL)

44

Page 49: LA-7595-M U MOL1D: A General Purpose Subroutine Package

SUBROUTINE P r > E ( l l T f U , U X , U f c X , F X f T , X M # I X , N P D E )r 0 M M n N / C 0 M l / N P T S , D X , E X P D , D F L , D E L T . l P ( b 2 ) . C (01 ^E MS TON U T ( S l ) ' J f 5 i ) « U X ( S n , i i x X ( S l ) , F x ( 5 1 ) > T S ( 5 2 ) f X M ( 5 l )

no 101 T = 1

TSf N P T S + 1 )sM,p iCT <?OLVF THF SYSTEM

CALL S 0 L R ( 5 2 » M P T S * 1 i 1 » 1 | C , T S , I P )rc r.nRRrcT FOR THE ERi?nR I N THE SOLUTION

no 2P» T = II l K H s T S f I ) + A * f y ( l ) + B * E X T ( T )TXsNPTS

END

T , X , I X , N P D E )C O M M n N / C n M l / N P r s , t i X , E X P D , DEL, D E L I , I P ( 5 2 ) , C CS2 , 5 ) , E X ( S 2 ) , EX I ( 5 2 )

CF = . 0 . 5 * 1 1 * * 2

C

END

45

Page 50: LA-7595-M U MOL1D: A General Purpose Subroutine Package

SUBROUTINEe O M M r ) N / C O M i / N p T S , O x , F X P D , D E U D F L T , IP C 5?) , C ( S? , 5 ) . fcX ( 5 ? 1 , FX IC 5 2 )

CC FOR THE" MATRIX T^ BE DFCOMPDSEO

MPIaMPtS+1HO 1« T * 1 , N P lC ( I # 1 ) a

cC INCORPORATE THE ROUNOARY

cC D E C O M P O S E THE M A T R T X I^TH TTS I 0 FACTORS

CALL D F C R ( 5 2 # N P i , i . l t C , I P , H R )

15 F O R M A T C " I E R 8 « » » I 5 )CALL E^ITEND

OUTPUT

THE INPUT PARAMETERS

NPDE = 1 NPTS = 41 KB- = 1KEON s «3 M£TH s H EPS s 1 .

MORD(1»1) s 0 M0RD(1.2) = a

TINT = 0. Tl AST « 1

TOUT s 0, 5,00tfpE-!*

****fe***** PLOTTING P A R A M E R E R S **********

RLW EQ PLOTSNPLT = 1

1 PLOTS PER F8AME MR or »2X AXIS LENGTH * lB.niJ INCHESU AXIS LENGTH = 10.«»a INCHES

X AXIS RANGES BETWEEN 0. ANDU(l) AXIS RANGES BETWEEN •!, i? tiP'E*0c1 AND

Page 51: LA-7595-M U MOL1D: A General Purpose Subroutine Package

0. DT« 0 .RtU EQ

ORDER* • STEPS' 0

2

i

/

1 1

ii

i

\

• • •

• . I 0.4 t.t

Fig. 4a.Graphic output from program MTEST.

1.0

Page 52: LA-7595-M U MOL1D: A General Purpose Subroutine Package

RIU EOT« 9.tX-*l BT- 3.9E-«2 OWES- 4 STEPS* 24 FRAME-

-1

#.2 . 4 4».t

. 4b.

1 1

1 1

1

-

y ^1

\

I1

1

i

I

I . *

Graphic output from program MTEST.

Page 53: LA-7595-M U MOL1D: A General Purpose Subroutine Package

RIU caT» !•••£••• 0T« 5.SE-42 OSDCB- 4 STEPS. 12

t . 4

Fig. 4c.Graphic output from program MTEST.

2

-

1

_

-

9

^_—

[

AI \

\ \\1

\1

y j

i

i

i

\

\

v .

I•

• s

l l . l .

1.0

Page 54: LA-7595-M U MOL1D: A General Purpose Subroutine Package

********** TIME s

1.1.71 .?.2 .2 .

OT = 0 ,TIME S T F ? 5 -C P J TIME = 1 ,

I X

25a5b739id111213la15lb1718192^2122232U2526272829Id3132333a3536373939

OP^ER = pifl Ut

3 . 1 7 E - 0 13 , « l f - C M5.3 .U.15E.GU/4839E-C^1« , b 3 E - P i la , 8 8 E - H l5 . 1 2 E - P 15 . 3 7 E - 0 15 , b l E « ? l5 t f l 5 E - 0 1b , 13P-PI1b , 3 4 F - d lb ,59E-P i l

,ba?5F-Pl l -•

7,8^E»t )) l -(

I. 7 8 E - 0 1 - 5 .

PI - 3 .' . 5 1 F - B 1 -2 .Pi

50

Page 55: LA-7595-M U MOL1D: A General Purpose Subroutine Package

* * *

OTT IMCPJ

I«I23ab6789

{ oI ^111213i a1516171819?J\21li?33/1fll

2526272B29T VI

313233z /i> 4353637383?43Ul

* * * * * * *

= 3 , 9 «F STF9S

TIME B

2a791111•>

c2223,3,3,3,«,

M i

< * ,

5,5,c5,5,

b ,6 .<>.7' «

7 .7 .B

8.«.«.

<\9 .9,

;<UF.,B9F. ? 2 F, 7 b E, 2 2 F, tibl. T I E. 9 S F

, 6 8 E .. 9 3 C, 1 7F., a i E ., 6 b F .

, l b E ., 3 9 F .

t i p ,

,^8E., 12E-, 37F..

i if

, h 11 <, 8 5 E -, 13E-, 3 U E .,S9F..,ftjr«

* 7 t1 *> ft •,32E-,5bF-,BJE.

rx t c

TI

• H2-r^2-C2-02-01- P I

.311• M J• Ml- P I

-^!l• f 1»' 1.0 J-01a Of 1P /> 1

. 0 1• 0 1• CM

f% «

» t" I.^1.01.01,aj- ^ l

(% ii W J

• 0 1.o i l. c * l

29E-P1,5<IE-«17BE-P11

.02E-SI127E-F151F-7feF.-

>*\

^E s 5.rf^3

2'J UT F V A L77P» S F C 1 M D S

^ /« i vur*ni3

6.32aflF-P?1 ,^lffl3F«t»l1 e 39i^E-^I1,77aTF"^ l?. 1 SA9E-CMP . ^ a ^ l E - ^ lP . ^P^ IF -P l3,30«^«F-O13» ft 7Ci 1 6 • " 1atn3.flpiE«C'la,35^6F»f1u ,^2n iE»^ la,B5?9F-ni«• °5«aE-Pi 1S.f»3A3F-niS t i 9 ? 0 E - f l«^.72P9F.ni7.1 3*,9F-Pil

1 »^c?2f . tiT^1 .ifjQSE + fa1,32«7F*^^1.23T6F-«^1

• 7 , " 6 ? l r " P l-f», ?«=;iF-?"l-6.67S2F-P1-5.53i 'dF-^l•a,fl3i'6F*Pll• at«i3i*aE"Pl

• 1 ^ | n ^ «k F" >V 1

•d,^8?2E*^1-^.78A9F-P«1-3.«794F»PI1•5 .15«6F»1|•>?, nHpftF-fl•?."art3E-pil

- l ,fe9niaF-P!i-1.30R3E-r^l-9.23"tlF-C»2-5,3as5F-n2•1.«173F»B2

At"P1 * * * * * * * * * *

f» ! ItU A T I Q M S s 3 T

LJ T c 1 >" • 5 , • 3 3 c t — ' 1 C

-c '.t8CbF-M2• l ,«98aF.Mi-?.(»7^aF.ffl• P. fcq l lF .m-3.1952F-«1-397?68F-^1-«.?233F-^1•«.«»68oF-t»l• 3 , w<|n ft mRl-5.35«7E-01-5.6p78F-Cl•5.9fl9iF.f l i-^#7?29F-fJ|l-8.353BF-PI1• 1 . !6^2Ff«0-1.76^5F*e«•?.6t72F+»^»3.fl5a?Ef00

M» B5<-bt + M(j- U 9 2 7 B F + P>0

a, 39<>gF + Pt0a .23l9FtP»a1 I ^ "T n C f l vA1 • •* 5 ' 8 F + (* urt' . < ' 938F + li(^?. 1 159F + 0Ml.«7iy8E*«a1 . 3l}9aF+PlfeJ<> .9 i l l F . (M' . ' JR^EWCI6.32«3F«015.3923F.P1«.69l7F-Mi/ f # M rff a-B ^ — rfk dy . 1 1a5F-f l3.57faaF-^l3.^a?9E.f1?.5009F.l*lt .9a7uF-P»l1.3B37E.PI1s . t2«2F-t^2?.3667F-PI2

51

Page 56: LA-7595-M U MOL1D: A General Purpose Subroutine Package

********** TJM£ s +H0 **********

DT « 5.H30E-0?TIME STEPS * 1?CPJ TIME B ,610

It2345b7891011121314151b1718192021

232425262728293a31323334353637363940

X

0 .2.44E-«,88E»7.32E-9 .76F-1.22E-1.46E-1 . 7 1 E -1.95E-2.23E.2.44E-2.68E-2.93F.3.17E-3 , « 1 E .3.66E.3.93F.

0202020201010101

•01•01010101010101

5.12E.5.37E.5.61F-5.85E.6 . 1 n9E>

01010101

7.32E.7,5bF.

0 1»"1

9.27E.9.51E.

Ml-iL OPfjFH s aJT FVALI-'ATIONS =SrCHNDS

» ( h UT(1)

-02

18

?.59(»8F

• 01-01•03>01

• - 0 1

•7.4240F-P11.1571F-01

8,?9E-01 -

0101

-01-01- 0 2-01mn\-01-01

,6013E-01,38R8E-fil, !6f l2F-01

•03

-01 •2.1aS3E.'HI . 2 .5 t30F ,

•01 -3.2757E.• 01 -3

,0 1,01,01

6.173IF-PH

t T H E STEPSTOTAL (JT EVALUATTOTAL CPJ TIME r ? .71

STFPAVERAGE METHOD s 3.3P9

52

Page 57: LA-7595-M U MOL1D: A General Purpose Subroutine Package

VII. USER NOTES

Modifications to the MOLlD package should be made with extreme caution and with an un-derstanding of the effect of such changes on the rest of the code. Most user modifications will in-volve only the driven subroutine M0L1D. Several parameters in the calling sequence for theGEARB package set in MOLlD were chosen on the basis of test results from the solution of alarge class of PDEs. The optimal GEARB parameters for the specific problem being integratedmay differ from their default values. Examples of such changes are a modification of the initialtime-step-size selector or a change in the relative error test for the time integrator. These changesare encouraged if they are appropriate. On the other hand, changes to internal subroutines suchas FFT842, STIFFB, DECB, SOLB, COSET, and PSETB are strongly discouraged.

When setting up a problem to be solved by the package, use the Tollowing guiding principles toreduce the debugging time:

1) Begin with no more than 10 to 20 spatial mesh points. That number usually is sufficient fora check on the correct initialization of the problem.

2) Obtain and study the dump (KMOL = -1). The dump will print out the solution and itstime and space derivatives, which should be checked to determine the time scale of theproblem. If they don't look right, check the initialization and subroutine PDE.

3) Do not overspecify or underspecify the number of boundary conditions. Overspecificationusually results in nonsmooth solitions with mesh oscillations near the boundary. Un-derspecification does not ensure uniqueness of the solution, and in steady state calculationsthe numerical solution tends to wander. In either case the solution will not be accurate andone should be skeptical even of its qualitative behavior.

4) Use fourth- and sixth-order centered finite difference methods in preference to second-order centered or uncentered finite difference methods (see Ref. 1). No matter what dif-ferences you use, take care to ensure that the discrete model retains as many of the crucialproperties of the original differential equation as possible. For example, use subroutineFUNC to define the flux functions for conservation laws in divergence form. For other"special" equations with terms such as h(u)xx or utx the line form of subroutine PDE maybe required if special difference approximations are to be included.

5) Consider the stiffness of the discrete space-continuous time ODEs when choosing a time in-tegration method. If the problem is not stiff, the best choice is the Adams-Bashford-Moulton method with function iteration (METH = 11). If you have no knowledge of theequations' stiffness, try METH = 11 and examine the average t:me-step-size used. If thetime steps are much smaller than the solution's behavior would seem to require, the equa-tions are probably stiff. In that case, try the implicit Gear backward difference methods(METH = 23, 24, or 25) and compare the running time with that of the nonstiff solution.

6) If no plotting is to be done (MOUT < 2), provide a dummy subroutine SOLPLT to blockthe loading of the plotting routines, thereby reducing considerably the size of the ex-ecutable program.

7) Modify the work-space allocations as needed. The work space allocated for the package isinitialized in COMMON blocks ir; subroutine MOLlD. The largest systems that can besolved with the default values are NPDE < 10 and NPDE*NPTS < 512.

VIII. INSTALLATION TIPS

The machine-dependent parameters for the relative roundoff error, RNDOFF and UROUND,are initialized in data statements in subroutines MOLlD, COMPAR, and DRIVEB. The output

53

Page 58: LA-7595-M U MOL1D: A General Purpose Subroutine Package

is printed on tape IW or LOUT, alsc initialized in those three subroutines. The default outputfile is tape 3.

The package calls subroutine SECOND(T), which returns the CPU time (in seconds) used byt'.ie program since execution began. If this routine is not available, provide either its equivalentor a dummy routine.

Three versions of the plotting subroutine SOLPLT are provided with the package: a CalCompversion,2 a Tektronix Plot-10 version,8 and a dummy routine to be used if neither of theseplotting systems is available. One of the three routines must be selected and loaded with thepackage.

The transmission line (band) rate for the Tektronix version of SOLPLT has the default valueof LSPEED = 960 characters per second. That value can be changed in a data statement in sub-routine SOLPLT.

IX. AVAILABILITY

The package is available from

Los Alamos Computer LibraryMail Stop 266Los Alamos Scientific LaboratoryLos Alamos, NM 87545.

A test program also is provided for checking most of the options.M0L1D is an experimental package, and comments or suggestions for improvements are en-

couraged. These should be mailed to

Dr. James M. HymanGroup T-7, MS-233Los Alamos Scientific LaboratoryLos Alamos, NM 87545.

Development work continues on a library of routines for the solution of PDEs. These routines aredesigned to support the development of production codes in one, two, and three space dimen-sions. Please contact the author if you wish to be on the mailing list for this development work.

ACKNOWLEDGMENTS

I wish to thank Professor Peter Lax and Dr. Don Durack for their constructive criticism andadvice. I wrote the MOL1D package between 1976 and 1978 at the computing laboratories of theCourant Institute of Mathematical Science under Department of Energy Contract No. E(ll-l)-3077 and at th3 Los Alamos Scientific Laboratory under Department of Energy Contract No. W-7405-ENG.36.

54

Page 59: LA-7595-M U MOL1D: A General Purpose Subroutine Package

REFERENCES

1. J. M. Hyman, "The Method of Lines Solution of Partial Differential Equations," Courant In-stitute of Mathematical Sciences, Mathematici and Computing Laboratory report COO-3077-139 (1976).

2. Programming the CalComp Model 1675 COM System (California Computer Products, Inc.,Anaheim, California, 1972).

3. Tektronix Plot-10 User's Manual (Tektronix, Inc., Beaverton, Oregon, 1976).

4. J. M. Hyman, "The Construction of Numerical Methods to Solve the Eulerian Equations ofGas Dynamics," Los Alamos Scientific Laboratory report in preparation.

5. H. H. Robertson, "The Solution of a Set of Reaction Rate Equations," in Numerical Analysis:An Introduction, J. Walsh, Ed. (Thompson Book Co., Washington, D. C, 1966), pp. 178-182.

6. A. C. Hindmarsh, "GEARB: Solution of Ordinary Differential Equations Having BandedJacobian," Lawrence Livermore Laboratory report UCID-30059, Rev. 1 (1975).

7. G. Browning, H.-O. Kreiss, and J. Oliger, "Mesh Refinement," Mathematics of Computation27, 29-39 (1973).

8. T. B. Benjamin, J. L. Bona, and J. J. Mahony, "Model Equations for Long Waves in Non-linear Dispersive Systems," Phil. Trans. R. Soc. London A272, 47-78 (1972).

55

Page 60: LA-7595-M U MOL1D: A General Purpose Subroutine Package

APPENDIX: SUBROUTINE LISTING

M0L1D

CKINP

SOLPRT

SOLPLT

SOLDMP

DIFFUN

BEVAL

UDER

FDER

DRIVEB*

INTERP*

STIFFB*

COSET*

PSETB*

DECB*

SOLB*

PDB*

FFT842

FTFILT

COMPAR

PDE

FUNC

BNDRY

SOLPLT (Tektronix Plot-10)

SOLPLT (CalComp)

•Included in the Hindmarsh GEARB package (see Ref. 6).

56

Page 61: LA-7595-M U MOL1D: A General Purpose Subroutine Package

APPENDIX

iUBROUTINE LISTING

SUBROUTINE MOLID

M O L 1 D ( N S » D E , N P T S , K E S N , K B C , M E T H , E P S . M O R D , T I N T , T L A S T . M O j T ,2 I T O U T , I J Z , X M , K M O L )J Ca C M E T H O D OF L I M E S I N T E G R A T 1 0 * P A C K A G E F OR S Y S T F M S OF P D E R5 C UT « G ( X , T , U , U X , U X X , F X ) , F s F ( X , T , J , U X , U * X )6 C7 C T H E A R G U M E N T S Of M O L l D D E S C R I B E D H O w T H E S Y S T E M OF N P D E8 C P A R T I A L D I F F E R E N T I A L E Q U A T I O N S ARE TO 8E S O L V E D , T H F I N I T I A L<» C C O N D I T I O N S F O R T H E P D E E N T E R T H E R O U T I N E I N A N A R R A Y U 7

10 C T H E S O L J T I O N ON A M E S H XM O F N » T S P O I N T S , T H E U S E R M U S T11 C T H E K I N D OF B O U N D A R Y C O N D I T I O N S ( K B C ) F Q 3 TriE E Q U A T I O N AMD H A S12 C T H E O P T I O N OF D E S C R I B I N G THE TVPE OF E Q U A T I O N ( K F Q N ) T H A T IS13 C T O BE I N T E G R A T E D ( E . G . H V » E R B O L I C O R P A R A B O L I C . L I N E A R OR1U C N O N L I N E A R ) . T H E MOL A P P R O X I M A T I O N T O Bt J S E D IS D E T E R M I N E D RY T^15 C T E M P O R A L I N T E G R A T I O N M E T H O D ( M E T H ) , T H E E R R O R P ER TJM^ S T E P ( E P S )16 C A N D T H E S P A T I A L M £ T H O D O R D F R ( M Q R D ) , T H E U S E R H A S THfc O P T I O N Dp|7 C A L L O W I N G T H E P A C K A G E TO C H O O S E A T I M E I N T E G R A T I O N M E T H O D S * S E D ON18 C T H E R E S J L T S OF P R E V I O U S N j M E R I C A L T E S T I N G , THE E Q U A T I O N S ARF19 C I N T E G R A T E D F R O * THF I M T I A L T I M E T I N T TO T H E F I N A L T I M E U A S T2 0 C W I T H T H E O U T P U T tj U 5 E * P U E S C R I B E O TIMF.S IN T H E A R R A Y T O . J T . '• *l21 C C H A R A C T E R OF THE O J T P U T ( M O u T ) MAY BE ElT r tEK P R I N T F D OR G R A F H J C S ,2 2 C THE P R I N T E D O U T P U T IS W R I T T E N ON T A P E J A M D T H E G ^ ' P H j r s uSfc2 5 C S T A N D A R D C A L C D M p OR P L O T - j P T E K T R O N I X P L O T T I N G?.U C

26 C27 C W A R N I N G - T H I S IS AN E X P E R I M E N T A L P A C K A G E ANp NO G U A R A N T E E S ARfc2 8 C M A D E TO T H E V A L I D I T Y OF T H E C O M P U T E D S O L U T I O N S , MO|_1D IS2 9 C C U R R E N T L Y U N D E R G O I N G A M A J O R R E V I S I O N A N D T H E R E V I S E D V E R S I O N3? C W I L L BE A V A I U B L F I N L A T E 1 9 7 9 . T H I S IS R E V . N O , 1 O C T . 1 9 7 PJl C A D D I T I O N A L D O C U M E N T A T I O N is A V A I L A B L E IN3 2 C T H E N Y U R E P O R T - T H E M E T H O D OF L I N E S S O L U T I O N C1F P A R T I A L3 3 C D I F F E R E N T I A L E 0 U * T I O * S , O C T O B E R , 1 9 7 6 B Y J . M , H Y M A N3 1 C55 C F O R FJP.THER I N F O R M A T I O N C O N T A C T S56 C J A M E S M, H Y M A N37 C G R O U P T - 7 , M A I L S T O P 2 5 338 C L O S A L A M O S S C I E N T I F I C L A B O R A T O P Y39 C • L O S A L A M O S , N E W M E X I C O 8 7 5 a 5«J3 C

a2 cU 3 C * * » T H E M O L I D P A C K A G E IS C O * P O S F D OF T W E N T Y F O R T R A N S U B R O U T I N E SOt C I N C L U D I N G A M O D I F I E D V E R S I O N OF T H E G E A R B O D E P A C K A G E ,« 5 C T H E S U B R O U T I N E S I».' M O L I D H A V E T H E F O L L O W I N G N A M E S A N D P E R F O R M<it> C T H E I N D I C A T E D T A S K S ,U7 C M O L i n D R I V E R R D U T I N F F OR T H E P A C K A G E , IT A L L O C A T E S S T O R A G E ,U S C P E R F O R M S I N I T H L I Z A T I O N T A S K S A N D M O N I T O R S T H E P R O b -a 9 C R E S S OF THE T I M E I N T E G R A T I O N ,5 " C C K I N P C H E C K S T H E V A L I D I T Y OF THF I N P J T P A R A M E T E R S51 C S O L P R T P R I M T S T H E S O L J T I O N AT T H F U S F R P R E S C R I B E ^ T I M E S5 ? C $ O L P L T P L O T S T H E S O L U T I O N AT T H E U S E R P R E S C R I B E D T I M E S5 3 C S O L D M P P R I N T S A L L R E L E V A N T S P A C E D E R I V A T I V E S OF U A N D E R R O R5« C E S T I M A T E S FOR T H E T F M P O » A L i N T E G R i T I O N , U S F D F O ^55 C DEBUGGING AND IF 1 FAlLL'Rf FLAG IS RETURNED FROM56 C GEARB,57 C DIFFUN DEFINES THE TIME DERIVATIVES OF U FOR INTEGRATION58 C PACKAGE GEARB.59 C BEVAL EVALUATES THE BOUNDARY CONDITIONS AND INCORPORATES60 C THEM INTO THE EQUATION PY CUBIC EXTRAPOLATION TO

57

Page 62: LA-7595-M U MOL1D: A General Purpose Subroutine Package

61 C F 1 C T I T I 0 J S P O I N T S O U T S I D E TH£ R E & I O N OF I N T E G R A T I O N ,62 C J D E " E V A L U A T E S THE D E R I V A T I V E S OF J W I T H R E S P C T TO X,b3 C F D E K E V A L U A T E S THE D E R I V A T I V E S OF F W I T H R E S P E C T TO X,bu C F F T 8 U 2 A FA S T F 0 J P I E 9 T R A N S F O R M R O U T I N E65 C F T F I L T F I L T J R S H I G H M O O E S OF TH E D I S C R E T E F O U R I E R T R A N S F O R M ,6b C C O M P A R THE U S E " M A Y CALL T H I S R O U T I N E TO C O M P U T E THF67 C A C C U R A C Y IN C » t C J l A T I O N S * H E N AN F X A C T S O L U T I O N IS66 C A V A I L A B L E .69 C D R I V E R D R I V E R R O U T I N E F O R T H E G E A R B I N T E G R A T I O N P A C K A G E ,7P C O T H E R R O U T I N E S IN G E A R A I N C L U D E I ^ T E R P , S T J F F B , C O S E T ,71 C P S E T B , D E C B , S O L B , AND P D B ,72 C7^ C THE TE'" > n i'*L I N T E G R A T I O N J S E S A, C . H I N D M A R S ^ S O D E P A C K A G ETu C G E A R R s S O L U T I O N O r Q D E S H A V I N G B A N D E D J A C C B I A N7 5 C U , O F £ A L I F , S E ° O R T U C T D * J 0 0 5 9 , M A R C H 1 9 7 57 6 C7 7 C * * » I'M P U T p A P A " E T £ R g7fl C7 9 C T H E A R f i J ^ E N T S O F M O L 1 3 A R E D F F I N E D A S F o L L n « S «8 ? Cft\ C M O l i N.\JMftt3 OF PtR^UL MFFEBf ^T14,V82 C8J C N P T S = NjMfjEq pF S P J T l A L M E S H P O I N T S

85 C * E Q N s D E S C R I P T O R OF THF K I N O OF E Q U A T I O N T H A T Is TO BE86 C S O L V E D . THIS V A R I A B L E IS U S F D TO P I C K T H E I N I T I A L67 C T ] M E S T E P AND T H E O D E M £ T H O ^ IF T H E D E F A U L T O P T I O NB« C IS C H O S E N , « E 3 N IS G R E A T E R T H A N Z E R O IF TH E69 C E a U A T I D N IS L I N E A R AND L E S S T H A N Z F R O O T H E R W I S E ,9M C IT H A S THE Fni.1 O W I N G V A L U E S A N D M E A M N G S *

91 C + • 1 H Y P E R H P L I C E Q J A T I O N9 2 C + • ? P A R A B O L I C E 3 U A T I O N93 C • • S E 3 U A T I C N IN C O N S E R V A T I O N F 0 « M A N D / O R S O L U T I O N9<J C H A S D I S C O N T I N J I T I E S95 C ti N O N S T A M j A R n E Q U A T I O N T Y P E9e> C97 C <BC s D E S C R I P T O R DF T H E K I N D OF B O U N D A R Y C O N D I T I O N S F O R98 C THE E 3 J A T I 0 N a l T H THE FOLLOriING V A L J E S AND M E A N 1 N G S «99 c 0 USER SUPPLIES BOUNDARY CONDITIONS IN SUBROUTINElac c pr>Elei C 1 P E R I O D I C B O U N D A R Y C O N D I T I O N S132 C 2 B O U N D A R Y C O N D I T I O N S OF THE F O R M A * U • B*:JX = C103 C IF B ,NE, 0 T H E N A, P AN D C MAY BE F U N C T I O N S101 C OF T AN D J, O T H E R W I S E A AND C MAY BF PJN!1H5 C DF T ON L Y , A L S O I N C L U D E D I N T H I S O P T I O N A«E106 C B D J N J A R Y CONDITION'S OFF INEO BY AN O D E .107 C F R E E B O U N T I E S , AND B O U N D A R Y C O N D I T I O N SIBP C P R E S C R I B E D ,109 C J B O J N D A R Y C O N D I T I O N S AS IN K0C = 2 E X C E P T T H A TIjf C SO " E B O U N D A R Y C O N D I T I O N S A R E D E F I N E D By A PD E11) C R E Q U I R I N G s p A T I A L D E R I V A T I V E S NOT U S E D TN THE11 2 C " i f ! " D E . ALL DERI V A . T I V E S A R E E V A L U A T E ATi n c B D J N D A R Y IN T H I S O P T I O N E L I M I N A T I N G T H E N E E D T O S E TIla c M O R N T O A M O N Z E R O V A L U E F O B T H O S E D E R I V A T I O N S115 c N E E D E D O N L Y A T T H E B O U N D A R Y ,life C117 C METH : THE ODE METHOD FLAG USED TO SET THE CALL I N G ARGU-H P C MENTS I N G E A R S , I F E H H E R OF THE DEFAULT OPTIONS119 C IS USED, MET" RtTjRNS EQUAL TO THE METHOD S E L E C T E D ,123 C T H I S M ETHOD IS CHOSEN BY THE VALUES OF KEQN, KBC,

58

Page 63: LA-7595-M U MOL1D: A General Purpose Subroutine Package

121 C12? C123 C12« C125 C126 C12? C12S C129 C130 C131 C132 C133 C13" C135 C136 C137 C13P C13"? C1«P C101 Clo? C103 Cloo c105 C

NE»Tj AND M P D E . «£TH HAS T*C DECIMAL D I G I T S .MODt AND MJAC (HETM s 10*MOOf • M J A C ) . MODE ISTHE ODE METHOD INDICATOR HlTH THE FOLLOWING VALUFS

106

108109150151152153150!55 C156 C15?15615916?16116? C163 C160 C165 C166 C167 C168 C169 C170 C171 C172 C173 C170 C175 C176 C177 C176 C179 C190 C

MODE « 0 MOLlD SELECTS O N F OF TH£ FOLLOWING METHODSMODE • 1 A | ) A M S » B A S H F O R D - M O U L T O N METHODSMODE * 2 GEAR STIFFLY STABLE BACKWARD DIFFERENCE METHODS

MJ*C IS THE CORRECTOR INTERATION METHODINDICATOR, WITH THE FOLLOWING VALUES »ND M E A N I N G S *

MJAC = 0 MOLlD SELECTS ONE OF THEMJAC = 1 JACOBIAN APPROXIMATED By

(FUNCTION ITERATION)MJAC = ? JACOPIAN APPROXIMATED BYMJAC = 3 JACOBIAN APPROXIMATED BY

WJDTH a MPDE (FOP STIFFMJAC s 0 JACOBIAN APPROXIMATED BY

BAND «IDTH = 3*N pDF (FORMJAC = 5 JACOBIAN A P P R 0 X I M A T £ O B V

BAND WIDTH B 5*NPDF (FOR

FOLLO«.NG METHODS**'THE IDENTITY MATRIX

A DIAGONAL MATRIXA BANDED MATRIX, BANDE Q U A T I O N S )

A BANDED MATRIX,STIFF £ 3 U A T i n N S )

A BANDED MATRIX,STIFF E Q U A T I O N S )

EPS = TIMt INTEGRATOR LOCAL ERROR *' .ERANCF P*RAM£TERE S T I M A T F S OF THE TIME STEP E«:'OR AT THF SPATIALGRID OOJNTS FOR ALL THE PDES iS KEPT LESS THAN EPSIN T H E R O O T - M E A N . S O J A R E (RMS) NORM, EPS IS ALSOUSED TO CHOOSE THE INITIAL STEP,

MOUT = AN IN»UT PASAMETFR TO INDICATE THE CHARACTER OF THEO j T P U T . IF MOJT IS LESS THAN ZFRO THEN T H E SOLUTIONIS PRINTED AT EACH TIME STEP FOR IABS ( M O U T ) S T E P S .T OUT(I) RETURNS THE TIM£ OF THE I»TH TIM£ STEP,IF MOjT IS GREATER THAN EQUAL TO ZERO, IT HASTHE FOLLOWING VAL'JES AND M E A N I N G S *B NO OjiBUT IS PRINTED OR PLOTTED1 T H E SOLUTION IS POINTED AT THE P R E S E L E C T E D TIMES

IN THE ASfJAY TOUT, T«E PRINTING IS I* SJB-ROUTINE SOLPRT ON TAPE 3, THIS S U B R O U T I N E MAY BEREWRITTEN 3* THF USER TO CHANGE THE OUTPJT FORMAT,

? T*F SOLUTION AND ITS TIME DERIvATIVF ARE PRINTEDAT THF TIMES TN TOUT,

3 THE SOLUTION 15 PRINTED AND PLOTTED AT THE TIM£5IN TOUT, THE PLOTTING IS IN S U B R O U T I N E S O L P L T ,AN ALTERNATIVE SJ^ROuTINE MAY BE S U P P L I E D BY THfcUSE" IF HE WISHES TO PROVIDE HIS P*N GRAPHICSR O U T I N E ,

0 THE TIME DERIVATIVE OF THE SOLUTION IS P R I N T E DAND THE SOLUTION IS BOTH PRINTED AND P L O T T E D ATTMf TIMES IN TOUT,

5 THE SOLUTION IS PLOTTED AT THE TIMES IN TOUT,6 THE SOLUTION IS PLOTTED ROTATED 90 DtGRFES O N 16MM

F i t " TO BF VIF.rfFD AS A M Q V I E , AT THE COURANTCOMPUTER CENTFR THIS OPTION IS AVAILABLE ONLYIF F.ITHER THE FILMF OR MovIEF LIBRARY ROJTINESA«?F LOADED,

(SEf. NOTE. O N T H E GRAPHICS OPTION FOLLOWING THF. CALLINGStOUNCF D E S C R I P T I O N . )

59

Page 64: LA-7595-M U MOL1D: A General Purpose Subroutine Package

181 C18? C183 Clau c185 C186 C187 C186 C189 C

CCC

19J C

TOUT »

191

190195196 C197 C198 C199 C200201 C202 C203 C

Ccccc

2062072062C9 C210211 C21? C213 C

CC

21b C217 C218 C219 C22B C221Sid C223 C22U C225 C226 C227 C22B C229 C230 C231 C232 C233 C23U C235 C236 C237 C23P C?39 C

MORD *

TINT

TLAST

UZ =

AN I N P U T A R R A Y OF THE T I M E S T H A T THE S O L U T I O N ISTO BE P O I N T E D OR P L O T T E D , IF MOUT , G T , 0, THES O L U T I O N IS I N T E R P O L A T E D AT T H E S E T I M E S F R O M ITSV A L U E S AT THE A C T J A L I N T E G R A T I O N T I M E S B* T A Y L O R3 E * I E S . IP M O U T , L T . 0 T H E N THE F I R S T I A 8 S f M O U T )P R I N T O U T T I M E S ARE R E T U R N E D IN T O U T ,

A M A T R I X D I M E N S I O N E D M O R D ( N P D E . J ) I N D I C A T I N G W H I C HDERIVATIVES OF THE PDE VARIABLES APE NEEDED ANDNHAT TVPF- OF APPROXIMATION IS TO BE USED,

THE DERIVATIVE CALCULATIONS DONE BY THE PACKAGE ALLASSUME AN EQUALLY SPACE" MESH, IF AN UNEQUALLY1 SPACEDMESH IS USED THE SET MORDC1.J)«0 OR A TERMINAL ERRORMESSAGE WILL RESULT.MORD(1,1)» MORDCII?) AND M0RD(I,3) REFER TOU X C I ) , L)XX(I) AND F x t l ) R E S P E C T I V E L Y , IF THED E R I V A T I V E S ARE N E E D ' D ONLV AT THE B O U N D A R Y SET K B C s 3R A T H E R T H A N S E T T I N G M O R D YO A NON Z E R O V A L U E , M O R D HASTHE F O L L O W I N G P O S S I B L E V A L U E S AMD M E A N I N G S »6 S I X T H O R D F R C F M T E R E D D I F F E R E N C E SU F O j R T H O R D E R C E N T E R E D DlFFERfiNCFS2 S E C O N D ni?DER C E N T E R E D D I F F E R E N C E S1 F A S T FOURJEP- T R A N S F O R " A P P R O X I MA T TON0 D E R I V A T I V E IS NtU TO BE C A L C U L A T E D By THE P A C K A G E ,

IT MAV S T I L L BE C A L C U L A T E D BY THE USE R INS U B R O U T I N E P D F , NOTE THAT NO D E R I V A T I V E S CANBF C A L C U L A T E D BY THE P A C K A G E ON AN U N F Q U A L L *S P A C E D M E S H ,

»1 F A S T F O U R I E R T R A N S F O R M W I T H L I N E A R F I L T E R I N GOF THE HIGHER MODES.

•G SECOND ORDE" DIFFERENCES ORIENTED INTO THEC H A C T E R I S T T . C S OF UT r FX, THF C E N T E R E DD I F F E R E N C E S ARE USED if THE C H A R A C T E R I S T I C SARE P E R P E N D I C U L A R TO THE X AXIS,

-a F O J R T H DRPER C E N T F R E D D I F F E R E N C E S ORLINSYMMETRIC THIRD ORDER D I F F E R E N C E S O R I F N T E DINTO THE C H A R A C T E R I S T I C S OF UT = fx,

THE TNITIAL VALUE OF THE INDEPENDENT VARIABLE T

THF F I N A L I N T E G R A T I O N T I ^ E W H E N C O N T R O L IS TO BER E T U R N E D TO THE C A L L I N G P R O G R A M , T L A S T M J S T BEG R f A T E R T H A N OR E 3 U A L TO T I N T , IF THE ODEI N T E G R C A T O R F A I L S TO C O N V E R G E D U R I N G I N T E G R A T I O N

R E T U R N S E Q U A L TO THE LAST I N T E G R A T I O N T I M E ,

KMOL =

A MATRIX DIMENSIONED UZ(NPDE, NPT5) OF THEVARIABLE U, ON INPjT U2(I,J) CONTAINS THE VALUEOF I-TH PDE COMPONENT AT THt J-TH MESH POINT AT TI«ET s T I N T , ON O U T P U T * UZ R E T U R N S T H E V A L U E OF THES O L U T I O N AT TIME B T L A S T ,

AN ARRAY OF L E N G T H N P T S C O N T A I N I N G THE M E S H O 0 l N T S oTHE M E S H P O I N T S M J S T BF E v E N L V S P A C E DIF T H E D E R I V A T l V F S ARE C A L C U L A T E D BY THf P A C K A G E ,K M N E E D NOT RE E V E N L Y S P A C E D IF M0 R D ( I » J ) s ( " FOR ALL I,JTHE D E R I V A T I V E S CAN T H E N BE C O M P U T E D IN S U B R O U T I N EPDE BY THE USE R

AN I N D I C A T O R FLAG U S E D FDR B O T H I N P J T AMI O J T P U T ,

60

Page 65: LA-7595-M U MOL1D: A General Purpose Subroutine Package

2412422432442SS24624724624925025125225325425525625725S25926326126226526426526626726826"2782712722732742752762772782792802612622632642852862672882892902912922932942952962972982993013

CCccccccccccccccccccccccccccccccccccccccccccc

cccccccccccr

cc

GN INPUT IT HAS THE FOLLOWING VALUES AND MEANINGS*K.IT.0 C*LLS A DEBUGGING DUMP o N T H E FIRST AND LAST

TI«E STEP, IN OEBBi/GGING DUMI» THE SOLUTION, ALLHELEVANT SPATIAL AND TEMPORAL DERIVATIVESANP ERROR ESTIMATES *SE PRIKTfcD,

K « P NO DUMPS ARE CALLED UNLESS AN ERROR TS

ON O U T P U T , KMQL0 IF THE I N T E G R A T I O N wAS S U C C E S S F U LK . L T . 0 THE I N T E G R A T I O N WAS H A L T E D A F T E R E N C O U N T E R I N G

A F A T A L E R R O R , A M E S S A G E IS P R I N T E D A N DK R E T U R N S W I T H TH£ F O L L O W I N G V A L U E S ANDM E A N I N G S *

-1 I N T E G R A T I O N WAS H A L T E D A F T F R F A I L U R E TO P A S STHE E R R O R T E S T EVEN A F T E R THE TIM£ S T E P , D T ,WAS REDjCE^i PV A F A C T O R OF \n**\<* F H O M ITSO R I G I N A L V A L U E .

• 2 E R R O R T E S T F A I L U R E I N D I C A T I N G F PS IS TOO S M A L LFOR T H I S P R O B L E M ,

• 3 I N T E G R A T I O N WAS H A L T E D A F T E R F A I L I N G TOA C H I F V F C O R R F C T C C O N V E R G E N C E . I N C H F . A S EM JAC IF P O S S I B L E tOX MORE A C C J R A T E J A C D H I A NA P P R O X I M A T I O N ,

• 4 AN INPUT V A L U E * A S F O U N D I L L E G A L 9 V THE G E A R BP A C K A G E , AN E^ROP M E S S A G E IS P R I N T E D ON TAPE 3.

•5 I N S I G N I F I C A N T S T O R A G E A V A I L A B L E , I N C R E A S EARRAY D I M E N S I O N S IN S U B R O U T I N E H D L I D .

« 6 I L L E G A L I N P J T N p T s , L T . 5 OR NPDE , L T , 1-7 I L L E G A L I N P J T KEQN , N E , • « 1, 2 , 3 , 4•B I L L E G A L INPJT• 9 I L L E G A L I N P U T- 1 0 I L L E G A L I N B J T•11 ILLEGAL I N P J T• ! ? I L L E G A L I N P J T• 1 3 E R R O R IN TOUT- 1 4 E R R O R IN TOUT

FDR S O M E I» 1 5 E R R O R IN P L O T T I N G OARAMETfcPJ IN C O M M O N / M O L S L T /• 1 6 THE F O U R I E R M E T H O D CAN BE U S E D O N L Y IF T H E R E

ARE P E R I O D I C B O U N D A R I E S AfvD N P T S s 2**N F O R ,S O M E N. T H I S IS A T E M P O R A R Y R E S T R I C T I O NW I L L BF R E M O V E D I N L*TER V E R S I O N S ,

- ; 7 KM IS NOT E V E N L Y S P A C E D AND HORD.NE.PI

IF THE SOLUTION is TO BE PLOTTED CI,E, MOJT ,GT. 2 ) THEN THE

FOLLOWING COMMON BLOCK MUST BE PROVIDED BY THE JSERs

COMMON/MOLPLT/NPLT,IOEN,MG,XAL,UAL,XAXIS(2),UAXIS(NPDE,2)WITH THE FOLLOWING VALUES A N D MEANINGS FOR ITS A R G U M F N T S .NPLT = INDICATES HOk THE SOLUTION IS To BE PuCTTEf

0 EACH PDE COMPONENTS IS PLOTTED ON ASEPARATE SET OF AxFS WITH D Y N A M I C SCALING{TEKTRONIX PLOT.10 ONLY)

1 EACH PDE COMPONENTS IS PLOTTED OH ASEP*«*TE SET OF AXFS

2 ALL THE PDE CO^PONlFNTs ARfc POTTED ON THESA ME SFT OF AXES AT EACH OUTPJT TJME

J ALL THE PDE CO MPONENTS AR£ PLOTTED ON THE

NBC ,MODE ,MJAC ,

IN MORDMOuT ,

ARRAY,ARRAY,

NE,NE.NE,

GT,

1,0,U,

6TLASTTOUT(I

2,1,1,

322,3,

NEVER

n .

4,S

REACHEDLE, TOUTCI)

61

Page 66: LA-7595-M U MOL1D: A General Purpose Subroutine Package

3??

3fM C3fl? C3P3 C3M« C3 0 5 C3Pb C337 CJ08 C509 C31 PI C311 C312 C313 C31 a C315 C3lb C317 Cilfl C

CCCCC

32u C325 CJ26 C327 C5JP C52" C33? C33! C33? C**«333 C*«33U C335 C33(> C337 C33P C339 C3aB C3U! C

CCc

JDEN s

SAHE AXES FOR THE ENTIRE RUN

PLOT IDENTIFICATION LARfL (AS READ *ITH A N 46

3au3«5 C3U6 CJU7 C

CC»

35? C35! C5se c353 C35" C355 CS5f- C357 C356 C35P C

GtAPH METHOD PARAMETER TO DETERMINE THE TYPE OF LINEUSED TO PLOT THE SOLUTION, IF MG ,GT t 0 THEN THESOLUTION DATA POINTS ARE DESIGNATED BY 'X',OTHERWISE AN JNMASKEP LINE IS DRArfN, MG ALSOINDICATES IF QUADRATIC INTERPOLATION IS TO BEUSED BETWEEN TH£ DATA POINTS, IT HAS THE FOLLOWINGVALUES AND MEANINGS*• • 1 NO INTERPOLATION• - 2 INTERPOL ATF ONE POINT BETWEEN EACH PAIR

OF DATA POINTS ON AN EVENLY SPACED GRIP*• • 3 INTERPOLATE T«O POINTS 9ETWEEN E*CH P A I R

OF DATA POINTS ON AN EVENLY SPACED GRID

LENGTH OF X IN INCHES t.LE. 1 i» CCALCOMp

tfcNf,TH OF 1 \*i INCHES t.LE, 1 i»> ICALtOHp

M VALUES OF X AXIS (NPfT ,1^1.3)

M VALUES OF X Axis (NPLT.NE.^)

M VALUE OF J(I) AXIS (NPLT.Nfc.B)

XAL s

U*L s

X A X I S C U =

XAXISC2) 3

U A K I S C I » n =

UAXIS(I#2!= M I N I M J M VALUF OF U(I) AXIS. TO PREVENT U(I) F R 0 M

BEING PLOTTED, SET UAXlSCI»2) = V A X I S ( I , 1 ) ,

THE FOLLOWING SuPROj"INES "usT BE PROVIDED PY THE UStRSUBROJTINE PDE(UT,U,UX,UXK»FX,T,X,Ix,NPDE)DIMENSION U T ( N P O E ) , J ( N P D E ) , U X ( N P D E ) , U X X ( N P D E ) , FXCNPDE)

TKIS SUBROUTINE DEFINES T H E T1M£ DERIVATIVE OF THE I-TH PDECO MPONENT UT(J) AS A FUNCTION OF X,T#Uf*)»UX(*)#UXX(•) AND THEDERIVATIVE OF F, F X ( * ) . T HE SPATIAL POINT X IS THE Ix-TH ELEMENTIN THE ARRAY OF *£SH POINTS XM DEFINED IN THE MAIN PROGRAM,FOR EXA^PLEi

JT(1)sT*JX(1)+ABS(SIN(X(IX))*U(2)*UXX(!)UT(8)sFX(2)

RETURNEND

AN ALTERNATE FORM FOR THIS SUBROUTINE ISlSJBROJTINE PDECUT,U,UX,UXX»FX,T,XM,IX,NPOE)DIMENSION UT(NPDE,NPTS),U(NpriE,NPTS),UXCNPDE,NPTS),UXX(NPDE,NPTS),

1 FX(NPDE,NPTS),XM(NPTS)

THIS SUBROUTINE DEFINES THE TIME DERIVATIVES Of THE PDE COMPONENTSUTfI,*l ON A LINE AS A FUNCTION OF XM(*),T»UC*e*)»UX(*,*),UXX(*,*)»ND F X ( * , » ) , THE SPATIAL POINTS ARF IN THE ARRAY XM,HHTC* IS EQUIVALENT TO T H E ARRAY OF MESH POINTS XM DEFINEDIN THE MAJN PROGRAM, IX ENTERS THE ROUTINE IXsl ANDShO'JLV BE »£TU»NE3 iXsNPTS IF ALL DERIVATIVESA=?E O P I N E D , THIS FORM OF SUBROUTINE PDE REDUCES T H FNJM.JER OF Sue^OUilNE CALLS TO ONE FROM NPTS P£R PDE EVALUATION*

Page 67: LA-7595-M U MOL1D: A General Purpose Subroutine Package

S61 C ALLOWS THE USER To PROVIDE IS OtfN FINlTfc DIFFERENCES362 C ON AN UNE3UALLY SPACED M£$H AND INCORPORATE INTEGRAL365 C BELATIONSHIPS INTO THE EQJATIONS.360 C FOR EXAMPLE ON A M £ S M OF 21 P O I N T S I565 C166 C DIMENSION UT(NPDE.Jl)#U(N»DE,21)»UX(NPD£ #2n,UXK(NPDE f2l),S67 C 1 FX(NPDE,2J)»XM(2l)368 C DO 10 Jsl,Sl369 C UT(1.J)?T*UX(1#JU*BSCSIN(XM(J))*U(2#J)»UXXC1#J)37? C 10 UTC2.J)sFXC2,J)371 C n » 2 l372 C375 C RETURN370 C END375 C376 C** SJRROJTINE FUNC(F,i»,L)X,UXX#T,X#IX,NPPE)377 C DIMENSION F(NpDE),U(NPDE)tUX(NPDE:)»UXX(NPDE)378 C57? C THIS SUBROUTINE DEFINES F As A FUNCTION OF T,X,J,UX ANDSBt» C FOR EXAMPLE:381 C362 C FC2)aJX(2)-SlN(T*U(l))383 C384 C385 C386 C387 C AN ALTFRNATE FOR" FOR THIS SUBROUTINE AVAILABE ONLY FOR386 C FOR CENTERED DIFFERENCES (I.E. M0RDf*,3) ,GE f0) ISt389 C* SUBROUTINE FUNC(F,u,UX,UXX,T,XM,Ix,NPDE)390 C DIMENSION F ( N P D E » N P T S ) , U ( N P D E . N P T S ) , U X ( N P D E , N P T S ) , U X X ( N P D E # N P T S ) ,391 C 1 XM(NPTS)392 C393 C THIS SUBROUTINE DEFINES F(*,») ON A LINE390 C AS A FUNCTION OF XH(*J,T,J(*,•),UXC*.*). AND UXX(*,«),395 C THE SPATIAL POINTS ASE I* T*E ARRAY XM,396 C WHICH IS EQUIVALENT TO THE ARRAY OF M E S H POINTS XM DEFINED397 C IN THE MAIN PROGRAM, IX ENTEPS THE ROUTINE IX=1 «ND398 C SHOULD 3E RETURNED IXsNPTS IF ALL DERIVATIVES399 C A9E DEFINED, THIS FORM OF SUBROUTINE FuNC REDUCES THE«00 c NUMBER OF SUBROUTINE CALLS TO ONF FROM NPTS PER PDE EVALUATION*101 C ALLOTS THE USER To PROVIDE IS Ort'J FINITE DIFFERENCES«02 C ON AN UNEQUALLY SPACED H£SH AND INCORPORATE INTEGRAL«B3 C RELATIONSHIPS INTO THE EQJATTON5,UBU C FOR EXAMPLF ON A HES H OF 21 POINTSI005 C«06 C DIMENSION F(NPDE»21)»J(NPDE,?n,UX(NPDE,21),UXX(NPDE#2n,XM(?D«iH7 C DO 10 Jel,?l«0B C If! FX(2, J ) B U X C 2 » J)-SIN(T«U(1, J))009 C !x=2i«1P» C iETURN011 C END012 C013 C IF(KRC,GT,2) THE FOLLOWING SUBROUTINE MUST BE SJPPLIEDt010 C** SUBROUTINE BNDRYCTfUL,AL,BL,CL»UR»*RfBR,CR,NPDE)015 C DIMENSION UL(NPDE),AL(NPDE)»BL(NDPE),CL(NPDt)016 C DIMENSION UR(NDPE3,AR(NDPE),BRfNDPE),CR(NPDn017 COlfi C THIS SUBROUTINE DEFINES THE COEFFICIENTS USED IN TH£ BOUNDARY019 C CONDITIONS

A L ( I ) » j m + B L d W U X d ) = C L t n AT X « XM(l)

63

Page 68: LA-7595-M U MOL1D: A General Purpose Subroutine Package

421 C AND022 C AR(I)*J(I) • BR(I)*UXCI) = C R ( H *T X = XM(NPTS)023 C LIL(I) AND URfl) CONTAIN THE SOLUTION AT THE LEFT ANp RIGHT020 C BOUNDARIES AND SHOULD NOT BE ALTERED, IF BL OR BR IS NOT EQUAL025 C TO ZERO THEN A, 8 AND C CAN BE FUNCTIONS OF U AND T, OTHERWISE026 C THEY CAN BE FUNCTIONS OF T ONLY, IF NO BOUNDARY CONDITIONS ARE027 C IMPOSED, THERE IS A FREE BOUNDARY PR THE BOUNDARY IS DEFINED BY AN02B C ODE IN SUBROUTINE PDE, THEN THE COEFFICIENTS SHOULD RE SET TO ZERO029 C (ZERO IS THE DEFAJLT VALUE)03P C FOR031 C032 C ALC1033 C CL(!030 C BL(2)=1.P035 C BR(2)si,P436 C037 C SETS THE BOUNDARY C O N D I T I O N S J U(11=SlN(T) AT XM(j)038 C UXC2)=(*,P AT XMfJ) AND XM(NPTS1039 c44? C RETURNOill C ENDnu? c

C * * * T H F A C C U R A C Y O F T H F N U M E R I C A L S O L U T I O N C A N Hi F O U N D I NC C A L C U L A T I O N S w H E R E T H E E X A C T S C L J T I O N I S K N O W N B Y C A L L I N G

<mS C SJPROuTINf. COMPAR, T H F PARAMfVfcR LIST AND C H L I N u006 C SEOJENCE FOR THIS SJBISOJTINE IS*0«7 C008 C SJBRPJTINE C O M P A R ( N ' , U , V, V S J U L , ' , v L 2 , n L l , D L 2 » D M A X , D P H ,0«9 C CD L 1 , C O L 2 , C ? M A X , i N D )050 C WITH THE FOLLOWING VALUES A U D M E A U I N G S FOR THE CALLING PARAMETERS*051 C052 C N B INPUT PARAMETER E3UAL To THE NUMBER Of SPATIAL053 C MF.SH POINTS«50 C U = INPUT ARR/SV OF LENGTH N055 c v = INPUT ARRAY OF LENGTH N TO RE COMPARED WITH uo$6 c vs = OUTPUT ARRAY OF LENGTH N EQUAL TO THE IN,P.JT VECTOR057 c v SHIFTED TO CORRECT FOR THE PHASE ERROR IN THE058 C D0 MIN4TE FOURIER MODE OF U05<> C UL2 = L2 NORM OF u06? C VL2 s L? NORM OF V061 C DL1 = DIFFERENCE BETWEEN J AND V IN T H E LI NORM062 C DL2 s DIFFERENCE B F m f N u A N D V IN THE i.2 N O R M063 C DMAX s DIFFERENCE BFTWEFN \j AND V IN THE MAXl^jM NORM060 C D pH = PHASF. DIFFERENCE IN THF D O M I N A N T FOURIf-.R M O D E OF u065 C CDL1 = THE DIFFERENCE BETWEEN u AND VS IN THE Ll NOR"066 C CDL2 e THE DIFFERENCE BETwEt.N II AND VS IN THE L2 NORM067 C CDMAy ; THE DIFFERENCE PETNF.EN U AND VS IN THf M4XIMJM NORM46? C TND r INDKATO" USED FOR BOTH INPUT AND OJTPUT, ON INPJT06" C IND.GT. t» FLAGS NO PRINTED OUTPUT. IF IND.LT, U TH£N070 C THE DIFFERENCE PETwEEN u AND v ARE PRINTED ON071 C TAPp. 3. THE MAGNITUDE OF IND HAS TH£ F Q L L P « I N G072 C VALUES AND MEANINGS*073 C IABSflNDI = 1 PHASE DIFFFRENTES ARE N O T COMPUTED070 c = 2 PHASE D I F ^ R E N C E S ARE COMPUTED0 7 5 C IND R E T U R N S = +-J IF N , N E , 2 « * ^ 2 P AND P H A S t E R R O R S W E R E C A L L E D FjR076 c OTHERWISE IT RETURNS UNCHANGED4 7 7 C0 7 8 C**» A D D I T I O N A L C O M M L I N I C A T I O N 3 F T W E E N TH£ US E R A NO T H E P A C K A G E CAN4 7 9 C BE G A I N E D T H R O U G H T H E C O M M O N B L O C K BO B ? C

64

Page 69: LA-7595-M U MOL1D: A General Purpose Subroutine Package

«81 C483 C485 C081 C085 C08b C087 C088 C889 C09? Co«jj c092 C093 C090 C095 C096 C**»097 C09B CU99 C5Pi» CS<i\ C50? C5P5 CSfcii C**»505 C50fe C507 C508 C509 C510 C511 C5i? c513 C5to C515 C516 C517 C518 C51"? C520521522523520 C525 C52b C5?7 C528 C529 C53<» c531 C532 C**»523 C530 C535 C556 C537 C538 C5395«PI C

W I T H T H E F O L L O W I N G u F A N I N G S AN*I V A L U F S FOR THEDTL a L*ST TIME S T £ ? SIZEO T A V G = A V E B A S F T I « E $ T E P I N TH£ C A L C U L A T I O NL O U D c THE O R D E S OF THE TIME I N T E G R A T I O N M E T H O D L A S T U S F DO R D A v G s A V E R A G E O R D E R OF THE T I M E I N T E G R A T O R U S E D TN THfc

C A L C U L A T I O NN S T E P S = THE C j M j L A T l V E NllMRER OF TIME S T E P S T A K E NN P D E E c THE CjM(jlATIVE NljMRER OF POE E V A L U A T I O N SN J A C E s T H E C U M U L A T I V E N U M B E R OF J A C O B I A N E V A L U A T I O N S

OF THE DIFFERENTIAL DIFFERENCE EQUATIONCPTIME = THE CjHuLATlVE COMPjTER R J N M N G TI*£ USED FOR

THE INTEGRATIONAPPROXIMATIONS OF THE SPATlAl DERIVATIVES OF THfcAT THE LAST PPE EVALUATION ARE CONTAINED IN THECOMMON BLOCKSo

U X ( N P D E ,- / " O L C J .' U x x < H P D F , N P T S )

CO^MOr, / M O L C U / F X f N p n E , N P T s )

W O R K I N G V A R I A B L E S U S E D IN SllHROjTINj M O L I DI* « O D T P J T T A P E F D S P R I N T E D O U T P U T ( D E F A U L T 1^IL : LINF C O U N T E R51 : S P A C I A L P I F F E R E ^ C F SOXI = 1,/DXD X M I s l . / ( 2 , * D x 1D X S I i 1 , / ( P J « D X )DU IS THE R E L A T I V E C ^ A ^ & F I N J H H £ N C A L C U L A T I O NMFX s M E T H O D TO C A L C U L A T E KX

. L T . 0 - P O T A T E D D I F F E R E N C E S , =(»-NOT N E E D E D . , GT . pi-fiT H E S * ISEB D R Y f * , NPDf.) s W O R K I N G V A R I A B L E S A S S O C I A T E D W I T H THfc. B D J N O A R V

B P R V ( l , n s A ( i ) FOR U ( I )B n R V ( ? , I ) e A C23 FOR U ( J )B D R Y C J , I ) e fltl) FOR U ( I )BDRV(<J,I) s BC21 FOR U ( I )8nRV(5,I-i s C C 1 ) FOR U ( I )8 D R V ( 6 , I ) s CC25 FOR U ( T )B M v n . l ) = J(I> AT ( X e X ( l ) - O X )8 D R V ( 8 , I ) « U ( D AT ( XxX t N P T S ) + D X )B D 3 » C < M ) s u ( I ) AT ( X B X C n - 2 * 0 " )B D R V C 1 0 » I ) » u ( I ) AT ( x t N P T S ) + 2 * n x )

T S f N P T S , 2 ) = T E M P O R Y S T O R A G E

V A R I A B L E S FOR G E A R R ODE S O L V E RN O D E s N P D E * N P T s = N U M B E R OF ODE1* To SE I N T E G R A T E D VIA ^f)LT « CURRFNT TIME OF INTEGRATIONMF = METHOD FLAG FOR GFARB

ALLOCATE SPACE FOR COMMON BLOCKS IN GEARBIF COMPJTER STORAGE ALLOCATION IS A MAJRJSC O N S I D E R A T I O N IN R U N N I N G A J O B , T H E N THE C O M M O N B L O C K A L L O C A T I O NS H O U L D BE M O V E D Tn THE MAIN P R O G R A M Pi? A B L O C K DATAR O U T I N E AND T A Y L O R E D TO THE J O B AS I N D I C A T E D BY THFC A R D S A B O V E E A C H C O M M O N

65

Page 70: LA-7595-M U MOL1D: A General Purpose Subroutine Package

5ul C

Su3 C5aa C C0MMON/GEAR3/E*RDR(NODE)

5U6 CSa7 C5aB K

5«9 CS5?1 C C0MM0N/GPAR5/8*VE2(N0DE)551552 C553 C55a C C0MM0N/GEAR6/PW( i, NODE) *HEN Mjic s 1 OR 2555 C C0HMON/GE*B6/»»rt(?»NPOE-l,N0OE) WHEN MJAC s 3556 C C0MMfiN/GEAR6/P*C J.NPDE.NOOE) WHEN MjACsU557 C0**0N/'GFAS6/'P*(<',5l2)556 C

SS"? C C0MM0N/GFAR7/lPlV(NpDE)560 CO^MON/GEAR7/IPlV(5l?)5bl C

5b356U C5e5 Ct66 DIMENSION U(5l2,6)567 C568 DIMENSION UZ(NPr>E,NPTS),KM(NPTS),M0RDCNPDE#3),T0UT(2)569 C570 C ALLOCATE SPACE FOR COMMON BLOCKS USED IN M O L I D571 eOMMON/M0LlNF7DTL,IHAVG,L0RD,0RDAvG,NSTEPS,NPDEE,NjAC,C57? C ALLOCATE M0L1D INFORMATION COMMON BLOCK, AND DIMENSION X(NPTS*1)57 3 COMMON/MOLCl/I",lL.CPJT,upDEC,Nf>TSC,KEQNC#KBCC,MOUTc,DX,DU»X(25b557U COMHON/^r'-EX/NRuNfUROjND575 C57b C C O M M O N / I O L C 2 / J X C N O D E >577 CDKMnN/M0LC2/UXt5l2)578 C579 C C0Mi0N/M0LC3/JXX(N0DE)58? COMMpN/MC)LC5/UXx(5i2)581 C58? C COwMriN/MOLCc/FX(NoDE)583 C0MMON/MOLCu/FX(5l?)58a C585 C C O M M O N / M O L C 5 / M 0 H D C ( N P D F » J )

566 COMHON,'HOLC5/MORDC(303567 C3fiB C COMMON/MOLCb/BDRyfNPDE.IB)589 COMMON/MOLCb/BDpV(10, 10)59i» C591 C COMM0N/MnLC7/TS(N0DE) OR TSJNPTS+1.2) WHICHEVER HAS GREATER DIM,592 COMMON/MPLC7/TS(2572)593 C59a C DATA BLOCK TO SET UPPER BOUNDS ON THE SIZE OF THE SrSTFM595 C596 DATA MAXPDF/!0/,MAXPTS/25b/,MAXODE/512/,MAXJAC/<*608/>NRJN/0/597 C598 C I" IS THF UNIT T*E OUTPUT Is WRITTEN ON599 C 8ND0FF IS THF ROUNDOFF ERROR ON THE MACHINE63? DATA I»</}/»RNDOFF/7,E»ls/

Page 71: LA-7595-M U MOL1D: A General Purpose Subroutine Package

601 C60? C*LL SFCOND(CPUT)60360U605 IL«sl

607608 Loep c610 C CHECK VALIDITY OP INPUT PARAMETERS AND PRINT THtM611 C612 C*LL CKINPtN!»DE,NPTS,KE0N,K(3C,METH, EPS. MO«D, TINT, T1,AST,HOUT» TOUT.613 1 U Z , X M , K M O L )6ia c615 C SET <*F FP» G.FA9Hilb C61761?61'' IF tMnDF,F3,0.AMp.KE3N.E0,a)625"621622623

625 IF62ft IF627 IF

629 MD!Ac2IF(HJAC,E3,n

J C , . 2 ) p 3

632 IF(ML,E3.0.AND.M5iA,E3,2)633 MFsJ3*M0nE*MDIA63« C635 C CHECK IF ENOUGH STfltjAGE H A S BEEN ALLOCATED636 C63.? IF(NPDE,GT,MAXPOE>639 IF(NPTS,r,T,MAxPTS)639 TFCNnDE.GT.MAxODEl63 IFCKM0L.F3.-S) W»ITECIW,,QV) MAXPDE,"AXPTS,

IFCMJAC.LE.2)6«J IFtJACLOC.GT.MAXJAC) KMOLe-56 IF(JACLOC.GT.MAXJAC) KR IT£ t I W, 1 gfl) JACLOC, MAX JAC6U5 C616 C6U7 C6486«9i r iJ

65165265365U65565665765B659660

SET CONSTANTS H

DTL=0,0DTAVGiP.P

LO'Ds?1

OROAVGr.^^NSTEPSs.*NPDEEs?NJACFS3N P D E C « N » D E

NPTSC=NPT5KEQNCsTABSCKFQM)KBCCsKPCMDUTCsMDJTO X 3 X M f ? l » X K f l 1

67

Page 72: LA-7595-M U MOL1D: A General Purpose Subroutine Package

66t OU«S09T(UH0UND)662 NODEPlaNODE+1663 00 10 l8l ,N0[>E

,665 UXX(T)e3,3fcbb 1866766866' NSTEPsfl670671672 C673 KEJ67<i DO 20 IsJ,5t>75 DO676 M0RDC(K)«MORD(J, I)677 20 K»K+167P 00 3P I=),MPTS679 30 X ( I ) B X « ( I )683 IFtKRC.EQ.D XfNPTSf 1)=X(V|PTS)*DX6B1 C68? C SET YMAX T"D MAXjMjM VALUF PF TH£ INITIAL DATA683 C68U DO 5d J=1»MPDE6B5 UHAX=a.0666 DO U? Isl,NPTS667 U0 JMAXBAMAXI(UMAX,A8S(UZ(J,D)566fl IFCUMAX.f3.P.0)689 DO bP !sl,NPTs690 SPIt9I C6<J? C ******************************************************************693 C END HDL10 C Q W H O M BLOCK INITIALIZATION69U C695 T E T J N T696 IF(tPS.L.EtptP) Ei»S = l.E-«697 C699 C IMITIAL TIME STE" SEUECTna699 HBS5PT(EPS)/fL0AT(KJprs**lARS(KE3N))70? CALL DI"JNCNODEfT,UZ,U(NODEPl,l))

70? 00 15 Is703 .

705 C706 I F CMC1JT.F3.03 GO TO 7V707 r F C M O J T . L T . ? ) GO TO Si?7 0 6 C709 C SET NOUT TO THE MuMBER OF PpiluT OUT71? C711 TOL = liJ.«Tl ASTtUROjNO712 DO 6PI NOUTsi, 1 000"15 If URS(1OJ''tNnJTKTL«'ST) .LE.TOn GP TO71 a 6(5 CONTINUE715 KMOLs-137ih C717 C MOUT = B ND PRINTED OUTPUT718 C719 7U NOUTel

TOUT( 1 )sTL*ST

68

Page 73: LA-7595-M U MOL1D: A General Purpose Subroutine Package

721 GO TO 90722 C725 C PRINT EVFRY TI*E STEP

72a C725 80 M O U T B I A B S ( M O U T )

726 T O U T ( 1 ) B T I N T

727 TOUVCtJ«TINT*H728 90 CONTINUE729 C730 C 8ET TLASTsTlNT IF AN ERROR HAS BEEN ENCOUNTERED AND «ETjRN731 C AFTER PRINTING AND PLOTTING THf SOlUUON732 C733 IF(KHOL.LT,0) TLASTsTlNT73« C7J5 C PRINT SOLUTION AT T I * E B T I N T IF NEEDED736 C737 NTIMFiri?38 tF(M0jT,E3.P, OR,TOJT(n.CT,TINT) GO TO 12H739 NTIMEi=27<I0 IF(MOJT,GT,2) CALL SOLPLT ( NODE, TOJT ( 1 ) , UZ,711 1MM)MP,E3,«1 GO TO UI»7«2 CALL DIFF JN(NODE»T,i)?,Ll(NODEPl, 1))7u3 DO 100 I«1»NODE

Tlik j7«7 CALL SOLDMPCNODE#l).Pl)7U6

750751 110 CONTINUE752 IF(KI3MP,E:3iB,AND,CMoUT(,LT,0.OR.MnuT,E3,2,OR,MOUT,EG,<in CALL753 1 DIFFjN(NDDE,T,LiZ,U{NODEPl, 1))75U IFCHOJT.LT,5) CALL S"LPRT(NODE,TOuT(i),UZ,U(NODfcPl,iJ,1,)755 C756 C RETURN IF AN E*ROR WAS RETURNED FttOn THE INITIALIZATION OF SOL PLT757 C OR MOJT = •! (I.E. ONLY ONfc T I H E STEP)758 C75<> IF(KMOL,LT.B.OR.MOUT,EO,-1) TLASTsTJNT.•"661 120 IFCTLAST.EO.TINT) RETURN761 C7^2 C » * * • * * » * * * * » * « • * * » * * * * * * t * » * t * » * * * * 4 * * * * * n * * » * » * * * * * * * * * * * * * * * * * *763 C BEGIN MAIN INTEGRATION LOOP764 C765 INO»l766 DO 1U0 NTIHEBNTIMjijNOUT767 C768 C DRIVES IS THE DRIVER ROUTINE FOR THE GEARB ODE SDLVtR769 C THE SOLUTION, UZ, Is INTEGRATED FROw TIME T TO TTME T O U T ( N T J M E )770 C771 CALL DBIVEB(NODE,T,H»UZ,U,TDUTfNTlM E),EPS,MF,IND,^L.

MU)772 C773 C IF THE 30JNDARY CONDITIONS ARE OF THE FORM u(T) c F ( T ) , THEN77U C THE SOLUTION MAY NOT HAVE BEEN INTERPOLATED CORRECTLY B Y GEARB775 C776 IFfKBC.GT.l) C*LL BEVAL(NODE,TOJT(NTIME),JZj777 C778 C CHECK IF INTEGRATION IS PROCEEDING779 IF(IND.EO.PI) GO TO 13078B C

69

Page 74: LA-7595-M U MOL1D: A General Purpose Subroutine Package

781 C ERROR FLAG RETURNED FROM GEAR8 DRIVER78? C733 TL^STiTT8U WRITE(H,21fl)785 C*LL SOLOMP(NODE,'J, IND)78b GO TO 15?787 C788 C NORMAL RFTURN F R O M G E A R B 0'IVER78" C79^ U P CONTINUE791 IF(MOJT,E3.0) CO TO 1U0''9? TF(KDMP,LE.0> GO TO 135793 IF (MOD(NTIME.KDMP) .EQ.P1) C»LL SOLDMP(NODE,U, IND)790 115 TF(M0JT,GT,2) CALL S0LPLT(N0PE,T0UT(NTlMi:>,uZ»KMOL)T95 ! F ( M O J T , L T , 5 ) CALL SOLPRT (NODE, TOUT ( NT IMF.), UZ, U( NODE"1, 1 ) , H)796 TF(KMOL.LT.CI) GO TO 15?797 C79P IFfMnjT.LT.H) lM1s3799 lap CONTINUE80? C801 C FNO MAIS/ INTEGRATION LOOPf p ? C ••••((•••••••KHlXHIlHXllKltllllllllKtltOMlXtltl'X

8^5 CBau I F C U P M P . L T . C , A N O . H O j T . N E . a ) CALL S O L P M P t N D D [ , U » I N 0 18k)5 I F C M n j T , L T , 0806 150 C O N T I N U E8^7 I F C I N 0 . E 0 . 5 )808 K M O L s I N O809 CALL S E C O N D ( C P O T )Bid C P T I M811 D T L s H J S E P

8|J8iua 15 N J A C ? : « W J F

Bib IF CNSTEP.EO.0) GO TO 16HI 0 T G C O T / L ( S E )

SIP ORDAVGSORO*VG/FLO*T(NSTEP)819 U K CONTINijE82^ IFCMOJT.GT.B) *BITE(Iw,2?d1 NSTfP,DT*VG,NFE,ORDAVG,CPTI ME821 C822 C CLEAR PLOTTt* IF NECFSSARy823 C82U IF(M D JT,GT,2) CALL SOL^LTfNODE,TOUT(NTIM£),uZ,»1)8

C8?7 180 F O R M A T ! / , U 7 H I N S U F F I C I E N T STORAGF IS AV A I L A B L E FOR THISB28 1 2 7 M N P O F MLiST BE LESS THAN , I « , / , 2 5 H N PTS M J S T BE L E S S T H A N , I «829 2 , / , ? 6 H N P D E . N P 7 S MjST BE LESS T H A N , I u , / )8J0 19e F 0 R M A T ( / , u 7 h I N S U F F I C I E N T S T O R A G F IS A V A I L A B L E TO ST O R F T H E ,831 1 9H J A C 0 B I A N , / , 1 2 H R E D UCF *j*c 0" P T S I F P O S S I B L E , / ,9 3 2 2 16H THIS R U W N E E D S , I 5 » 1 8 h S T O R A G E L O C A T I O N S , / , 11H T H E ^ E ARF ,\U,833 } 2 B H S T O R A G E S-OCATlO^S A V A I L A B L E , / )8 3 " jaP F O R M A T ( l H j )8 3 5 2 1 0 F 0 R M A T f 3 8 H ERROR RET'J3NE'i F p n ^ GEARB ODE R O U T I N E )836 2 2 0 F 0 R M « T ( / / , 2 S H TpT*L TIME S T E P S c , I 5 , 2 3 H A V E R A G E TIME S T E D =837 1 , l P E 1 2 , a , / , 2 J H TOTA L UT E ^ A L J A T I O N S B , I 5 ,B3« 2 2 5 H AVERAGE M E T H O D ORDER ',0PF7,3,/,17H T O T A L CPU TIMf c , P P F 7 , 28 3 9 } , 8 H S E C O N D S )8 u 0 E N D

70

Page 75: LA-7595-M U MOL1D: A General Purpose Subroutine Package

SUBROUTINE CKINP

1 SUBROUTINE CKlNPfNPDErNPTS»KEQN,KBC.METH.EPS»MORD,TINT,TL*ST,MOL(T,2 1 T O U T , U Z , X > \ K M D L )3 DIMENSION TDUT(2),)fM(2),M0l»D(NPDE,3)#U7(NPDt.NPTSJ

5 COMMON /MOLE*/ NRJN.UROUND6 C7 C SUBROUTINE TO CHECK 'HE VALITY OF THE INPUT TOS C9 KMOL«P

1C HOOEoMETH/le1512 .15 I F ( M J A C , E 3 , 0 )

\U IFCNPDE.LT,1)1516 , . )17 IF(«BC.LT.P.OS.KBC.GT.U) KMOLe-8IP IF(M0DE.GT,2)1« I F ( M J A C . C T . 5 )

20 C21 NMOSDsPi22 DO 2n23 DO 10

25 IF(K.NE,0)26 10 I F ( K , N E , 0 . . ,27 KeIASS(MCRD(I,3))28 :F(K,NE,PI) NMoRDeNMORD+129 20 lF(K,NE,0,ANP,K.ME,l,AND.H,NEt?.A3P C31 C CHECK IF FFT IS USED32 C55 DO 55) lsi,N»DE3" DO 3P J=l,335 IF(lABS(MORD(I,J)).EO. 1) GO TO UP36 3C CONTINUE57 C38 C FFT NOT USFD3' GCi 70 52«0 UP IF(KRC.NF.l) KMOLs-16UlU2 IF((NPTSU3 50 CONTINUEUU C

U6 I F £ M O j T , E a . P ) GC TO 110U7 W R I T F C T ^ , 1U0) N P D E , N B T S , K B C , K E O N , M E T H , E P SUB C«" DO 6P> I = 1,NPDE5B 6H W R I T E d i . 15B) (I. J, «ni»D(I, J ) , Jsi ,5)51 WRITE(lrf,168) T I N T . T L A S T , M O U T52 C5 3 C I F THERE I S OUTPUT CHECK I F TOUT I S S E Q U E N T I A L Aloo I N C L U D E S5<J C5 5 I F C T L A S V . G E . T I N T ) 5 0 TO 7 356 KMDLs-lU57 WP.ITFdrf.17P) TIWT,TL*.ST5t 70 CONTINUE5^ IFtMOuT.LT.m GO TO 11C60 C

71

Page 76: LA-7595-M U MOL1D: A General Purpose Subroutine Package

61626564656667686970Tl7273

7576777 AI n

798 Pi818283

8506878689909192939'J9596979899

1 0P10110210310U105106107108109110HI112113

115116117118119120

Cc

ccc

c

rL

cccc

ccc

ccc

fL

80

9fl

100110

120110

18012

150160170

THERE IS OUTPUT

TOL«10.*TLAST«UROJNDDO 60 N0UTB1,1000IF(TOUT(NOUT).GT.TLAST) TOUT ( NOuT) » U A S TIF(ABSCTOUT(NOUT)-TLAST).LE.TOL) GO Til 100I F ( T O U T ( N O U T » 1 ) . L E . T O U T ( N O U T ) ) GO TO 90CONTINUE

ERROR IN TOUT ARRAY

«RITF(Irf,160)KM0L«-15

IPSNDJTMIsNOtITwRITE(Irt»190) I,TOUT(I)»I»»TOUT(IP)

RETURN

WRITE(IW,20P);TOUT(J),J«!1,NOIJT)CO*7INUEIL=1l+NOUT/1?

CHECK IF MESH XM IS EVENLV SPACERIF NMOROS0 T«EN NO DERIVATIVES A«E CALCULATED B Y T H E PACKAGEAND THE MESH C*N BE UNEQUALLY SPACED

IF(NMORD.EO,0) GO TO 130OXsXM(?l*XM(l)TOL=DX*(1,*10,*UROUND)RO 123 I B 2 # N P T S

I F ( A B S ( X M ( I ) . X ; H ( I . 1 ) ) , G T , T O L ) K M O L = - 1 7eONTlNUE

B'tTURN IF THERE tRE NO IMPROPER INPUT PARAMETERS

IF (KMOL.GE.0) RETU81^

THERE ARE IMPROPER INPUT PARAMETERS.,,,PSINT ERROR MESSAGE

wRITE(Trf»21PJ)IFfKMOL,E3.»53 WRlT£CIw,2?0)IF(KM0L,E3«»6) HRITECIW,?JC)IF(KMOL,E3,»7) w R l T E H ^ , ?»C)IFCKM0L,E3.-8) *RlTEU»i»25Pi)IFCKMOL.E3.-9) WRlTE(Irt,2(,0)IF(KHDL,E3.»10) W R I T E ( l w , 2 7 0 )IF(KM0L,E3,»l1) WRITE(lw,j80)IFCKM0L.F.3.-12) WHITE(lw,290)IFCKM0L.E3.-16) WR H E C I *, J0(")IF(KMOL,E3.«17) WRITE(I*»,jli?)RETURN

FORMAT(27H1 THE I N P U T PARAMETERS ARt'./ZfSH NPOE e,U,<}M NPTs «,I}.8H KBC e,!2,/,8H KE(3N « , I 3 I 9 H METH « , I J , B H £PS =,l"Ele,"p/)

F O R M A T ( 3 C 7 H M O R D ( , I t , l H , , I l , 3 H ) B , 1 2 , I X ) )

F 0 R M A T r / » 8 H T I N T « , 1 P E 1 2 , « , I B H T L A S T a , ) P E l 2 , O , 9 M * O U T s , l 3 )F O R M A T C U J H T I N T M J S T B E L E S S T H A N O R E Q U A L T O T L A S T , / , 7 H T I N T s , l P

72

Page 77: LA-7595-M U MOL1D: A General Purpose Subroutine Package

12!12?12512«125

12T1281291J0S3113213313«135136137138139

189190

J»202JC800250

1 E 1 2 . U , S * # 8 H TUAST a»lPEl2.«l)PORMATtUlH ERROR IN TOUT ARRAY, TL*ST NEVER REACHED)F0RMATr27H ERROR IN TOUT ARRAY, TOUT(,U,2H)s,1?t12,«,1 15H IS .GE, TO UT(,IS.2H)e,iPEl?.«)?0RMATC/.8H TOUT «,«X,9(}PE11.a),501/,IX,10E1 I,0))FORMAT It,IX,J(lBH»***«*#***),//,?bH IMPROPER INPUT TOFDRMATC20HFORMAT(20HFORMATC20HF09MATC22H

. . lNPTS.LT.5KEQN,NE.0,1#?, OR

fNE.0,1,2# 0*

270

290330

F0i?MAT(2PhiFOft*AT(20HFOf'MAT(20HF0RMAT(«7H5«H Ns2**M

MJAC.GT.OM D R D OJT OF RANGEMOUT.GT.UERROR IN MORD«AMP THERE ARE2

J0H****^*«***),/)310 F0RMAT(21H XM NOT EVENLY

END

/ , ? b I R O E R I N U T T O, / / , i X , J ( I 0 H « * « « * « * • * * ) , / )> H> I X , 3 ( 1 0 H * * « * * « * * * * ) , / )

J , / / , 1 x , i ( I B M * * * * * * * * * * ) , / )i / / , 1 X , J ( 1 d M * * * * * * * * * * ) , / )

,//,1X»J(Ian**********),/), / / , 1 X» 3( I f H**«******» ) , /3, / / , 1 X , 3 ( J 0 M * * * * * * * * * * ) , / ), / / , 1 X, 3( 1 0H**»****«*» ) , / )

FFT C*N NOT BE USED JN IFSS,'»PERIODIC BOUNDARY CONDITIONS,//,3(

S P A C E D , / / , 1 X , 3 ( 1 0 H * * * . * * » # * * ) , / )

73

Page 78: LA-7595-M U MOL1D: A General Purpose Subroutine Package

SUBROUTINE SOLPRT

t SUBROUTINE S O L P R T (NODE,r,U2,JTH,H)2 DIMENSION L Z C 2 ) , UTH(2)3 C O M M O N /GEAR9/ D T L , L O R D , N S T E P , N P D F E , N J EU COMMON /"OLC1/ I",lL#C pUT,Npf>E,NPTS,KEUN,KBC,MOiJT,Dx,DU,X(?)5 C O W H O N /HOLE*/ NRUN.UROU^D6 COMMON /MOLCT/ TS(2)7 DATA I N I T / f V , I U H D R / 5 H U(/,IUTHDR/^H U T ( /9 C9 C SUBROUTINE TO PRINT THE SOLUTION U7(NPDE,NPTS) AT TIM£ T

I?1 C AT X(MPTS) MESH POINTS11 C UT(NPDE,NPTS) IS THE TIME DERIVATIVE OF UZ MULTIPLIED PY H12 C13 IFtINIT.E3.NRUN) GO TO 51516 5 IM17 C!« CPU .i C3|JT19 CALL S E C O N D (C p

tjT)2? C"J s C U T - f P u21 NSTEPT s N;:Tf-P-f2?23 C2« rL = I L + 9 + N P T S25 IF (IL.LF.fcP) WRITF ( I N , 8 0 ) T2h If- ( I L . G T . M 1 ) WRITE CI •*,=»? 3 T27 IF ( I U . G T . b B ) I I s (J"»TE+72P C2 " " R I T E ( I w , l « P ) D T L , L O R D , N S T E P T , N P D E E T , C P U3? NSTFDT r NSTEP3! N P D E F T r NPDEE5? IF ( M O U T . N E , l . A N D . M O U T . N E , 3 ) GO TO 2?35 Cin C PRINT ? 0 L J T I O N35 C3b WRITE ( 1 ^ , 1 1 0 ) ( I J H D R , I , I = I,NODE)37 K = i3« DO 1? I s 1,NODE,NPDE39 IP = I+NPDE-1«? WRITF ( I W . U P ) .',8(K),(UZ(J).J s I,IP)01 IP. K E K* 1U? R E T U O Ny3 c«« C P«I\T S O L J T I O N A N D TIME D E R I V A T I V EU5 Cdfe 2P Ht s l./H«7 DO 30 I B 1,NODEIB 33 T S f l ) = U T H ( I ) * H I

« ' IF ( N P D E . G T . d ) GO TO 5350 C51 C LESS T^tAN 5 PDES PRINT U AND JT ON SAME LINE5 J WRITE ( I W , H P ) ( I J H D " , I , I = ! , N O D E ) , f IUTHDR, I, I a l , N p O t )5b DO (IP I s 1,NODE,NPDE56 IP r I • NPr>F- 157 WRITE ( I w , 1 3 P ) K , X ( K ) , ( U 7 ( J ) , J s I . I P ) , C T 5 C J ) , J s T , IP)58 an K = K+i50 R E T U R N63 C

74

Page 79: LA-7595-M U MOL1D: A General Purpose Subroutine Package

61 53 C O N T I N U E6? C65 C MORE THAN U »OES PRI^T U A N D J T ON1 DIFFERENT Ll*«FS60 C65 WRITE (Ii-Mld) C l J H D " » I » I = 1,N"»r>E)bb K a 167 DO 6" I i 1,NODF,M»DF66 IP c I+NP0E-169 WRITF ( I w , 1 3 0 ) K , X ( K ) , ( U ? ( J ) , J = I,IP)70 6" K e K M71 IL =72 IF ( . .TS IF (IL.GT.6H)7« C75 W R I T E (Jrt,lin)7h K s l77 DO 7^ I s :,NnDF,NPDE78 IP = I+NPDE-t7<J ^ R I T f ( I W . 1 3 H ) K, X ( K ) , (TS( J) , J s I,IP)8 3 / » « : u i8 1 « E T U B M8 2 C8 3 C8 U C8 5 8 3 F O R M A T {/ji'JH « » * * * < , * * • * T l M F E , l p E 1 2 i y » l l H * * » • * * « * * * , / )8 6 9 W F O R M A T ( 1 9 H i * » « * « * « < , * * T i n t s , l P t l 2 , U » l l H * * * * * * * * * * , / )8 7 13i» F O R M A T ( 1 H D T s , i P F 1 ? . « , 1 3 H K P L O R p F R = , I 2 , / , 1 3 H T i * E S T E P S s # i a ,8 B I 1 8 H U T E V A L J A T T O N S = , I « # / f ! ! H C D T I " E = , 0 P f 6 , 3 , 9 H S E C O N D S , . )6<? HPI F O R M A T l\?H I X # 1 0 ( 5 X » A S - n r 1 H ) ) )90 1J0 FORMAT ( 1 X, 13, lPEl",?f 1 >( lpf 12,0) )91 1 5P F0R"4T C1H1)92

75

Page 80: LA-7595-M U MOL1D: A General Purpose Subroutine Package

SUBROUTINE SOLPLT

1 SUBROUTINE SOLPLT(NODEf T,L/2,I<MOL)2 C5 C DDMMy SJB«OUM«EU C THIS SUBROUTINE SHOULD BE REPLACED WITH EITHER THE5 C CALCOMP O« PLOT.IB TEKTRONIX SOLPLT ROUTINES IF6 C ONE OF THESE SYSTEMS IS AVAILABLE7 C8 RETURN9 END

76

Page 81: LA-7595-M U MOL1D: A General Purpose Subroutine Package

SUBROUTINE SOLDMP

J SUBROUTINE SOLDHP(NODE»U.INDEX)2 C3 C PRINTS OUT RELEVANT INFORMATION IN CASE OF FAILUREli C5 COMMPN/GEAR1/T»H,HMIN,HMAX»EP5,UROUND,N,MK,KFLAG,JSTART7 C0MM0N/GEAR3/ERR0RC2)9 COMMON/GEAR 9/ HUSED»NUUSED,fj'sTEP,NFE,NJE

IB C0MMON/M0LCl/I»ML»CPUT|NStoE,NPTS,KEQN.KBC,M0UT,DX»DU,XC2)

in C0MMnN/M0LC5/M0RD(?) /l!s C0MM0N/H0LC6/BDRV ( ?) /Id £OMMrjiv/MOLC7/F f 2) /\'l D I M E N S I O N U(NODEil!\P> DATA (Hrtn«O) , 1 = 1, Vi»W5H MOT »5HC0MP,, 5HFFT A,5HPPR0*,5H 2ND ,1« 1 5HOR0ER.5H ,^'H ,5 H aTH ,SHORDER,5H ,5H ,2B 1 5H 6TH ,5H0R0ERf2J DATA IHBLK/5H / /,IHNOT/5H NOT /22 C2J C I N I T I A L I Z E COX'STAvTs TO BE USE" IN2« C25262?2B2930 DTcH/31 IF(^T,LE.3.0) DT=1.332 DTisi./DT33 CTS2I=2./(DT*DT)3fl C35 . CPU-CPUT36 CALL SECCND(CPUT)37 . C P U B C P U T - C P U3ft C39 C CALCULATE F(T,X,J,UX#UXX) IF NEEDED40 C •**•****•**«•*••<Ul C

DO 10 Iel,NODE10 F(I)e0.0

DOTFt^0RD(NP2+I),NE.I») GO TO 30

"OTTfONTINUE

c« 9 C F NOT USED50 C51 BO TO T052 C53 C F USED5ti C55 10 IX=156 CALL FUNC(F,U,UR,IJXXIT,X(IX),IX,NPDE)57 IFCIX.GE.NPTS) GO TO «SSB IXBIX+159 DO 4{! I»IX,NF'TS60 Jc(I-n*NPOE*l

77

Page 82: LA-7595-M U MOL1D: A General Purpose Subroutine Package

61 CALL FUNC(fr(J)»U(J.l),UX(J),UXX(J),T»X(n»I,NPDE)62 «0 CONTINUE63 <|5 CONTINUE64 C65 C END OF F CALCULATION66 C * * * * * * *» *»* * * * * * * *« * * * * *» i» * * * * * * * * * * * * * * * * * * *67 C68 7P CONTINUE69 C70 C WRITE HEADER71 C72 IL=IL+1«73 IFUL.GT.6?)7a IFCIL.LE.62)75 IMlL.GT.b2) ILsU76 C7778 C79 DO 110 K s l , N P n F6? I l = t l * W P T S + U61 I F C I | . , L f . 6 P ) x " I T E C I w » 1 5 P ) K8? I F ( I | , G T . b P ) rf*ITECI*» lbf») K83 I F ( l L . r . T . b C ) I L = N P T S * 1 28« I F C K B C . E Q . J ) T L S T L + 185 C66 C WRITE BIKINDARV CONDITIONS87 C8 * I M K B C . E O . l ) GO TO 8!"89 I F ( K P C . E Q , 3 ) WRITECIW, 17PI)909i92 GO TO 9993 C9U 8? W R I T E C H , 1 9 P )95 9? XMsxM)>r>X

9798 XP2=XP+0X99

la?1 3 1 C102 C C*EC* I F JTT I S A V A I L A i ^103 C

105 IFtN3JSED,GF,251C6 IF(NQjSEn,LT,?) DTS2I = P.H1S7 C18P C WRITE SOLUTION AND ITS DERIVATIVES1P9 CU P111II?l!3 W R I T E (IK,2]PI) M H O » ( M l ) » H H D R f Ml + 1)lit115116 DO 1[M I s l . N P T S i1 1 7 J = C I .llfl 0TsU(11"1 2 ^ l i l i * W B J r F C I W , 2 3 B ) : i » X ( I ) , U C J . 1 ) , J T , J X f J ) , U X X f J ) , F ( J ) f

Page 83: LA-7595-M U MOL1D: A General Purpose Subroutine Package

121 1 ,YMAX(J),ER*OR( J)12? 110 CONTINUE121 CIZU HETJRN125 C126 120 FORMATdHl)127 1J0 FORMATC//)126 U 0 F0R*ATC2«H Dj^P CALLED AT TIME » ,lPE12,U,//,IX,0PFIB.3,12<9 1 JJH CPU SECONDS SINCE THE LAST PRINT,//,7H DT • ,lPEl2.a,130 2 6H ox * ,iPEl2.»f/,l6H T"E U S T SUCCESSFUL 7l«E STEP USED A , 1 2 ,131 3 1«H ORDER METHOD .llHttlTH DT s ,lPfl2,U,//,132 fl 3«H THE EQUATION HAS BEEN INTEGRATED,IU,17H T5*E STEPS USING./,133 5 1X,T«,18H UT EVALUTIONS AND,I«,?1H JAC03IAN EVALUATIONS,//,13" 6 J6H THE GEARB ERBOP- FLAGS ARE| K F L A G E , 13,/, 29X, 7 H I NDEX =,13)135 150 FORMAT!/,IPX,1JH*«******** U(,I2*12H) *******»*•,/)13b 16^ F D R ^ A T f 1 H 1 , I P X , 1 3 H * « * * * * * * * I » Uf,I2,l2H) ••***•****,/)137 17P" FORMATflT-H FREE BOUNHARY C")138 IBP F0RMATC55H BOUNDARY CONDITIONS OF THE FORM A*U*P«UX=C X =,13" 1 1PE10.2,5H A a,iPE12,«,5H B s,lPE12.«,5H C =,lPE12.«,/,53X,U P 2 5 H X = , l p E 1 0 , 2 , 5 H A s , i P E i 2 . « , 5 H B s , l P E 1 2 , « » 5 H C s , i P t l 2 , a )\Ul 19(» F O R ^ A T ( 2 < J H P E R I O D I C B O U N D A R Y C O N D I T I O N S )U ? 2 3 0 F O R M A T f / , 2 7 H D U M M Y P O I N T S A D D E D AT X = , ] P E l 2 , u , 5 H U s , i P E l 2 , « , 3 (U 3 1 / , 2 3 X , U H X a , 1 P F 1 2 , « , 5 H U s , ] P E l ? . < 0 )U a 210 FORMATf/, u0X ,2A5 ,2x ,2A5 , U X , 2 A 5 , ? X , A5,5HC0Mf.^ 1 i x , R H T E M P O R A L )U 5 ZiZ FORMAT(«hH I X J UT UX ,U b 1 61H UXX F FX UTT UMAX ,1U7 2 H h ERROR)l a f i f j d F O R M A 7 ( 1 X , I 3 , 1 P E 1 0 . 2 . 8149 END

79

Page 84: LA-7595-M U MOL1D: A General Purpose Subroutine Package

SUBROUTINE DIFFUN

1 S U B R O J T I N E D I F F U N ( N O D E r 7 , U , U T )2 C5 C S U B R O U T I N E TO C A L C U L A T E T H F D E R I V A T I V E S FOR T H E ODE S O L V E Ra c5 COMMON /MOLC1/ I", I L I C P U T , N P P E ( N P T S , K E Q N , K B C # M O U T , D X , D U , X C?)6 COMMON /MOLE*/ NRJN,UROJNDT COMMON /"0LC2/ U<t?)S COMMON /MOLCJ/ UXXf?)9 COMMON /MOLCU/ FX(?)

IB COMMON /MOuCS/ HORD(?)11 COMMON /MOLC6/ BPRY(2)12 COMMON /MOLC7/ TS(?)15 DIMENSION U ( B ) , UTC2)11 DATA INIT/0/15 C16 IF (INIT.EO.NSJrO GO TO ?317 C18 C INITIALIZE LOCAL CONSTANTS O N FIRST Cull19 C2fl NP2 =21 NPJ =2? u>6 :2i NP7 e2" M P B S25 Nf»9 s2b NMP a27 NMP2 :2S NMP3 a

29 NPTSPl = NPTS*130 0XS12I s 1,/(12,*OX*PX)31 0X121 s 1,/(1Z,*DX)32 C33 C SET MFX « ? IF F« IS NOT COMPUTED3" C -1 IF UPSTREAM DIFFERENCES ARE USFD TO COMPUTE FX35 C +1 IF CENTERFD DIFFERENCES ARE JSED TO COMPUTE FX5b C37 MFX s p)38 DO 1 Pi T « l.NPDES<> IF ( M 0 R D ( N P 2 * n . L T . - l ) «Fx s -1«f 10 IF ( M 0 R D ( M p 2 * I ) , N £ . P . A N D . M F x . E D , C ) MFX * 1til CU2 20 I N I T s N R J NU3 C«U C * * » * E V A L U A T E THE. B 0 J N Q A R Y C O N D I T I O N S«5 Cuo CALL BEVAL t^ODE,T#J)«7 C46 C**** CONSTRUCT UX AND JXX09 C50 CALL JDE« (N0DE,U,UT«TS,TS(NPTSP1) )51 C52 C**»* EVALUATE BOUNDARY CONDITIONS GIVEN RY53 C50 IF CKBC.LT.3) GO TO 5f55 DO U0 I g 1,NPDE56 IF (MORDUJ.NE.PO GO TO 3057 LJX(I) s58 UXfNMP*I v

59 10Xi2I60 SP TF CMORDt^PDEtl).NE.0) GO TO OP

80

Page 85: LA-7595-M U MOL1D: A General Purpose Subroutine Package

62 1 lit I ) J * O X S 1 ? I63 U X X ( N M P * I ) s ( - ( U ( N M P 3 * I ) f B D « Y ( N P 9 * I ) ) » l 6 t * ( U ( N M P 2 » I ) * B D U r f N P 7 + D )

65 US' CONTINUE6b 59 CONTINUE67 C68 C«*** CONSTRUCT Fx69 C7? IF (MFx.NE.eo CALL FDER ( V O D E , T , U , U T » T S , T S { M P T S P I ) # M F X )71 C72 C**** CALL SUBROJTINE PDE TO DEFINE UT(I)75 C71 IXsl75 C*LL »DE(JT,U,UX,JXX,FX,T,X,TX f

76 I K I X . G E . N P T S ) GO TO 6577 IX=Ix+l73 DO 6P I s IX,MPTS79 J = f I - n * N P 0 E * l83 bV CALL POE (UT(J),U(J),JX(J),UXX{J),FX(J),T,X(I),I,8) 65 IF (KBC.EJ.l) RETJ9N8? C85 C**« ADJUST FO5? B(X)s0 AND A(K],NE,(» ON THE 80JN0APY8« C85 1 .86 DO IP J c87 IF ((ABSfBDRY(Np?*l)),L£.TOL),ANn,(*BS(BD«V(T)),GT.TOL1) UT(8B m = O.P8 9 »F ( ( » B S C B D R V ( N P 3 + I ) ) t L E . T O L ) , A N D , ( A B S ( B D R V ( N P O t * I ) ) . C T , T O L )

90 n U T ( N M P * D * e,p91 7PI CONTINUE92 C931U END

Page 86: LA-7595-M U MOL1D: A General Purpose Subroutine Package

SUBROUTINE BEVAL

IUBR0UTINE BEv*t (NODE.T.J)23a5678

IB1112131015161718]Q

2 PI212223212526272829303132333<J353637383 9

U041«243at!as

CCC

cCccccccccccc

c

ccc

1c

SUBROUTINE TO EVALUATE THEAND CONSTRUCT APPROXIMATE

BDRY(*,NPDE) B WORKINC80RYC1,!) i8D«?Y(2,I) iBt>RY(3,I) iBDRY(U,I) iBD3Y(5,I) !80RY(6,I) iBDRYfT,!) i

e A(l)i *{?)« 8C15> B C 2 )e C ( l >» C f 2 )» um

BDRY(8,I) s J U )B0RY(9,I) E u mBD<mi0» I)= J CI)

COMMON /M0LC1/ IW,IL»CCOMMON /MOLCh/ BDRY(2)

BOJNDARY CONDITIONSPOINTS OUTSIDE THE GRin

VARIABLES ASSOCIATED WJTH THE BOJNDARYFORFORFORFORFORFOR

umU(T)

umucnumum

AT tXeX(l)-DX)AT C X B X ( N P T S ) V D X )

AT (XsXCt)»2*nX)AT (

PUT,

COMMON /MOLEX/ NRJN,LIRDUN3DIMENSION UC?)

DATA INIT/fVIF (INIT.EO.NRUN) GO TO \d

INITIALIZE LOCAL CONSTANTS

NP2 B ?*N?DENP3 S 3»NPDENPA E <i*NPQENP5 s 5*NP0fNP6 x 6*NPDENP7 E r«NPDtNP8 B 8*NPDENP9 s 9«NPDENMP E NODE'NPDF.NMP2 s N03E-2*NP0ENMP3 s NODE-J*NPDENMPU g N0DE»«*NODENMPPj s MMP*1DX3 « 3,*DXINIT s NRJN

0 CONTTNUE

rp tnof re ^; £<•

X(NPTS)*2*DX)

N P D E , N P T S , K E 0 N , K P C , M O J T , D X I , D U , X C 2 )

ON FIRST CALL

U6 Ca7 £*** PERIODIC 80UMDARY COMDITTO^S46 C«<J to ; n i I,NPDE50 BDRY(NP6*D "51 B0RYtNP7*I) • U(I)52 B0RY(NP6*I) •33 B0RYfNP9tn •5U 2B CONTINUE55 RETURN56 C57 C*** BOUNDARY CONDITIONS OF TH£ FORM A*U*B*UX=C56 C OR FBEF BOUNDARY59 C6P 57 DO 35 I»l»NPb

82

Page 87: LA-7595-M U MOL1D: A General Purpose Subroutine Package

6t 1562 I F . ' K B C . N E . O C i L L pKD*r ( T , U( 1 ) , BDRYf J) , BD»Y( HPZ* | ) i BDBY (NP<U ) )63 1 , U ( N M P P l ) , b P R Y ( N ( > D E * l ) , B D » Y ( N P 3 * l ) | B D f » Y f > : ? 5 * l ) » ' g j ' D E )6<J C65 T O L s J 0 , * U R O U N D66 DO JJZ I c 1»N*DE67 C6S C*« B O U N D A R Y AT 8 ( 1 )69 C70 IF C A B S ( B D R Y C N P 2 * I ) ) . G T , T D L ) GO TO S"71 IF ( A B S ( B O » Y t l ) ) . B T . T O L ) 50 TO <|07? C75 C* FREE B O J N D A R Y * J S E C U B I C E X T R A P O L A T I O N7U C75 B D » Y ( N P 6 + n « «,»c'JC I) + U(I + N P 2 ) ) - 6 . « U ( I + w p D t 5 -76 GO TO 6PI77 C78 C* B C X ( m B 0,B« Ua* / C USE CUBIC E X I R A P D L A T ION7" C

81 3D«Yf N P 6 + I ) = U , * ( i l ( n + U ( I « N P 2 1 ) « 6 « « U ( I * N P O t ) » U t82 GO TO 6383 C8 1 C* B ( X < i n , N E . l ! . C ! « * * J + B * U X s C85 C86 C CHECK IF JX e 0,0 AT YHE bOU^OARY67 C

88 50 IF (RD» Y ( 1 ) , E Q , 0 . 3 . A N D . B D I } V C H P U » I ) , E Q , 0 , 0 ) GO TO 708<? C

) *91 l C n - 6 . * J ( I + NPDF) i•J{I•^P2))92 C93 fc0 CONTINUE9U C95 c U S E C U B I C E X T R A P O L A T I O N F O R F I C T I T I O U S M O T N E X T T O T H E B O U M D A R Y^6 C97 BDRYCNP8*!) B <l,*(8L)RY(Nf-b+IUU(UMpDE) 3»6,»U(1)-UCI*NP2)9B GO TO B399 C

10P C UX e 0,y AT BOUNDARY REFLECTION IS USED101 C102 70 BDRYCNP6+U * U(I»HPPE)103 50RY(NP8»I) c U(I»N'P2)108 C105 C** BOUNDARY AT X(NPTS)i at C107 SP I F ( A B S ( B D R Y ( N P 3 * - I ) ) . G T . T O L ) GO ro JPIH108 I F ( A B S ( B D R V ( N P P E * I ) ) . G T . T O L ) GO TO 90109 C110 C* FRE E B O U N D A R Y * j5E C U B I C E X T R A P O L A T I O N111 C1 ' 2 B D R Y ( N P 7 * I 3 « K , * ( U i ; N M P * T ) + U t N M p j + I ) ) . 6 , * J ( N H P 2 + n - J f N ^ P a * I )1 1 3 G O T O H PM a c115 C* B ( X ( N P T S ) ) s 0 , » « U = /4 JSE CU8IC E»T RAf-OL AT I CN116 C117 9ii(> G O ro12P C

83

Page 88: LA-7595-M U MOL1D: A General Purpose Subroutine Package

121 C* B(X(NPTS)).NE.0.P* A*U*B»UX«C12? C1?3 C CHECK XF UX « 0,P AT THE B0JNDA9Yia<i c125 100 IF CBDRYfNP5*I).EQ.a,0,AM3,BORV(NPDE*l),C3.H,0) GO TO 12 £»12b B D « Y 7 I ) D k 3 D127 1-0,5*(J,128 110 CONTINUE129 C130 C USE CUBIC EXTRAPOLATION FO" FICTITIOUS NOT NE»T TO THE BOUNDARY151 C

iit GO TO lie

us c136 C UX B ji.p AT BOUNDARY REFLECTION IS HSfD137 C138 120 SD^rcNP7*I)J39 B0RV(NP9*I)IIP 130 CONTINUEU 2 END

84

Page 89: LA-7595-M U MOL1D: A General Purpose Subroutine Package

SUBROUTINE UDER

1 IUBROJTINE U D E H f MODE,lM'T»TSSf TSI)z cJ C JU8R0JTIWE TO C*LC^L*TE UX AND U*X0 C5 COMMON /MOLC1/ JW, lL»CPUT,NPnE,N«»TS,KEI5Nf KBC,MOJT,DX»OU,X(2)6 COMMON /-MOLE*/ NBJM,UI?OUWD7 COMMON /MDLC2/ U*C2)P COMMON /MOLCJ/ uXX(2)9 COMMON /M0UC5/ MOHD(2)

10 CO"MON /^OlCe/ BO<!V(2)11 DIMENSION O t e ) , U T C 2 ) , T S S ( 2 ) , T S K 2 )12 C13 C**«* CCINSTRLI'T UX AND JXX B* FINITE DIFFERENCES1« C15 DATA INIT/P/IS IF (INIT.EO.N'IUNO GO TO IB17 CI B C I N I T I A L I Z E L O C A L C O N S T A N T S f l N F ] C t s T C A L L1 " C

212223 NP7=T*NPDE

2526272829*P NPTSHsNP?S/231 DXIel./DX3? DXHI-a.5/DX33 0X121=1,/tJ2.«Pxl3" DXSIsl./(DX*n$!)35 0XSl2Ial./(l2,*DX«DX)

37 DXX6s]./fDX*Dx*l80.)38 PI=ACOS(-1.)

0 0 N 2 P 0 W B A L O G ( F L O A T ( N P T S ) ) / A L O G ( 2 . ) ' > D U(II«2«3 INITsNRJNMM i» CONTINUE

as c«b DO 2fe0 Iel«7 CaP C**** FINITE DIFFERENCES FOR UXtt<» C50 IF (MOUDCI).EQ,0) r O TO I 3?51 IF (MO^D(I) ,FQ,2) •. *• TO 7352 IF ( M p R D t n , E 3 , « ) UO TO 9353 IF (»0(?0tI),El3,6J GC TO il 05« C55 C**«*******************»************************************ ************Sb C*»* FFT APP!?OXTMATION OF UX57 C59 Kel59 DU 2P> J=I,NODE»MPDE60 T3R(K)«JCJ)

85

Page 90: LA-7595-M U MOL1D: A General Purpose Subroutine Package

65 TJI(K)«0.B62 20 K«K+16* C64 C TAKE F D J U E R TRANSFORM65 C66 CALL fF' »«? ( N ? P O ^ , T S R , T S D67 C68 C SAVE FT If NEEDED F O « UXX69 C70 IF (M0H0(NP0E + I).NE,l) GO To71 NKuNPTS72 DO JPl K B ? , N P T S H7J U

75 507 6 L J T ( N K ) s T $ ' » ( N K )7 7 C76 C NDTEo TS I f ^ K ) s . 1 , 37 9 C83 4 0 CDNTJMiE81 C8 ? C M J L T I P L V B Y P H A S F F A C T O R S , N r T ^ A l . I Z E C O E F , , C H A N G E S I G N O F U l8 3 C A ^ n F J L L J P P t » H A L F O F S P E C T P . J H » < I T H C O M P L E X80 C85 TSR(|)s2,e86 TSI(l)c0.08V NKsNPTS88 DO 5E K = 2,MPTSH89 • H A S E s F T X » F L O A T ( K » ! )

91 T S I ( N K ) 3 T S R { N K ) * P H A S i T

92

9II 50 NKsNK- l05 T S I ( N K 5 s - T S R ( f K ) * F T x * F L 0 A T ( N P T S H )

9 7 C<?A C F I L T E R FFT I F NECESSARY<?q c

J Of" IF ( M 0 R D m . E Q , - n C A L L F T F I L T ( N P T S , T S R , TS I)1/1 CIB? C INVERT FDJRIER TRANSFORM183 C1KU CALL F F T 8 U ? ( N 2 P 0 « , T S R , T S 1 )1 0 5 Ci 'Jb C e T O R F T M (^1 3 7 CI P fl K = 1109 DO 6P Je I # MODE»N"DE

H i 60 K»K+111? C113 C*4« E^D FFT APPROXIMATION OF yX1 1U C115 GO TO 13P1 16 C117 C * * » * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * iJIB C**» SECOND ORDER SPATIAL DIFFERENCES FOR JX1 19 Ci?n 7f« CONTINUE

86

Page 91: LA-7595-M U MOL1D: A General Purpose Subroutine Package

121122123 DO Si*12U 80 UXt J51J5 U X t n

127 C12B GO TO ISP129 C130 C************************************************'********************''**131 C**» FOURTH ORDER SPATIAL DIFFERENCES FOR u*132 C135 90 CONTINUE

135136 DO 1I»0 JsJ*, JP.NP3E137 13P138

1«2 1DX12I103 GO TO l3d1 a a c1U5 C « « » * « * * * * * * « « » * « * * « * * * » * * * * « * * * * * * * * * * * * * * « » « « * * « * « < « * • * • * * * « • * * • * • • * * *1«6 C * * * S I X T h O ^ D E R S P A T I A L D I F F F R f N C E S FO» UX1U7 Clas 110 CONTINUElap JMONP3+I150 jp=NMPa*i151 DO 12a J=JM,JPfNPDE152 1215315« C155 JFtKBC.EO.n GO TO 125156 J=NP?+I157158159 IJXC J3 = C J f J - N P 2 ) - B , * C U ( J - N P D f ) - U ( J + NPDE) ) < - J C J * N P 2 ) ) * D X l ? I160161162 lJXCNMP2+l)scU(NMPa*I)«B,*(U(NMP3*l).UC K'MPtI) 5-BDRY ( N P 7 + I ) ) *DXJ 2116316" 10X121Ib5 GO TO 13d166 C167 C PE"IO0IC BOUNDARY CONDITIONS168 125 CONTINUE169 J«I170171172 JsNPriE + I173 LJXtJ) = (-i17« 1 -U fJ-175176177 l.uf J-NPDF)178 JsNMPvT179180

87

Page 92: LA-7595-M U MOL1D: A General Purpose Subroutine Package

191182 )163 l»UCJ-NP0F)))*DX6(»I

185186187 C188 C*»*» FIMJT£ 0IFF£'»ENCF3 FOR UX'K189 C192 110 IF (HO«O(NPOE+I).EQ,0) GO Tn 26019i IF (MO»D(NPDE*I).EQ.2) CO To 200192 IF (HORCKNPnE + 1),EQ,«) GO To193 IF (M09D(igPDE*I),E0.<>) GO TO19U C195 C»««**»**** *•**•»** *»*«»****«*«»***««**»»*•****** it**19A C**« FFT 4PPRr>>;IM*Tl0N OF UXX197 C198 IF ( M O R O U J . N E . n GO TO 15(»199 C2 a ? C FT OF i» IS ftV*lL*BLE F^OM C O M P I I I I O ^ ' 5^ OK2fll C

203?0« 00?05 PH4 jF = FTXX*FLOA'f C (X-206207208 TSI

TSKK)K-TSI(NK)

- . :UT(NK)*FTXX*FLOAT212 TS! CNK) ip.P1

213 00 TO 1SPZl« C215 C FT OF U IS NOT216 C21 7 150 Ksi21S DO 16? J»I» MODE, NP[5E219 TSSCK)sJ(J)

?21 160222 C223 C TAKE FOJPIER22« C?25 CALL FFTSU2 CN2P0*,TSR,TSI)226 C227 C MJLTIPL* BV PHASF FACTORS, NORMALIZE CO£F,, CHANGE SIGN OF Ul228 C AND FILL JPPER H A L F Of SPECTRJ" W I T H COMPLEX CONJUGATES229 C230 MKCNPTS231 T S R ( U * 0 . a23? TSI(l)«a.?233 RO 1T0 K B ? , N P T S H

235236 TSP. (NK)237 TSICK)sTSI(NK)*PHASE23S TSI(NK)B»TSI(K)2 3 ' 170

88

Page 93: LA-7595-M U MOL1D: A General Purpose Subroutine Package

Z«23433 u U

2«52«62472U82u<525P>25125225325«25525b25725P25«

26126?

260

£9526626726826?270

C

c

ccc

ccc

c190

C * A *(•L

cc*fL

INVERT FOJRIER TRANSfORM

CONTINUE

FILTER FFT IF NECESSARY

IF (MORDCNPDE+n.EQ.-l) CALL F T F R T (NPTS, TSR, TSI)CALL FFTBU2 (N2P0rt,TSR,TSI)

STORE IN l)XX

KBlDO 196 J B I , N O D E , N P D EU X X ( J ) B T S R ( K )K = K + i

END FFT APPROXIMATION OF jXx

GO Tn ?feW

^ _A. A A ^ J i. L .A. _fc. *. ^ ^ _ A ^ . t - L * #'i.A.AA ^ ^ _L .1. A J. A. ^ A A ^> ^. ^ A A A ^ -A. ^ -A. .4. .b ^# A A ^

** SECOND ORDER SPATIAL DIFf£ RENCES FOR UXX

203

210

CONTINUEJMsNO^EtlJPBNMP2+IDO 21P J=JM,Jp,NPDEL)XX(J)s(U(J+NPDEl-2.*J(J5*UC,I»NPDE))*DXSI

27127?273 GO TO 2b("27fl C275 C**«**a*********»»«******«*»*»*»*<.*•**•****••*••*•*•***•***27b C**» FOURTH ORDER S B A T I A L DIFFERENCES FOR UXX277 C27B 220 CONTINUE279 JMsNPj+I260 J P B N M P 5 + I281 DD 21S0 JsJM, J P . N P Q E2B2 2J? UXX(j)s(»CU(JtNP2)+U(J»NP2))ti6,*tUtJ+NpDE)+U(J-NPDE)j-30i*U(J))28J 1*DXS12I

285286287 1U(I))*DXS12I288 JXX(NMP2*n =28s* l-Jfc,*J(NM»2+I) )*DxSl2I

291 1-3C2<?2 C293 SD TO 26P29U C

29b C**** SIXTH ORDER SPATIAL DIFFERENCES FO"297 C298 ?«3 CONTINUE299303

89

Page 94: LA-7595-M U MOL1D: A General Purpose Subroutine Package

DO 25(5 J B J H , J P , N » D E

•if"5 IFCKflC.EQ.l) GO TO ?

J*DXSl2T

M B UXX:j)«c«CU(J*NP?)»j(J-NP2))*i6 s*(U(J+NPDE)tU(J-NPDE)).30,«u(J))M l »*C<S12T2 122133 103 i S 1 J t 1) ) * D !•. 3 1 ? I3 1 6 J X X t N M P 2 * I ) = ,51 7 l - 3 V , * J ( N M P 2 * l ) ) « O x S l ? I3 1 P U X X t M M P 4 T ) = f - ( J ( N M P 3 * I ) 4 R 5 « Y C M P 9 * I ) ) * 1 6 . « ( U ( N M P J * I ) • P D 9 r f »Jp 7 43i<? I - J P , * jr M H ?

321 GO TO ?bP32? C32^ C P f l O T T C B3?u 2b5 CO^TI^,lE

Jsl

32 T 1 4 2 7 0 , * C U ( N H P 4 l ) 4 J ( J + N P D E ) ) - U 9 P , * U ( J ) ) » Q X X 63 2 8

3 3 C3313 3 ?3 3 3 1 +27(>,* (Ut J - N P 0 E 3 4LJ( j 4 N P n E ) ) - 0 ' ? / , * U ( J) ) * O X X b

3 35 U X X ( j) = ( ? . * ( U( J - N P 3 ) + J { N P 2 4 i ) ) . 2 7 , « c i l ( J . N P 2 ) 4 U ( N P D E 4 T n3 3 b 1 427P.,*(l.i( J - N P D f U U ( I ) ) - U 9 ^ , * J f J) ) * O X X b3 3 7

3 3 " 1 4?76«,*(U( J - N P D t ) • J( j4MPDE))»«9i).*l.'C J ) ) * T X X b

U X X ( J ) s ( 2 . * ( U ( J « N P 3 ) * J C I ) ) - 2 7 , * C U ( J - N P 2 ) * j ( j + N P 2 ) )

1 4 2 7 P I , * ( U ( J - N P D F ) » J ( J + N P r ) E ) ) p a 9 a . * U ( J ) ) * Q X X b

C

lull 2bP! C O N T I N U E3 a f j C

Jufc C Ek-T) D I ' P E ' r i V T t C * L C j L A T i f l M S FOP JS AND UXX3 U 7 C

3a<? END

90

Page 95: LA-7595-M U MOL1D: A General Purpose Subroutine Package

SUBROUTINE FDER

J 9J8R0JTINE FOE» (NODE,T,U #UT,TSU,TSI,2 C3 C SUBROJTINE TO C*LCUL*TE Fx« C5 COMMON /GEAR?/ yM*X(2)6 COMMON /MOLCl/ Jrt, lL#Cf >UT,NPDE,NPTS #KEQN,KBC,M0JT ( 10S,0U,X(2)7 COMMON/MOLE)'/ MBUN#l)ROUND8 COMMON /HDIC?/ UX(2)9 COMMON /MOLCS/ UXXC2)

10 COMMON /MOLC«/ FX(2)1! COMMON /MOLCS/ W0R0C2)J2 COMMON /H0LC6/ BPRV(2)U DIMENSION U ( 2 ) , UT(2», TSR(g), T S H 2 )iu CS5 DATA INIT/C/16 IF (INIT.EQ.NRUN) GO TO |?17 CIS C INITIALIZE t- n c A I. CONSTANTS ON FI«ST CALL19 C —

21 NP3 s22 NMP s MOPE"NPDE21 NMP2 s NO3E-?*NPDE2U NMP3 s N O 3 E " 3 * N P D E25 NMPa s NODE-u»NPDE26 NP>SH e NPTS/g2? DU2 s DJ+DU2S DXI E l./DX?<? OXHJ r 3.S/DX3PI DX6I e l./(6.»0X)31 DX12T s l,/tie.*OX)32 DX6PI s J,/{t0,*D?)33 PI s *COS(-1.)3a PI? s PJ+PI35 N2P0w s AL0G(FL0AT(NPTS))/AL0G(2,)*DU36 FTX c .(PI2*DXI)/FLOAT(NP V*NPTS)

38 IV CONTINUE3<> IF fMpx.GT.l?) GO TO 61?40 CUl C BOTATEO DIFFERENCE^ FOR FxHZ C* ESTIMATE THE DIRECTION OF THE CHARACTERISTICSHI Can 00 3i» i45 J s (1-1)«NPD£«6 DO 2C KU7 DJU «a? 2B TSR(K) »50 J a J+I51 CALL FUNC (FX(J),jT(J),UX(J),uxx(J),T,XfI),],NPDE)52 CALL FU^C (UTtJ),TSB#UX(J),UXXfJ),T,XCl)#I,NPDE)5.3 30 CONTINUE5" C55 C*56 C* COMPETE PF/DU W I T H CENTRAL DIFFERENCING AND STO^F IN FX57 C5S DO 5B I • 1.WPDE59 IF CM0RD(NP2*I),G£.e) GO TO $J)60 JP s

91

Page 96: LA-7595-M U MOL1D: A General Purpose Subroutine Package

61 C62 C FX(J)»=.OF/DU65 C6« DO U0 J • I,JP/NPOE65 (10 FXCJ) s (FX(J)-UT(J))/(DU2*YHAX(J))6b C67 50 CONTINUE66 C6» C USE UT AffPAY tO TF.*PO*ARLr STORE F(X)70 C71 60 !X=172 C*LL FUNC(JT,U»U)<,UXX'T,X,I73 2F(ZX,6E.NPTS) GO To 757U IXelx+j75 1)0 7H 3 ! IX.NPJS76 J s (I-n»NPOE»l77 7fl CALL F1IMC CUT( J) , rJC J) , UX ( J) , UXX ( J) , T. X ( I ) , I, NPOE)78 7S CONTINUE79 C80 DO 2T«l I = \tKi°DF81 IF (M0B5(NP2«I),E3.8) GO TO ?7n8? IF ( H 0 R D C M P ? » I ) . F 3 , 2 ) GO TP u!»83 IF f P R I f N P ? * D ,E3.o) GO TO jun8U IF (MpusrNP?*I),E3.6^ CO TO J7P85 IF (Mf)i»3(NP2*I)oE3..2) CO To 2138b IF (MOR3(MP£+I) 0E3.=«) GO To 2aa87 C86 C-*'***************** •>•*•««•*«••**«•***•*•*•»***»**«***»»*»•(***»****»**69 C«*» FFT »PP«DXIM*TION OF FX9P C<>! « = i92 00 8PI J s I,*ODfc,MPDE^^ TS»(K) s JTCJ)"" TSH*) « a.P95 SB K s Ktl96 C97 C T*KE FOJRIEP TRflMSFD1?'!9P C99 CALL FFT8U? (N?»O^,TS?,TSI)

10? CIP! C MJLTlPtr 9V PHASE FACTORS, NORMALIZE COEF,, CH4MGE SIGW OF Ul10? C AND FILL JPPfH Ht\.F OF SPECT«U« WITH COMPUEX C O N J U G A U St("5 CIP" TS"»(l) c a.P105 TSI(l) = ?,y106 NK s MOTS187 DO 9p K B ?,MPT«MleP PHASE s FTX*Fl_OjkT(K-l J109 TS«(K) s «T$ICK).BHASE

M l TSR(NK) = TS"(K)112 TSI(K) = -TSI(NK)115 90 *4K s M K - 1

11" TST(^K) = -TS9(NK)«FTX*FLDAT115 TSS'NJK) s f»,fi116 CII' C FllTFR FFT JF MECESS*"*118 Cli1* n (-0B3('<P?»n,E3.-J) CALL F T F U T (^PTS, TSR, TSI)

92

Page 97: LA-7595-M U MOL1D: A General Purpose Subroutine Package

1 a 1 C INVERT FOURIER T»AN$F0RMI?? C125 C*I,L FFT8U2 t*8pn«,TSfMSl5J2" t125 C STORE IN FX126 C127 K « 1128 DO 13f» J s I , N 0 D E , N P D E12<» FX(J) c TSB(K)13& 1B0 K s Ktl131 C1J2 C*»» END FFT APPROXIMATION OF FX1 1 1 C13U GO TO ?7f»135 C1 3t> C * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * !•37 C«««« SECOND ORDER CENTRED DKFFRFNCES FOR1 3** C130 110 CONTINUEItt!" JP SIt] J*1 =i<i? no iaP» j sJ«3 t?0 F X ( J ) = ( JT{lua IF (K8C.F3,1) GO TO 130loS C1««> C UNCENTE*F.D DIFFERENCES FOR FX N£*H THl BOJMD*RVlot CU S F X ( n a (»3,«jTfl)*u,*JT(^PDE+I)«UT(N»2*I))*nxHl

lb* GO TO 27P151 C15? C PERIODIC BOUNDARY CONDITIONS153 C15« ISC FXfl) = {jT(I*NPOE)«UTfMM»+I))*OXHr155 F X ( N M p + n e ( j T ( n - j T ( N M P j * i ) )*DXHl15b GO 70 27P157 C158 C«*» END SECOND ORDER DIFFERENCE C*UCUL*TION15<J C1b? C«««**»«*****«*«»o*«««»«*o**»*»**«»«*«*«*»«***«»***«****»**«**«»*«*****«161 C*«*« FOURTH O P U R CEMTEPEO DIFFERENCES FOR Fx162 C163 \U^ CONTIMUE16" JM r NP2*1165 JP s N"P3+II6h DO 153 J = J^,JP,N»DEU 7 15H FX(J) e fJT(J-NP2j.8.«tUT(J-NPDE)»UT(J»NPDE))-UTCJ*NP2))*OX12I168 IF (KBC.FQ.l) CO TO lfcP16<» C170 C JNCENTERF.D DIFFERENCES FOq Fx NE»R THE BOJNDASY171 C172 FX( I > e C«22,«UT(I>»3b.*UT{I*N*DE)-i*,*UT(I*NP2)*U,«UTn*NP3>)*173 1DX12T17U FX(NPDFtl) « (-2.<iUT(I)»3,»LlTCNPDt*I)*6.*JT(NP2*n-LlTCMP3tn)*Dx61175 r x f N M P + n B (22.*jTCNHP»I)-3ft,«jT(NMP2*I)»ie.*UT(l«iMp3+Ij1,(4>«L)TC176177178 1*DX6T17« CO TO 27018P C

93

Page 98: LA-7595-M U MOL1D: A General Purpose Subroutine Package

181 C PERIODIC BOUNDARY182 C185 160 FX<*POE*J) s18" FX(I) s <J

18b [187 GO TO J7CIBS CIB"* C**» £M) FOURTH O'DER CEMEREO DIFFERENCES FOR Fxt'0 C191 C***«**»«*n****»*****«***#o****»*««****«**«**************»**«*«*********1 9 2 C * * # S U T H O R D L * S P A T I A L D I F F E R F N C E S F O R F X1 9 S C,'9«J 17f» C O M I MME1 9 5 J * s1 9 6 JP s1 9 7 n o i « a j s1 9 « I B P F X f J ) = ( . ; . ,19<? l M P D n - U T t J - f w P p E ) ) ) * D X b f I2k)k) I ? ( K i l C , F 3 . ] ) GO TO 1 9 H2 f M C

C M D N P F " ! 3 ^ I C R O J ' . ^ A P J E SC U N C E N T E R F D I I F F F P £ N C E S fn? FX ME.AU T H EC

2U5 J e NMP3+IPX(Ji sJ

211 FX(NPDFtl) s f-2.*JT(n-3,*UTCM»DL*n*6,*JT(Np?*T)-jT(MP^*I)).Dx6I212213

2152lh GO TO217 J9B CONTINUE2ie c219 C 'ERIOOIC

C

222 FX(J)22J 1 •«5.221 JsNPDE+122"^ FX(J) = (•22b 1 »«5.«( JT{227 jsMP2«i228 FX(J1 s ( . U T C N ^ P * D + U T f J * N P i ) * 9 , * ( U T f J - N P 2 ) -229 1 • f lS.of JTt J + NPOM-JTf J»NPDFn)*3Xb?I23? J B ^ M P + J231 FX(J) s f«UTCJ»NP3nUTCMP2*I ) t9 , * (UTCJ-MP2)-UT23223323« F X f J ) = ( » U T ( J - N P j W U T f N P 3 E + T ) + 9 . « f U T ( J » M P ? ) » J T ( T )2 3 5 1 • « 5 . * ( J T ( J * N P O t ) - J T ( J -23b JaNMP3+ l2 3 7 F X ( J ) s f *UT ( J - « » 5 J*lfT f2 3 8 1 + a 5 . * f J T ( J * N P O E ) - U T ( J -239 230 CONTINUE

C

94

Page 99: LA-7595-M U MOL1D: A General Purpose Subroutine Package

2u\ GO TO 27*2<*2 C2<i32nU Ca*»* SECOND OROF* ROTATED DIFFERENCES FOR FX2a5 C2«6 210 CONTINUE2U7 JM x MP2*I2«8 JP s N M P J * I

2«" DO 2?0 J s J*, JP.igPOE250 * = Fr.(J)251 F X ( J ) s ( C ) 6 .2 5 2 IF ( A . L T . - D U ) FX? Jl = (-5. *UT ( J) • « , * U T f , I * N P [ J E ) - JT t J * M P ? ) ) « D x H I

2 5 3 IF ( A . C T . D U ) F X ( J ) c ( U T ( J - N P 2 ) . « . *UT(J-NPDfc1 + 3 , * J T ( J ) ) 0 H I

25<* 22$ C O N T I N U E

2 5 S IF C * B C . F 3 , 1 ) Go TO 2J51

25b C

25 7 t:« N O N P E S I O O K BOJNr>APvS»

2 5 * C

2 5 9 F X ( I ) s C - 2 2 . * J T t T)+36.*'ITCl + \PDr ) - 1 P, «UT ( I * N P 2 ) *<i, «UT (

2 6 ? n x i a i) r f - 2 , * L > T ( l ) - 3 . * U T ( N o r > t * p « b . * JT (NP'tt )-jT(M263 n)

F X ( N M P ? * T ) = ( 3 , * j T ( K ' M P 2 » I ) « f c , • v j T ( ^ . • M P J • I ) • u T { ^ M P U t T 3 • ^ , • j T ( N " P * I )l*DXbI

266 GO To 27P2b7 C2fcfl C P E ' l n O T C2b» C27? 2 3 ^ *271 FXCNP.IEt!) = (dT(N*P*I)-B,*(!iT ri)»UT(272 TF ( » , L T . - O J ) FX(»jPr>E+I) s (-3. *!IT ( NPDE* 1) • <i. * uT f i.P 2* I) - JT ( NP3* I ) )273 UDXHJ

27u IF (A.r.T.Di') FX(NPnE»I5 s (3. *UT (NPPE+ I) ».i, »'./T (J) *'Jr ( N»«P* I))27S 4 s Fxrii?7b F X ( 1 ) z ( JT (K'Ht> 2 4ii.B 6»(UTtNHB + I ) . U T t l * ^ P D E ) ) - J 7 f I * ^

P2) ] »D« 1 ?I277 IF ( A . L T . - O U ) Fxfl) = C -3 , * UT C I) • U , * HT t I • *PPE ) - JT ( I • *-P? ) ) * OX H I?78 IF (i.RT.o.i) F X ( I ) : (3,«jT(I)-a.*UT279 A c Fl<fNMP+I)2ftB F X ( N M P * n = ( J T ( M M P J * 1 ) - B , * ( U T ( N H P 2 * I ) - U T C I ) )-UT281 IF (A.1.T..DU) FJ((MMp»n s ( » J , * j T ( N ^ P * n + a , * U T . ' I ) - U T ( U N P D E ) )»DxHI28? IF (A.GT.DU) F X ( ^ H P + I ) r ( 3, *UT( NHP+ I) •« , « UT C N M P ? + I) * UT ( H<*P$+ I) ) *283 1DXH12R« A S P X C N M P ? * ! )2 B 5 F X C N H P 2 + T ) = ( J T C N M P « * I ) - 8 , « ( j T ( W M P j * n - u T C N M P + I ) ) " J T ( T ) 5 * 0 X 1 2 12 8 b I F < A , I T , - P U ) F ) j f M M P 2 t T ) s ( - 3 . * Ll T ( N * P 2 + I ) + u , * U T ( N * P * I ) - ' | T ( I I ) *? 8 7 1 0 X H I268 IF (A.GT.DU) f X ( M M P 2 + I ) = ( 3. »:'T f NMp?+ I) . « , *•_, f ( \ M P 3* I) • JT f N M P U * J ) )28<> 1 « 0 X H I29P CO TO ?7f291 C29? C*»* EMP SECCN3 O"»OER R O T A T E D DlFF£P.EMCES FOR Fx293 C29U C*6»****»*»**»t******»*i***********a**<>**295 C* *« * THIun O^DE' ROUTED DIFF-F. FENCES FO"29b C297 2«P> C0NT7MIE29fi JM = MP2+I299 JP = NMP^+I30C 30 2"5? J = JM,Jp,NPnE

95

Page 100: LA-7595-M U MOL1D: A General Purpose Subroutine Package

301 A s FXfJ)502 FX(J) s C J T ( J . N P 2 ) . B , « ( U T ( J . N » P E ) " I | T ( J * N P D E ) ) » U T ( J * N P 2 )303 IF (A.LT.-DU) !="$( f Jl « ( • ?„ * JT ( J.NPDE ) - 3 , • JT ( J) • b, *UT t J* NODE > »UT ( J*5305 IF (A.GT.DU) FX(J) s (UTfJ»NP2).6,*uT(J-NPDE)*3,«jT(J)+2,*UT(J*306 lNP0E1)*DVbI307 250 CONTINUE508 IF (KBC.F3.1) EO TO ?b3309 C$10 C* NOMPERIODIC BOJNDsRrSx311 C31? FXCI) « C»22,*'JT( I) + 36.«UT(I*^POE)-lS,*uT(I + NP2)*<l,*UT(I*NP35 J*313 10X12131U5553163|7

J|9 GO TO 27P32P" C32 i C PERIODIC32? C32? 2b? L z F32U FX(NPDF*I) = ( JT f ^ D t n . e , * ( U T f n - U T ( I * N P 2 ) )-uT t325 IF C4,LT.»<H0 Fk(nP0E*U s (-3.*UT(NPOF*1)*t,32b l « 2 , « i a c n )*0V6l327 IF CA.GT.OU) F X ( N B P E » n = ( 3. *UT t NP0E + I) «t>. «UT C 15 +UT ( NM3 + I) • ?, * jT (32S 1I*NP2229 * « FXfl)

3 3 ! n ( 4 . L T . - P U ) F x ( I ) * « - 3 , * U T ( I ) + 6 . * U T ( I * N P D E ) - J T ( I • N P ? ) . 2 , * ' J T ( N K P3 3 2 1 * 1 ) ) * D X 6 I3 3 3 IF (A.GT.Oi.1) F X ( I ) s ( J , * jT(X)mbt*HT(H»P*n*<JT(^P?*:U2.*lJr (NPOE*3 3 " l i n * D X 6 l335 A i FxfvMS+I)33b F X ( N W B + n s ( JT(N«P3»I)-B.*C'JT{*J»'P2+I)«UT( I) )-NT ( NPDE+I) 1 • Dx 1 £l337 IF t«.L.T.-DU) FXC\''P+I) = C-3 , * JT ( MMPt T ) *6, *UT ( I)-UT ( 1 •NP&E) «"2, *'.IT33 3 " I F ( A . G T . D J )" ^ ^ 1 * J T ( T ) ) * D x b !5 « 1 A s F X ( N M P 2 + 1S * ? + I ) s )

( A . L T . - O u ) F S C " J " P 2 t I ) s f - 3 . * : ) T ( N M P 2 + I ) + 6 , « U T ( N M P + I ) . u T C I ) - ? , *

3 U 5 I F ( A . G T . D U ) F X ( k l i P 2 + I ) = ( 3 . » U T ( N M P ? » n - 6 . * U T f N M P 3 + I ) + J T ( N M P « * I ) t3 T D X3 o 7 C

3 « R C * * » * EMH T H I R D D R D E ' S O T A T E O r>I FF E ^ F N C E S F D " F x

3 « 9 C

35? 27P" CONTINUE351 » E T J B M

352 EM5

96

Page 101: LA-7595-M U MOL1D: A General Purpose Subroutine Package

2

456769101112IS1«151617IB1921*21112324252627262930313233m353b37363940414243444540474649S051525354555657595"

CCCCCCCCCCCCcccccccccccccccccccccccccccccccccccccccccccccc

SUBROUTINE DRIVEB

SUBROUTINE DRIVER (N, TB, H0, Y0,Y,TOUT, EPS, «F, iNDfcX, ML, MU)THIS IS THE MARCH 19, 1975 VERSION OFCe«*3, <» PACKtGC FOR THt SOLUTION OF THE INITIAL V&LtJE*»ROBLEM FOR SYSTEMS 0F ORDINARY DIFFERENTIAL EQUATIONS,

OV/DT • F(Y,T), Y » (Y(1),Y(2),,,,,YCN)).GEARS IS A VARIANT OF THE GEAR PACKAGE TO BE UStD WHENTHE JACOBIAN MATRIX DF/DY HAS BANDED OR NEARLY SANDED FORM,SUBROUTINE DRIVES IS A DRIVER ROUTINE FOR THE GEARB PACKAGE.

REFERENCES1, A, C. HINDM»RSH, GEAR,. ORDINARY DIFFERENTIAL EQUATION

SYSTEM SOLVER, UCID-308B1 REV. 3, LAWHENCE LlVfR-ORtLABORATORY, P.O.BOX 606, LlVERMORE, CA 90550, DEC. 1">7«,

2. A, C. HlNDM*i»SH, GEARB., SOLUTION OF ORDINARYDIFFERENTIAL EBUATlONS HAVING BANDED JACOBIAN,UCID-J<"e5<» REV. 1, L.L.L., MARCH 1975.

DRIVEB IS TO BE CALLED 0NCE FOR E*CH OUTPUT VALUt OF T, ANDIN TURN HAKES REPEATED CALLS TO THE CORE INTEGRATOR, STIFFS.

THE INPIJT PASAMFTERS ARE,.N E THE NUMBER OF FIRST.ORDER DIFFERENTIAL EQUATIONS.

N CAN BE RFDUCED, BUT NEVER INCREASED, DURTNG A PROBLE*.TB c THE INITIAL VALUE OF T, THE INDEPENDENT VARIABLE

(USED ONLY ON FIRST CALL),HB s THE N£XT STEP SIZE IN T (USED FOR INPUT ONLY ON THE

FIRST CALL).Y0 a A VECTOR OF LENGTH N CONTAINING THE INITIAL VALUES OF

Y (USED FOR INPjT ONLY ON FIRST CALL),TOifT s THE VALUE OF T AT WHICH OUTPUT IS DESIRED NEXT.

INTEGRATION WILL NORMALLY GO SLIGHTLY BEYOND TOUTAND THE PACKAGE WJj.L INT£J?PDLAT£ TO T e TOUT.

EOS s THE RELATIVE ERROR BOJND (USED ONLY ON THEFIRST CALL* UNLESS INDEX s - 1 ) , SINGLE STEP ERRORESTIMATES DIVIDED BY YMAX(I) WILL BE KEPT LESS THANEPS IN RO0T-MEAM»3QUARE NORM (I.E. EUCLIDEAN NOR"DIVIDED BY SORT(N) ) . THE VECTOR YHAx OF WEIGHTSIS COMPjTtL' IN DRIVES. INITIALLY YMAx(I) is*BS(Y(I)), WITH A DEFAULT VALUE OF 1 IF Y(I) r 0INITIALLY, THEREAFTER, YMAX(I) IS THE L*RGEST VALUEOF ABS(Y(D) SEEM SO FAR, OR THE INITIAL YMAX(I) IFThAT IS LARGER. TO ALTER F I T H E R OF THESE, CHANCE THEAPPROPRIATE STATEMENTS IN THE DO-L^OPS ENDING ATSTATEMENTS IP! AND TB BELO*.

MF s THE METHOD FLAG (USED ONLY ON FIRST CALL, UNLESSINDE* • - 1 ) , ALLOWED VALUES ARE 10, 11, 12, 13,28, 21, 2?« 23. MF HAS TwO DECIMAL DIGITS, METH

METH IS THE BASIC METHOD INDICATOR,,M£TH t 1 MEANS THE ADAMS METHODS,METH a 2 MEANS THE BACKWARD DIFFERENTIATION

FORMULAS (BDF), OR STIFF METHODS OF GEAR,MITER IS THE ITERATION METHOD INDICATOR,,

MITER i 0 MEANS FUNCTIONAL ITERATION CNO PARTIALDERIVATIVES NEEDED).

iTER « 1 MEANS CHORD METHOD *ITH ANALYTIC JACOBIAN,FOR THIS USER SUPPLIES SUBROUTINE

61? C PDB (SEE DESCRIPTION B E L O W ) ,

97

Page 102: LA-7595-M U MOL1D: A General Purpose Subroutine Package

61 C6 ? C6 3 C6« C6 5 C6b C6 7 C6 0 C6 9 C

71 C7 2 C7 3 C74 C7 5 C76 C7? C7 S7 98."818 ?8 38<J6 58 b

886993919? C93 C94 C95 C96 C97 C9899

1 0 ?1 B 31 0 41 0 51 0 61 0 7IBfl

CCCCcccccccc

IIP C111 C11? C113 C1!« C115 C1S6 C117 C1 1« C119 C

C ? MEAN'S CHORD METHOD * I T H J A C O B U S C A L C U L A T E DI\T£ffM4UV BV fI*JT£ 01FFtftt»CFS.

s J * E A N S CHORD M E T H O D *ITH J A C O B I A N R E P L A C EDBY A DIAGONAL A P P R O X I M A T I O N BASED ON AO1BEC T I 0 N 4 L D E R I V A T I V E ,

INDEX = I N T E G E 9 USED ON INPUT TO INDICATE TYPE Of CALL.WITH TH£ FOLLOWING VALUES AND M £ » M M G 4 , ,

1 T H I S IS T H E FIRST CALL FOR THIS PROBLEM,0 THIS IS NOT THE FIP-ST CALL FOR THIS PROBLEM,

A O INTEGRATION Is TO C O N T I N U E ,•1 T H I S IS NOT T H F FIRST CALL FOR THE PROBLEM,

ANO THE USE* HAS RESET N, E P S , AND/OB MF,£ SA*E AS B EXCEPT THAT TOUT IS TO BE MJT

Fx*CTLV (NO IN T E R P O L A T I O N IS D O N E ) ,TOUT , G E . THE CJRKEST T,

t AS 0 EXCEPT CONTROL RETURNS TO CALL I N GAFTER ONF S T F P , TOUT IS IGNORED*

SINCE T«,F NORMAL OUTPUT VALUE OF INDEX IS *,IT NEEf) 'OT 9t RfSFT FOR N0RMAl. C O N T I N U A T I O N ,

T H ' W I D T W J IF THE LO^EP AN^ UP°ER P A R T S . SESP£rTI vELV,Or THf. g i N 1 IN THE JACOHIAN "ATRIX, NOT COUM'ING THEMAI'J D I A G O N A L , THE *ULL S » N D « I D T H IS M|_ • M U • 1,

SA

A F T E » Tt'E I N I T I A L C A LI , IF 4 N 0 » H 4 L R E T U R N O C C u O R t a A N D A" O N T I N J A T I O N IS D E S l ^ F D . S I " » L Y !(ESFT T O U T A N D C A L L A G A I N .A L L O T H F . R B A 3 A * E T F R S d ] l L Bt R E A D Y F O R T H E N E X T C A L L ,A C H A N G F O f P A R * M E T E R S W'ITH I ^ D F " 5 -' C A N B E M A D E AFTfcRE I T H E R A S J C C E S S F J L 0 " " » J N S i i C C E S S F U l . R E T U R N .

T H E O J T P J T P A R A ^ ' E l f E " S » " E . .M ? s T M F S T E P S I Z E H U S E D L A S T , W H E T H F * S U C C E S S F J L L Y OR N O T ,YJt s THE C Q ^ P J T E D VALUES OF Y AT T = TOUT,TOUT s THF njTp.ly i/ALJt OF T, If- INTEGRATION »AS S U C C E S S F J L .

A^JD T H E I N P J T V/ALUE OF I N D E X W A S N O T 3. TOUT ISU N C H A N G F . 1 ) FROM I T S INBUT V A L U E . O T H E R W I S E , TOUTIS THF C'lBStNT VALUE >--r T TU « H I C H INTEGRATIONHAS BEEN CO«»LE TFD.

X s INTEGER ISED ON PjTPijT TO INDICATE R E S U L T S .hITH TH£ F"LLO«(INr. VALUES AND M E A N I N G S , ,

i< I N T E G R A T I O N « A S C O M P L E T E D TO T O U T OB BFYOrvr,- ( T H E luTEGqATJON x * S H A L T E D A F T E R f-^lil^O T O PASS THfc

E R R O R T £ S T E V E N A F T E R R E D U C I N G H B Y A F A C T O R O FJ . M 0 F R O " I T S I N I T I A L V A L U E ,

. ? A F T F R S O M E I N I T I A L S U C C E S S , T H F I N T E G R A T I O N W A SH A L T E D E I T H E R B Y R E B E A T E D F R R O W T E S T F A I L U R E S O R B YA T E S T O N E P S , T O O M J C H A C C U R A C Y H A S B E E N R F 3 J E S T F D ,

. 3 T H t I N T E G R A T T O K 1 W A S H A L T E D A F T E R F A I L I N G T OC O P R F C T n R C O N V E R G E N C F E V E N A F T E R R E D U C I N G H P yF 4 C T 0 < ? o f l . E i a F < ? a y t r s i ^ i i m V A L U E .

- U I M M E D I A T E H A L T 3 E C A J S E OF I L L E G A L V A L J E S OFP A R A M E T E R S . S F E P R I N T E D M E S S A G E ,

. 5 I N P E * W A S -1 ON I N P J T , B U T T H £ D E S I R E D C ^ A N G F S,»ERF N O T I M P L E M E N T E D B E C A U S E T O U T

N R T B E Y O N D T . I N T E R P O L A T I O N T O T = T O U T « A S*S UN A N O P K A L R E T U R N , T fl T R Y A G A I N ,

A G A I N W I T H I N p F X s -1 A N D A N E W TO'.'T,

IN A D C I T T O ^ : T C D " I V F . B , T H E F O L L O W I N G R O U T I N E S A R E P R O v l D F D INT H E P A C K A G F , .

I N T E R P f T O U T , Y , N 0 , Y 0 ) I N T E ' P O L i T E S T O G E T T H E O J T P U T V A L J E S

OF

98

Page 103: LA-7595-M U MOL1D: A General Purpose Subroutine Package

12t C AT T « TOUT, FP.O* THF DAT* IN THE V ARRAY,122 C »TIFFB(Y,N0) IS THE CORE INTEGRATOR ROUTINE, IT PERFORMS A125 c SINSLE STEP AND ASSOCIATED ERROR CONTROL.12« C C O S E T ( M E T H , N Q , E L . T Q , M A X D E O SETS COEFFICIENTS FOR USE IN125 C THE CORE INTEGRATOR,126 C »S£T8(y,Na,C0N/HlTER»JER) COMPETES AND PROCESSES THE JACOBIAN127 C MATBIX J E DF/-DV,128 C D E C 9 ( N 0 , N , M L , M U , B , I P , I £ R ) AND SOLB( N<?, N, ML, MU, B, C, X, IP) ARE129 C USED TO SOLVE BANDED LINEAR SrSTFMS,13P C NOTE,, PSETB, DECB, AND SOL5 ARE CALLED ONLY IF MITER « 1 OR 2,131 C132 C THE FOLLOWING BOUTINF-S ARE TO BE SUPPLIED BY THE USER,,133 C DIFFijN(N,T,Y,YDOT) COMPUTES THE FUNCTION YDOT e F(Y,T), THE13<i C RIGHT.HAND SIDE OF THf O.D.E,135 C HERE Y AND YDOT ARC VECTORS OF LENGTH N,136 C PPBIN.T,Y.PD»Na,ML»*U) COMPUTES TH£ N BY N J A C O B I A N MATRIX OF137 C PARTIAL DERIVATIVES, AND STORES IT IN PD13« C AS AN KD pv HL«.MU»I APRAY, PDC I, J-I*«L*1 )139 C IS TO BF SET Tn TME PARTIAL DERIVATIVE O^lu? C VDOTi'I) WITH S?ESPECT TO Y{J), CALLfcD ONLVlul C IF MITER = 1. DTHFRKISE. A D U * M Y SOt)T I N£\u? C CAN flf. SUBSTITUTED.l«3 Cl«u C THE D I M f N S i n N S IN T H £ FOLLOWING DECLARATIONS APE SET FciR «Iu5 C M A X I M U M OF 1«!B EQUATIONS AND FDR 2 * M L + M U , L E O SB, IF THESE LIMITSl<ib C ARE TP BE EXCEFDED, T WE DIMENSIONS SHOULD BE I^CRFASED ACCORDINGLY,Ia7 C THE DIMpNsrCM OF Pw BELO|> M J S T BE AT LEAST N» ( ? * M L » M U + j ) jf MITER =luB C 1 09 2, BUT CAN BE REDjCEP TO N IF HjT[P e 3, OR TO 1 IF MIT£R = 0,lU9 C THE DIMENSIONS OF YMAX, ERR03, S*VE1, SAVE?, IPIV, AND THE FIRST15H C DIMENSION OF Y S N O U L D ALL BE AT LEAST N, THE COLUMN LENGTH OF151 C THE Y ARRAY AS USED ELSf«HER£ IS Na. NOT 100, THE ROk LENGTH OF Y15? C CAN BF REDJCED F R O M J ? TO 6 IF METh = 2.153 C THE I» 1 v ARRAY IS USED ONLY J.F MITER IS 1 OS 2,15" C155 C THE C O M M O N BLOCK G £ A R < } C A N BE ACCESSED E X T £ R I * A I . L Y 8 V T H E USER156 C IF DESIREO, IT C O N T » I ^ S THE STEP SIZE LAST JSfcO ( S U C C E S S F J L L Y ) ,157 C THE ORDER L»ST USED t S U T C E S S F U U L Y ) , THE NUMBER OF STEPS TAKEN15? C SO FAR, THE MlJMefR OF F EVAIJATIOK'S COlFFUN CALLS) SO FAR,159 C AND THE NlJMPER OF JAcOBlAN EVALUATIONS SO FAR.160 C161 C IN T H E FOLLOWING D A T A S T * > T £ M E ! ^ T , S ET..162 C URO'JNn = THE UNIT ROUNDOFF OF THE MACHINE, I.E. THt" SMALLEST163 C POSlTlVF J SUCH THAT 1. • U ,NE. 1, ON THE M A C H T N E ,16« C LOJT - THE LOGICAL UNIT NuMBEP FOR TH£ OUTPUT OF MESSAGES165 C DURING THE INTEGRATION,166 C . - » - - - - - - . . . - - - - - . - - - - . - - - - - - - - - - . - - - . - - . - - - - - . . . . . . . . . . . . . . . . . . . . . . . .Ife7 DIMENSION Y0(N)168 DIME^JSID^ Y(N,J)

COMMON /MOLINF/ DTL,CTAVG,LORD,ORDAvGCP^MON /GEAR1/ T,H,HMIN,HMAX,EPSC,UROJND,NC,MFC;KFLAG,JSTART

171 COMMO.M /GEAR2/ YMAX(?)172 COMMON /GEARJ/ ERR0RC2)173 C O M M O N /GEAPfl/ SAvEl(2)17U C O M M O N /GEARS/ SAvE2(2)175 COMMON /GE*R6/ PW(2)176 COMMON /GfART/ IPlVf2)177 COMMON /GEARS/ EPSJ,MLC,MJC,MW,NMj,NpML,N0W178 CDMMOIV /GEAP9/ H U S E D / N O U S F17<5 DATA U R 0 U N D / 7 . 1 E M 5 / . LOUT/3/18C C

99

Page 104: LA-7595-M U MOL1D: A General Purpose Subroutine Package

18! IF (INDEX ,E0, 0) CO TO ?2162 IF (INDEX ,E0. 25 GO TO 25183 IF (INREH ,E0. «1) RO TO JP18« IF (INOE* ,E0. J) GO TO Ug185 IF (INDEX , N £ , i) GO TO186 IF (EPS .LE, Z.) GO To187 IF {N ,LE, B) GO TO «1P188 IF (f Ttt-TOi'T)»H0 ,GE. P.) GO TO189 C-----»-------------•-----•----••«•--•--------•--»---»•---19P C IF INITIAI. VALUES OF YMAX OTHfH THAN THOSE SET BElOw A«E191 C THEY SHOL/LD BE * E T H £ » E . ALL YMAX(I) MUST BE P O S T T I V E ,

192 C IF VALUES FO«? HMJN 09 HMAX, THE BOUNDS ON ABS(H), O T H E S THAN

19J C THOSE BELO* *RE DEfiHtEO. THT v SHOl'LO B£ SET19U C » — -- — .- — • o —.»..-

195 DO IB I e 1,N196 C * * « * YMAX SFT I N M0Ll-<197 1? Y( I , 1 ) e Y P ( I )!9P NC S N199 T = Til20? H = HO2CM If- ( ( T * n ) , t l 5 , T ) « 9 T T F . ( l . n U T , 1 5 )2 H ? ] 5 F O ? M A T ( 1 S - * E A R N I N G . . T • H r T T'J NF)(T2 0 3 H M l . i ; A H S ( H P )

s A M S ( T P - T O L ' T ) « I Pi.

= £PS

2062^72082R92lt"21121?21321"2152162172 1 P2-922^221

22322".2252262272?P22"23C23123223323"23523b237238239

C

c

fU

c

c

c

c

2P

25

3a

UP

5^

MPCJSTN?EPSMLCM-JCI R

N«11

N0^

£ HF

6 P T r 3= N

J = SO' T(UROuNT)- uL

s »* Js ML • Mu • 1s K7I • \

I s N P « M L

NMCU T S PGD

TOJT'MMA

r.oHMAIFGO

IF-

in 5?

IS THE P«EvIOJS I'ALUE 0 F TOUT FOB JSF. IN H ^ A X .X s Ans(TO-jT»TO'JTp)TO R<J

X = APS(TOuT-TDJTP)((T.TnjT)*H ,GE. ".> GO TO 53P1TO 85

((T-TP.iT)»H ,GE. P.5 GO TO aa^.JSTA9T s -1

C = N

E P S C s E D 5iFC

IF

CALPTAOSR

(f G r

S MF

((T + H1 .E'J, T) W 5 I T E ( L O " T , 15)

L S T I F F H rr, N 3 )vGsni»i/G»HjSfr'AvGrjORSAvGfNa jjED

3 1 . KFl. AG

100

Page 105: LA-7595-M U MOL1D: A General Purpose Subroutine Package

2a 1 C K F U G • »/ "I

aaa c2U3 60 CONTINUEi«5 C NORMAL 5ETJBSI FRO M INTEGRATOR,2«6 C2<|7 C THE WEK-iTS YMiffl) ARE UPDATED. IF DIFFERENT VALUES ARE DESIRED.2«B C THEV SHOJLD BE SET H£RE , A TEST TS MADE F O R FPS BEING Ton S M A L LZU<t C POH THE MACHINE PRECISION,253 C251 C fcNT OTHER TESTS OS CALCULATIONS THAT ARE REQUIRED AFTER EVERY252 C STEP SHOULD BE INSERTED HERE.255 C25<J C IF INDEX B I, Y0 IS SET TO T H E CURRENT Y VALUES ON RETURN.255 C IF JNDEX c 2, H IS CONTSOLLE1) TO MIT TOUT (wIThlN ROUNDOF-F256 C ERROR), AND THfcN T H E C U ^ t N T Y VALUES ABE PUT IN Y0 ON RETJRN.257 C FOR ANY OTHER VAj.J£ OF INDEX, CONTROL RFTUBNS TO Trtf INTEGRATOR?5B C JNLESS TO.IT HAS BEFN REACHED, THEN I^TERPOlATED VALUES OF r ARE25<5 C COMPjTEn A N D STOREn !•' Vf» Ow RETJPN,26^ C IF INTERPOLATION IS NOT DESJREf), T H E CALL T O INTER" S*OULn HE261 C REMOVED AND C O N V R O L TRANSFERRED TO STATEMENT 5PP I N S T F A O OF <i?H.262 C-----.-------«----.--»---------------.---'•-•---------'- -.....---.-.263 D = l»c26" DO 7n I s 1,w265 AYI s A3 S ( Y ( I , n )266 YMAXdJ - AkAXI CYMAXCn. AVI)267 7P D s D • (AYI/YMAX(IM**£26B D s OMJRDUND/EPS)**?2b<» IF to .GT, FLOAT(N)) GO TO 250270 IF (INDEX ,EO, 5> GO TO 5?<"271 I? U N D E V .EO, g) GO TO r.527? 8« IF ( C T - T O J T ) * M ,L'. 0.) GO TO «i*27? CALL INTER15 (TOUT, Y, MP-, V Ifl >27b GO TO 52!"2T5 SS SF ( C(T*H)-TnjT)ftH ,LE. <*,) GO TCI Uf276 I? (ABS(T-TOUT) ,LE. \M.•UROUNO^HMAX) GO TO 504277 IF (fT.TOJT)*H ,GE. ?.i SO TO 50^27B H s TTOJT - T)«(l, . «,*UROUND)279 JSTART = -1280 GO TO 0018i C — -o —.-.--------- — • — — ---- — .«. -.--.- „-.282 C O'x AN ERROR RETURN FROM INTEGRATOR, AN IMMEDIATE O P , T U 5 N OCC'JRS IF283 C KFLAG s =2, AND RECOVERY ATTEMPTS ARE MADE OTHERWISE,28U C TO HECOvER, H AND -A»\H ARE REDUCEH BY A FACTOR OF ,! UP TO 10285 C T I M E S BFFPRE GIVING J P ,286 C - . - - ---«-» »287 I*? WRITE (LOJT,105) T28S 105 F0RMAT(//3bH K F L * G E -1 F6[0M INTEGRATOR AT T s ,E16,8/2SP 1 J8H ERROR TfST FAILtO H I T M A B S ( H ) =290 JIB IF (NHCJT ,tO. !0) GO TO 150291 NHCUT c NHCuT • 1292 HMI\ c ,J*HMlN293 H s ,J*H2911 rfSITE ( L 0 J T . H 5 ) H245 115 F0RMAT(2flH H HAS B E F N REDUCED TO ,Elo,8,296 ] 26H AND STEP WILL BE297 JSTART « -129P co To ad299 C

15a WRITE (L0JT.155)

101

Page 106: LA-7595-M U MOL1D: A General Purpose Subroutine Package

301 1SS rO«M«TC//««H P&OBLFM APPEARS dN$OLVABLE WITH GIVEN INPUT//)302 GO TO 530525 C5 P U aea W R I T E CLOJT.eB 1*) T » M305 205 F0PM 4Tf//55H K F ^ A G « -2 F B O M INTEGRATOR AT T e ,E16,8,SHJl»b 1 Elb e » / S 2

H "TWE REQUESTED E*«OR IS SMHI.E* THAN C»S BE3PT SO TP 500308 C3k"9 252 w«ITE tlOJT,B55) TJ10 £55 F0R*AT(//37H INTEGRATION HALTEn BY DRIVER »T T t »El6,8/311 1 5fcH EPS TOO SMALL TO BE ATTAINED FO» TH£ MACHINE PRECISION/)312 KFLAG313 60 TO3l« C315 30Z W8ITF (LOJT,I05) T316 305 FORMAT(/V35H KFLAG B -J F R O M INTEGRATOR AT T «3;7 1 «?H CORRECTOR CONVERGENCE CO'JLD W O T BE ACHltVED/)31B GO TO 111"31" C32:" UP? WRITE (LfJT,fln5)321 U05 F0R^*T(//28h ILLEGAL INPUT., EPS , U . 0,//)32? INDtX = »«323 RETURN32« C325 (113 WRITE U 0 J T , U i 5 )32b «15 F0R M A H / V 2 5 H ILLEGAL INPUT., N ,LE. f//332732?32P C330 «?;? WRITF (LOU',025)331 UJS FGRMAT(//3bH ILLEGAL INPUT 4, CT0«TOUT)*H ,GE. 51,//)332 INDEX s -«333 RETURN33« C335 U32 WRITF (L0JT,i!j5) I^DF*336 «35 F0RMATt//2OM ILLEGAL INPUT,, INDEX s,I5//)3J7 \K0Z* E •«33fl RETURN3 a ? nuz W R I T E ( L 0 U T , « < I 5 ) T , T O U T , H3<il « U 5 F O R M A T ( / / « a H I N D E X e -1 O N I N P U T w l T H ( T - T O U T ) # H , G E .3a2 1 UH T 8,Elfc.8,9H TOUT z,£lb,&,bH H »,EJt.s8/3«3 1 HUH INTERPOLATION WAS DONE AS ON NORMAL RETURN,/3a« 2 41H DF.SI&fP P A R A M E T E R CHANGES WERE NOT MADE,)3<J5 CALL I H T ^ 9 (TOUT, Y, N0, ¥3)3ab T N ^ E * = »5J-7 RETURN34? C3«9 503 TOUT = T35^ DO 513 I = 1#N351 510 V0(I) - ¥(I,l)352 5?2 INDtx = KFLAG3S1 TOUTP s TOUT35U H0 s HUSED355 IF CK^LAG ,NE, 0) H0 S H35b RETURN357 C--«------------»---•--« E N0 Of SUBRnuTI^E D"IVE8 •*•---.---.358 END

102

Page 107: LA-7595-M U MOL1D: A General Purpose Subroutine Package

SUBROUTINE INTERP

1 SUBROUTINE IMTERP (TOUT, Y, N0, V0)2 DIMENSION y0(Nti), ,(N0,!)S COMMON /GE*Ri/ T»H#DUMMY(a),N,IDLIMMv(2),JSTARTU C--—--"— — ---'-"--.-----•---- — --•--•.•-*•-•-----------5 C SUBROUTINE 1NVERP COMPUTES 1NTER°OL*TED VALUES OF THE6 C VARIABLE V AND STORES THEM IN Yfl, THE INTERPOLATION1 IS TO THF7 C POINT T « TOUT, AND USES THE NORDSlEC* HISTOPY ARRAY Y, AS FOLLOWS,.8 C NO9 c V0(i) c10 e11 C WHERE S B «(T»TOUT)/H,12 C « - «13 DO IP ! c 1,N1« 10 V0(D * V( I, l)15 L « JSTART • !!b S = (TOUT » T)/H17 SI s j.IB DO Jn J e 2,110 SI a S1*S20 DO 2P I = 1,N21 2Pi y a m = ve>m • si*y(i»j)22 30 CONTINUE23 P.ETU9N2tt C'------"-.............. END OF SUBROUTINE INTERP25 END

103

Page 108: LA-7595-M U MOL1D: A General Purpose Subroutine Package

SUBROUTINE STIFFB

t23u5678

101112 C13 C10 C15 Clh C17 C

SUBROUTINE STIFFS tYf N0)

18

2t2? C23 C2«2526272S C?« C30313235 C3« C35 C56 C37 C3B39 C00Ul

au c«5 C«6 C07

(19 C50 C51 C5253

5556 C57 C56 C59 C63 C

COMMON /CEAR1/ T.N,HHIN,H»4Axt£PS#UR0UND,N,MF,KFLAGrJ8VARTeOMMON /GEAR2/ YMAX(l)C O M M O N /GEARS/ E**OR(1)COMMON /GEASJU/ S*VElU>COMMON /GEAR5/ 5AVE2C1)COMMON /GEAR6/- PW(i)COMMON /GEART/ IPIV(l)COMMON /GEAR6/ E<»SJ»ML»HU,MW,NMl,N0MLrN0WCOMMON /GEAR?/ HUSEO»NOUSED,MSTEp«^FFf **JE

5TIFFR PERFORMS ONE STEP OF THE INTEGRATION DF AN INITIAL VALUEPROBLEM F0<? A SYSTEM OF Q R D I N A R V DIFFERENTIAL EQUATIONS,STIFFS IS A VERSJDN FOR BANDED FORM OF THE JACOBIAN MATRIX,COMMUNICATION I M STIFFB IS DONE WITH THE FOLLOWING VARIABLES,,

Y AN NR BY L"AX ARNAY CONTAINING THE DEPENDENT VARIABLESAN(i THrl? SCALtO DERIVATIVES, LMAX IS 13 FOR THE"'ETHODs AN? 6 Fn? THE GFAR M E T M O D S , L«A* . \ = MAXDERIS THE M A X I M U M ORDER AVAILABLE, SEE SJBSOjTINfc COSFT,Y(IfJ*l) CONTAINS THE J-TH DERIVATIVE OF V(I), SCALED BYH»*J/FACTOt?IAL(J) (J B 0,li,.,,NQ5,

NP A CONSTANT INTEGER ,GE, N, USFD FOR DIMENSIONING PURPOSES,T THE INDEPFNDENT VARLABLF, T IS UPDATED ON EACH STEP TAKEN.H THE STEP SIZE TO BE ATTEMPTED ON THE NEXT STEP,

H IS ALTERED BY THE ERROR CONTROL AL60SITHM DURING THEPRCBLE". H CAN BE EITHER POSITIVE OR NEGATIVE, BUT ITSSIGN MJST REMAIN CONSTANT THROUGHOUT THE PROBLEM,

HMIN, THE MINIMUM AND MAXIMUM ABSOLUTE VALUE OF THE STEP SIZEHMAX TO BE USED FOB THE STEP, THESE MAY BE CHANGED AT ANy

TIME, BUT •ILL NOT TAKE EFFECT UNTIL THE NEXT H CHANGE,foS THE HfL«TfvE E**Off SOLfiMO, S££ OfSCfilf>TlO*t IN DRIVE*.UROUND THE UNIT ROUNDOFF OF THF MACHINE,N THE NUMBER OF FIRST-ORDER DIFFERENTIAL E3UATI0NS,

MF m METHOD FLAG, SEE DESCRIPTION IN DRIVER,KFLAG A COMPLETION CODE rflTH THE FOLLOWING MEANINGS,,

0 THE STEP WAS SUCCESFUL,THE REQUESTED ERROR COULD NOT BE ACHIEVED

WITH ABS(H)r« HMlN,THE REQUESTER FRROR IS SMALLER THAN c«^

BE HANDLFD FOR THIS PROBLEM,CORRECTOR CONVERGENCE COULD NOT BE

ACHJEVED FOR ABS(H) 3 HMIN,WITH KFL*G NEGATIVE, THE VALUFS OF T AND

THE y AR4AY ARE AS OF THE BEGINNING OF THE LASTSTEP, AND H IS THE LAST STEP SIZE ATTEMPTED,

JSTART AN INTEGER USED ON INPJT AND OUTPUT,ON IT.PUT, IT HAS THE FOLLOWING VALUES AND MEANINGS,,

PERFORM THE FIRST STEP.TAKE A NE* STEP CONTINUING FROM THE LAST,TAKE THE NEXT STEP WITH A NEW VALUE OF

Hf EpS, N, AND/OR MF,ON EXIT, JSTART IS N3, THE CURRENT ORDER OF THE METHOD,

VMAX AN AR«AY OF N ELEMENTS WITH WHICH THE ESTIMATED LOC«LERRORS IN Y ARt COMPARED,

E*ROR AN ARRAY OF N ELEMENTS, ERR0R(I)/T0(2) IS THE FSTI*ATEDO M E - S T E P ERROR IN Y(I).

SAVE1. TWO ARRAYS OF WORKING STORAGE,SAVE? EACH OF LENGTH N .

-1

•2

•5

ON A

0.GT.fl.LT.JI

104

Page 109: LA-7595-M U MOL1D: A General Purpose Subroutine Package

61 C P« A BLOCK OF LOCATIONS USED FOR PARTIAL DERIVATIVES IF62 C MITER IS NOT 0, SEE DESCRIPTION IN DRIVER,65 C IPIV AN INT£GF» ARRAY OF LENGTH N USED FOR PIVOT6« C INFORMATION IF MITER t 1 OR 2,65 C ML,MJ THE LOWER AND UPPER HALF BANDMDTHS. RESPECTIVELY, OF66 C THE JACOBIAN. SE" DESCRIPTION IN DRIVER,67 C—.—.-^-- — - — - — — . — — -»--»—- — ------•-- — — »-- — —---- — "'• —68 DIMENSION ELflS)rTO(t)69 DATA EL(?)/l./» OlOlt>/\,/70 KFLAG • B71 TOLD « T72 IF {JSTART ,GT, R) GO TO 20073 IF (JSTART ,N£, 0) GO TO Ji-07« C-.•- — • — -. — .. — .«•-«-.-»—..- — --..—-- — -• — — — — — ------ — —75 C ON THE FIRST C L L * THE ORDER IS SET TO 1 AND THE INITIAL VDOT IS76 C CALCULATED, RHA* JS T H E M A X I M U M »A7iO 8Y W H I C H H C A N BE TNCREASfcO" C IN A SINGLE STEP. IT IS INITIALLY l.Eu TO COMPENSATE FOR THE S*ALL7B C INITIAL H, BJT THEN IS NO«*At.LY EOjAL T" 10. IF A •AlLUKE7<5 C OCCJRS (IN COSRECtO* CONVEHr,EfJCE OR E«BC1R T E S T ) , R K . K I S SET AT 28P" C FOR THE NFXT INCREASE.ei c—-.—.-—» ---.-.- ..—82 CALL DIFFJN (N, T, r» SAVED63 DO !ia I s lilt6" lta v(i,j) s h a S ' V E K D85 HETH K MF/S886 MITER s MF - JP*METH67 NO • 186 L c 289 IDOuB E 59E SMAX s 1.E191 RC s 0.9? CRATE = 1.95 EPSOLD s EPS90 HOLD s H95 MFOLD s MF96 NOLD s N97 NSTEP « ?9R N5TEPJ = 299 NFE a 1

100 NJE i 0J01 IRET B 3102 SO TO 130103 C«-—.—— — — — . . —10U C IF THE CALLFR HAS CHANGED M E T H , COSET IS CALLED TO SET105 C THE COEFFICIENTS OF T«E METHOD, IF THE CALLER HAS CHANGED106 C N, EPS, OR METH, THE CONSTANTS E, EDN, EllP, AND BND MUST BE RESFT,107 C E IS A COMPARISON FOR ERRORS OF THE CURRENT ORDER NQ, EUP IS108 C TO TEST FOR INCRE*SlNG THE ORDER. EDN FOR DECRfASlNG THE OHDEP-,109 C BND IS USED TO TEST FOR CONVERGENCE OF THE CDRRFCTOR ITERATES.110 C IF THE CALLER HA8 CHANGED H, Y MJST BF RESC*LEO.111 C FURTHER CHANGES IN * FOR THAT MANY STEPS,U 2 C IF H OR METH HAS DEEN C H A N G E D , IDOjB IS RESFT TO L H TO PREVENT113 O — • - — . — - . — — — -..—- — - — — — .----»-- — .--——- — — -- — - — —1|U 120 IF (MF ,E3, HFOLO) GO TO 150115 MEO c METH116 MIO B MITER117 METH • MF/1B1 16 HITER s MF * 10AMF.TH119 MFOLD B MF\2* I F ( M I T E R , N I E , M I O ) I « E V A L » M I T E R

105

Page 110: LA-7595-M U MOL1D: A General Purpose Subroutine Package

121 IF (-ETH ,F0. "EO) GO TO 15P122 IDOJB s L • 1123 I»FT s 112« 11? CALL COSFT (METM, Ng, EL, Tg, MAK0ER5125 LM*X « MAXDER • 1\2b nc « «C*EL( D / O L D L f127 OLOL0I t EL(1)12fl iua FN i FlOAT(N)129 ED* * FN« (T(3( j )«E»S)»»?130 E « FV»(TQ(J)*E»S)*»?131 EJ" » FN«(TO(J)«E»S)«*?132 B*D « FM«(TQ(o)«E»S)**?135 GO TO T163. 170, 2<»?1, IRETIju 153 If ((£«>S ,fO. EPSOLD) ,*'O. (N ,E3. NOLD>> CD TO135 F»SOLD * E pS136 *JOLD s ^157 IBtET = 113B GO Tn \HPU ' 16? IF (M ,ET. nPtP) G^ TT 2t»?1tt? DN s H/^nL^lot H s WOLD\u? i«Enn a Jul RO in |75luci i Ta en s A M A V I ( O « , H M l N / A R S ( M ) 5

lUS 175 ( H s A M J K 1 ( ^lUfc Sit s 1 .1UT DO lfl? J = 2/L1U9 PC 1B3 I s J.M150 I6d rl!,J) s r(l#j)«Rl151 H = H*RH152 9C s H C ' ^ H155 ID0U9 « L • 115" TF (T'EDO ,EQ, B) Go TO 69P>155 C----------"»--------«.-.------------- — — ---•• — — - — — • — -«•----- —15fr C TMls SECTIO'J CDMPJTES THE PREDICTED H U ' E S B* EFFECTIVELY157 C 1JLTIPL*ING THE y ARq&y BV THE PASCAL TRIANGLE MATRIX,158 C RC IS THE R.UI0 OF H£» TO 013 VALUES OF TMfc COEFFICIENT H * E L t D .15<» C «MEW RC DIFFERS fRO M 1 BY MP5F T H A N JC! PERCENT, OR T^F CALLER HAStbP C CHA»gGE1 * J T E R . I - E V A L IS SET T O M I T F R TO Fo«CE T H E P A R T I A L S TO BE16! C J'DATED, IS' PARTIAJ.S AIJE USFO, IN ANY CASE/ THE P A P T U L S162 C ARE UPDATED AT LtA$T EvERV 22-TH STEP,163 C- — - --•J 6 « 2 0 3 I F t * B S ( R C - 1 . ) , G T . 0 , 3 ) I ^ E V A l s H j U R1 6 5 I F ( N S T E P , G E , N S T E ( » J * 2 1 5 ) I u F V A u s M J T E R1 6 6 T a T + H1 6 7 DO 2 1 ? J ! s 1 , M 3168 DO 210 J2 * J1.N316" J * (NO • Jl) - J217I?I D O 2 1 P I c I , M1 7 1 2 i a n i r J ) « •»<irJ'> • v t i , j * n172 C- — ---173 C JP TO 3 CORRECTOR ITERATIONS **F T*KtN, A CONVERGENCE TEST IS17a C HADE ON THE R,*,g, NORM OF EACH CORRECTION, USING BND# WHICH175 C IS DEPENDENT OK E^S. THE SUM OF THE CORRECTIONS IS ACCUMULATED176 C IN THE VECTOR ERRPPfl), THE V ARRAY Is NOT ALTEItfcl) IN THF CORRECTOR177 C LOOP. THf UPDATED Y VECTOR IS STORED TEMPORARILY IN SAVE!,178 C • — ...-- —............. ......... .....................179 222 DO 2W I s l.N18« 23? ERROR(I) * 61,

106

Page 111: LA-7595-M U MOL1D: A General Purpose Subroutine Package

181 ¥ « ?162 C*LL DIFFJN CN» T, Y, SAV£2)18J NFE B NFF • 11B0 IF CIwFVAu , U . P) GP TO ?9?185 C- — — -------- — -»...................... — — *,...--..186 C IF INDICATED, T*E MATRIX P s I - H«fL(l)*J IS REEV*LJ*TED BEFORE187 C STARTING THE CORHECTO* ITERATION, IWEvAL IS StT TO 0 AS AN188 C INDICATOR THAT THIS HAS PEEN DONE. IF MITER : I O( J. M S189 C COMPUTED M N D PROCESSES IN PSETB. IF M I T E * S 3, THE MATRIX USED190 C IS * c I . w « E i n 3 « D , KHERfc 0 IS A DIAGONAL MATRIX,191 C.- — ...--..-......-•..--.«.---.----..-o................~---.....>.»-..192 H E V A L * Z193 <C s l.19« NJ£ t MJE • I195 NSTEPJ a NSTE"196 GO Tn (25*, 21?1, 2<>7O, HITFR197 2U3 NFE B NFE • w«198 253 CON s -rUEI-H)199 CALL PSETB (Y, NC, CON. M I H « , IES)20? IF (IE9 ,NF, d) GO TO 'J?«201 GO TO IS*202 260 R s ELf15«.12£3 DO 273 I = J,N2a« 27? p « d ) = v(i,i) • R2»5 CALL DIFFJN (N, T, »w,2H6 NFE s NFF • 1207 HLP * H*EL(1)2Cfi DO 2P2 I = l.N209 R0 s H»SAVE2fI5 - V(210 Pwtl) s 1,2 1 1 D c . 1 * R C - H * c S A v E i m • S A V E 2 C D )2 1 2 S A v E l ( I ) = 0 .213 IF ( A 8 S C K ) ilf, U»OUND*Vn*xri)) &" TO 28U21U IF (ABSCD) .ED. f.) GD TO

216 SAVES(I) e Prt(217 283 CONTINUE2j9 GO TO S70219 2?Z IF (MITER .NF. (O GO TO (558, S5«, Jlf)» MITER220 C—--.- — . —.-..».-------. — -- = ---- — .--221 C IN THE CASE OF FUNCTIONAL ITERATION, UPDATE Y O1QECTLY222 C THE RESULT OF THE L*ST DIFFUN C A U ,223 C -. —22" D = 0,225 DO 300 I s l,N22b R s H*SAVE2(I) • v(I,2)227 D s D • ( (R-EB»OR(i))/VMAX(I) )««2228 S A V E K I ) s V(I,j) • EL(J)*R229 3PZ ERROR(I) S B23P GO TO «00231 C - - «.232 C *N THE CASE OF THE CHORD METHOD, CO«PUTF THE CORRECTOR ERROR,233 C F SUB (M), AND SOLVE THE LINEAR S V S U * WITH THAT AS R I & H T - H A N D23« C SIDE AND p AS COEFFICIENT MATRIX, USING THE LU DECOMPOSITIONSIS C IF MITER i 1 OR 2. IF MITER = 3, T*E COEFFICIENT H*EL(1)236 C IN • IS UPDATED,237 C---—. — -.--.......—.....----.- —238 312 PHL0 s HUB239 HL0 r H*EL(l)2«0 IF (HL0 ,E0, PHLO) GO TO 330

107

Page 112: LA-7595-M U MOL1D: A General Purpose Subroutine Package

R s2u?2UJ2uu3 /i CC M 3

2162u7218?U92i?25125225325«25525i>

X S 3|i c (5

332JU?

35P56?

STB

383

DO 322 I »D • 1 , •

l.NR«fl. - 1.-

IF ( A B S C D ) ,EO. 0.)

p n 1 I ) •

DO 3<J3 I =SAVEI en

GO TO 37PDO 363 I *

SAvEl(I)C*LL SOL"D e PI,

DO 3RB I »ERRORCDD s D +SAVE!(I)

i.Ne PS{I).(H,

UN* H*i.»vEgc:

(N0, N, ML,

l.N= ERROR(I)

GO TO UUP

»SAVE2(I)

I) - (YflMU, PW,

• S»VE1((SAvEl(I)/YMAX(I))*»s Y(I, 1) • El(l)*ER

• (Y(

.2) •SAVEI,

I)2RO^CT)

• t R R O R C I > ; i

25T r - - '" --.25R C TEST FOR C O N V E R G E N C E . If M . G T , 0 , AN ESTIMATE OK THE C O N V F R G E N C F25"» C a*TE CO^STA^.•T IS S T O R F D 1 M CRATE. AND THIS IS US E D IM THE TE S T ,

26! «P0 IF ( M ,>JF, 71) CRATE = AMAK1 ( , 9*CRATfc» D/Dl )IF ( ( D * A M I N K 1,,2.*CRATE)) 0 L E . 9 M D ) GO TODl s D« = M • 1

265 IF ( H . £ 0 , 3) GO TO Ul ("266 C*LL DTFFJN (N, T, SA V E 1 , S A V E ? )267 GO TO 290

269 C THE CORRECTOR ITERATION F A R E D TO CONVERGE IN 5 TSIES, IF OARTIALS27?) C ARE INVOLVED BUT ARF NOT UP TO DATE, THEY ARE REEVALIIATED FOR THE271 C NFXT TRY, O T H E R W I S E T H E Y ARRAY IS RETRACTED TO ITS VALUFS272 C BEFORE »REC>I CTI ON', AND H IS »EDUCFD, IF POSSIBLE, IF NOT, A271 C KJO-CONVERGENCE EXIT IS TAKEw,27U C-----.---...--.--•---- — ---"--•-- — -----•-•-- — — ••"«-• — •--•••-•••275 U\d NFF s NFE + 2

27727627928026128?28328<J

28528628728R289

HI*

003

T a TOLD«M<

DO>X : 2.«50 Jl = 1.

DO u?i» J2 s

IFBH

J s (NO •

DO U3A I =Y(I.J) s

(ABS(H) .LE= .25

IREDn'r. 1GO TO 17P11*EvAL s MITERGO TO 220

NQJlJl1Y

l

)

t

CH

ND- Ji

MI. J)M i N «:

- YII,Jf])i,00B(»n "-r> TO

200 c — «- ... — ... — .291 C THE CORRECTOR HAS COMVERGED, INEVAL IS SET TO -1 IF PARTIAL292 C DERIVATIVES *ERF USED. TO SI&NAL THAT TH£Y MAY NEED UPDATING ON293 C SUBSE3UFNT STEPS, THE FRROR TEST IS »UD£ AND CONTROL PASSES TO29U C STATEMENT 5*3 If IT FAILS,295 C-.-«- - - ..•-. — — .-.....•.296 U53 IF (MITER ,NF. 0) I«iEVAL I m\297 NFE = NFE • H296 D = 0.299 DO (16 0 I = 1»N300 UbS D B D • tfcf»ROR(I)/YMAX{ ]))**?

108

Page 113: LA-7595-M U MOL1D: A General Purpose Subroutine Package

301302

50J30«3P53Bb30730P309

321

32532«32532632 7328

S3«33153251333tl33533b337338

3a?3«13u?3U3luu3«5

311

312313lit3153]6317318

IF (0 , G T , E ) CO TO 5 0 0c.-——.- .-•- - - -»...—.—— -C AFTER A SUCCESSFUL STF", U P H A T E THE. Y ARRAY,C CONSIDER CHANGING H IF IDOUB = 1, O T H E P « I S E DECREASE I D O U B BY 1,C IF iDOun IS THEV 1 AND NQ ,LT, M A * D E R , T H E N ERROR IS S A V E D F D RC JSE IN A POSSIBLE ORDER INCRE^SF DM T H E Ktxt STEP,C IF A CHANGE I 1 * IS CONSIDERED, AM INCREASE 0» DtCSf»SE IN ORDERC BY ONE is CONSIDERED *LSO, A CHANJSF I N H I S M*nf O N L Y IF IT IS & YC FACTOR OF AT LEAST 1,1. IF KOi, IOOjP IS SET TO IP TO PREVENTC TESTING FOR THAT H»Ny STEPS,C-------.----«.«.-----------------•'----•---------------------•----••----

KFLAG s PIREDO = 9NSTEP B NSTtP • )

HUSEn = HN3USED = NTDO «7i! J = 1,L

r.jR , t c , \ & o T O= T O O j B - 1

TF f l 5 0 J P , G T , 1) G P TO 7 3."IF a , £ 3 , M A X ) GO TO 7 P ?DO U<5? I = i,fj

¥ ( I , I M A X ) s E R P O R C HGO TO 7 3 P

C -C THE E R R O R T E S T F A 1 L E 3 . K F U A S K F E P S T R A C K OF M U L T I P UC R E S T O R E T A N D THE Y A S H A Y TO T H E I R P R P v I O U S V A i U E S , A N DC TO TRY T H E S T E P A G A I V J . C O « P J T £ T H E O°Tl*Uf: S T f P S I Z t F O R T H I S ORC O N E L O W E R O R D E R ,C -5 0 3 K F L A G s K F L A G • 1

T = T O L DDO 5 1 3 J1 = 1.N3

DO 5 1 3 J? = JltN 1?J s CN3 • J|) - J?DO 5 1d I = 1» N

5 UR^A X : 2 ,IF ( A B S ( H ) , L E ,IF ( K F L A G , L E .I R E D O = 2

- Y(J,jti)

GO TO 6 h CTO 6Uf,

GO TO

3u7 C3<J8 C

3«9 C35? C

351 C352 C353 C

REGARDLFSS Df THE SUCCESS OR FAILURF HPR1, PR2, A N J PRJ ARE COMeuTEP, BY wlHlAT ORDE" N3 - 1, CODFR N3, 05 ORDER NQIN THE CASE OF FAILURE, RR3 : l.E?:'THE S^ALLFST OF T«ESE IS Pt T E 1 ^ T Nf pACCORDIMGLY. IF T H E DRriER IS TO *EADDITIONAL STALED r>ER T V t T T VF ,

FACTO»Si" H COULP BL DlvIOfD• 1, RES DECTIvFLY,

TT AvOlP AN ORDFR INCREASE,

ANL> THt nf» ORDFR C HO^ENCPM pJfE ONE

35" C355 52? »R3 1.F+2C356 IF (L .ED, L M*X) GO TO 5U3357 D1 s f!.358 DO 5^f I = 1,N359 533 Dl s Dl + f(ERRPR(I) - Y ( I. i.*AX ) 5 / Y M A X ( I) ) * * i360 ENQ3 s ,5/S-LOAT

109

Page 114: LA-7595-M U MOL1D: A General Purpose Subroutine Package

3 6 !3 6 ?3 6 3

Es ,5/HOATfL)

a C(D/E)*»EN32)*1,? • 1,*E«6aR1 E !,E»2tfIF *N3 ,F3. n CO TD 5b»0 * PI.00 55B I « lrM

D • D • (Y C I r L"./YM*X(I) )•*?ENQ! • ,5/fL0firtM3)PR1 • ((0/E0W)*»ENQl)*I.J • 1.3E-6IF (PR? .LE. PRJ) GO TO 570IF (PRJ ,LT, P8l) GO TO 59PGO TO 58fIF (PR2 ,GT, PR]) RO TO 58"N[K3 : NORH s l./p"2GO TO fc2(1N£*O = NO - ]»H = 1.GO TON£w(j sRH c i.IF (BH ,LI, 1,1) GO TO bl?DO 6F0 I = 1»M

V ( l , M E W 3 + n = F RRD« ( 1) • EL ( L)/FLOAT ( L)GO TO 63PIDOLIB « t ?GO TO 73CI F ( ( K F L A G , E 3 . P I ) . A N C 1 . ( " H , [. y , l . U ) G O T O 6 1 PI•--•-••••••---••-.--.•>----•»--•.---•---••---.-.-••---•••--..••.-•"

3<M C IF T H E R F IS * C H A M G f OF O R D E R . R E S E T N Q , L, * N D THE C O E F F I C I E N T S ,3 9 ? C I* iNy C A S E H IS R E S f T A C C O R D I N G TD RH AND T H E Y ARR A Y IS R E S C A L h D ,3 9 3 C THE N t X T T F R O " fcQH IF THE S T E P WAS OK, OR R E D O T H E S T E P O T H E R W I S E ,

56536636?36B 550369370371 56337?37337a 5T?3 7537637737P37P38C38138?38538"385586387 61238?369

395

39T398399

IF (NE«3 .Ea, NQ) GO TO 170

L = N3 • ]IRE T c 2GC TP 1JC

U01 CCC

U0« c<I05 C«U6 Ca0 7 c«08U09

<U?

«16«17

U19

C O N T R O L R E A C H E S T H I S S E C T I O N IF 3 0 ' M O R E F A I L J R F S H A V E O C C U R E O ,IT IS A S S U M F D T H A T THE D E R I V A T I V E S T H A T HAVE A C C U M U L A T E D IN T H EY A S S A Y H A V f E R R O R S OF THE W R O N G C1RDER, H E N C E T H E F I R S TD E R I V A T I V E IS R E C D M P J T E ^ , A N D THE O " D t R IS SET TO 1, T H E N» IS R E " J C E n Bv A F A C T O " OF J 0 , AND TH£ S T E P IS R E T R I E D ,A F T E R A TO T A L OF 7 F A I L U R E S , AN E X I T IS T A K E N W I T H K F L A G r . 2 ,--•-<-.----.--•-->.....•-.-•..•--...-.............-..--..........

IF (KFLAf, ,eO, -7) GO TO (,T0RH - ,1Rh s AMASl(HMIN/ABS(H),RH)H • H«RHCALL DIFFJN (N, T, Y» SAVEDNFF s MFF • 1DO 65» I = 1. N

Y(i,?) E H*S*VEJ(DI«EVAL = MITERIDOU" = IfIF (NO ,F3, 1) GO TO 2CPNO s 1L » ?

no

Page 115: LA-7595-M U MOL1D: A General Purpose Subroutine Package

02! I»ET t 3«22 60 TO IS*

«2<t C ALL ffETuffNS AS£ MADE TH80UCH TH7S SECTION, M IS SAt^D IN HOLD02S C TO ALLOW THE CALLER TO CHANGE H ON THE NEXT STEP.«26 C=--.-=.-.----------•-•---•-»---•-------•-•------.-—•-•-•«-.«.---

029 673

682

6*3703

KFLAG

eo TnKFL'.GCO TOKFLAGGO TO9KAX SHOLD =JSTAQT

7c7BT

-1

-2

, j

anif.Hs NO

037 (>••»•»--•»•-•--<»•--••"••'•- E^D OF SunROJTINf

111

Page 116: LA-7595-M U MOL1D: A General Purpose Subroutine Package

SUBROUTINE COSET

C O S E T N 3, E L , TQ, M A X D F R )

2 CS Ca C5 C6 CT C8 C9 C

It" C11 C1? C13 Cla C15 C16 C17 CIP10

21

2526272?293RZi3?3^3«3536373539U3UlU2C3uaijS

ib

07a8uo5(»5152535a5556575851?6?

COSET IS CALLED BY T H E INTEGRATOR A JO SETS C O E F F I C I E N T S U 5 E 0 T H E * E .THE VF.CTOB F L , OF LENGTH N3 • 1, D E T f R * I N E E THE BASIC « f T H D n .THE VECTOR T 3 , OF L E N G T * «, .!S INVOLVED IN A D J U S T I N G T H F STEP SIZEIN R E L A T I O N TO T R U N C A T I O N E R ^ O p , ITS VALUES ARE GIVEN Rv THt»ERTST A R R A Y ,THE VECTORS EL AND T3 DEPEND ON MFTH A N D N Q ,COScT ALSO SETS MAJiDER, THt M A X I M U M ORDFR OF THE METHOD A V A I L A B L E .C U R R E N T L Y IT IS 1? FOR Th? A D A M J M E T H O D S AND 5 FOR THE 8()F M E T H O D S ,L M A X s MAXDCR • 1 IS T H E NUHSER OF CO L J M N S IN THt V A R R A Y .THE M A X I M U M ORDER USED M A Y BE RF.3UCFD Sl^PLV B Y D E C R E A S I N G THEMUMBERS IN S T A T E M E N T S 1 AND/OR 2 P E L O * .

THE C O E F F I C I E N T S IN BERTST NEED 3E r.IVFN TO ONLY ABOjTONE P E R C E N T A C C U R A C Y , T H F D « O £ R T •, W H I C H THE ti»O^*S A P D E A R B E L O »I S . . C O E F F I C I E N T S FQR O^DER Nj . lf C O F F F I C I E N T S FOR O'DFR N 3 ,

C C O E F F I C I E N T S FOR ORDER N3 + j , ^ T T H I f. E A C H GROUP SB^ T>-EC C O E F F I C I E N T S FOR T H F A5A"S M E T H H D S , FOLLO-fcD 3Y THOSE F T ; T H EC 9DF M E T H O D S .

D I M E N S T D ^ t i ?,?, J),EL( 1 J) ,Tf)(u)l., I,,a,,1., 391

1,, 1 ., ,5>,.16b7, .714167, 1., 1., 1., 1 ., 1 ., 1 ., 1. ,8.,12.»2«i.,37.6«,53,33,7l»,B6,R7. <»7,l?b,o,

1 2 6 . 7 , 1U7.0,168.fi, 1 9 1 , 0 ,?.3,a,5,7.333,l'",u?, 1 3 , 7 , t,,l., l . , l , , l , , i , ,l2.0,2u,P,37,B9,53.33»7l\PiB,fl7 i9/,i0t>,9 f

1 2 6 . 7 , 1 0 7 . a , 1 6 8 . 8 , I ' M . 0 , 1.,

GO To fi,2),MFTh

GO Tn ( !?1 , 1 0 2 , 1 PI 3» I"". 1<*5» lt"6, 1 C 7 , 1?P, 109, 11 if., 11 1 , 1 1 2) , M JMAXDFR :: 5GO Tn M"M»2P?»2<'3>?e

THE FOLLOWING COFFfr! r 1F. NT S s^OoLO BE Ot F J N E O TO MA C H I N E A C C U R A C Y ,FTR A GIi/EM OR|)to O , THEY CAN HE C A L C U L A T E D BY uSt OF TriFGFNERATINjr, oat Y N O M I A L L f T ) , w^OSE C O f F F I C l f N T S ARE E L f l ) . .

L C T) = E L C H • E L C ? ' * ! • ... • E L ( N 3 * 1 ) * T * * M O ,FTR THt IM»LICIT A P A M S " E T H P ^ . S , L(T) IS GIVEN BY

DL/DT e (T*ll*(T + ?)» ... • f T + M - l )/n, L C - 1 ) = r>,

Fn9 THt 30F MELCT) s ( T t 1 ) * ( T * ? ) * ... » ( T » N j ) / K ,

W H E R E n. s F A C T D R U L ( N Q ) * C1 + 1/? • ... + 1 / N 3 ) ,

THE OROFR IN KIMPLICIT ADA"SaoF METWOOS OF

THE GR0JP5S OF1 TO 5,

R «ELO* IS,,1 TO 12,

101 ELfl) = ],-*GO Tn 9J.M

132 F L M ) s ,1.5EL f 31 = P.5GO Tn Q r1

1(13 EL(l) = 0, 1 b6b66hbbh6bTt-,i1Eu(3) = t',75

112

Page 117: LA-7595-M U MOL1D: A General Purpose Subroutine Package

6162636<JfaS666768697P7172737a757b7778798"1

Rl82838U8586876889909192939a9596979899

1001011021031PU! 0 5106107108109S 1 a

11111211311«11511611711911912!»

ie«

105

10b

1P7

106

139

110

1 1 1

ELCU)GO TOELtnE L t 3 5UU)E L t 5 )GO TOELf nELf J)ELf'OEU5)ELt6)GO TOE L f 1)EL C 31E L t u )E L ( 5 )E L t 6 )E L f 7)GO TOE L t l )EL C 31E L t U )F L t S )E L t 6 )E L ( 7 )EL tS )GO TOELP,)FLU)E L f a iEL (51CLC6;E L ( 7 )ELf 6)ELC9)GO TOELtnE L t 3 )E L f u )E L f 5 )E L t 6 >ELC7)E L f 8 )E L f 9 )E L f 1 0 )GO TOELC1)E L ( 3 )CI f (i \u U V M )

E L t S )EL(6 )E L ( 7 )E L t e iE L < 9 )ELf l"i)E L t l i )GO TOELtnE L t 3 )

X 1 , 6 6 6 6 6 6 6 6 6 6 6 6 ? E > 0 !90PB

B

S

r

0 .3759, 16666666<>666TE»!113,3333333333333fc-0iU,1666666666*67E-0?

93PE

S

S

S

B

9(sg

X

sE

S

9 iz

E

B

S

9&

-S

E

S

E

rV,

9 i;

--i

B

-

5,«86l l l l l l l l i lE-al1.0U16666666667«,861i111111111E-31) t0«l6666b6b66TE-al8,33333i3333333E-a3

3Ps , 2 9 8 6 i i n n n i E » 3 i1 , U166666666670,6251,77PB33^333333E-01?.P251 . 3P«flflBP«PB88(?E-a3

f?3 , 1 5 5 9 1 9 3 l 2 l 6 9 ' 5 t - 3 11.22S7,M*5185lP51B5E«3!2.5520833333333C--3I«,861 l l d i i n 11E-021 , 8 6 1 1 1 1 1 i 1 1 1 1 1 E - 3 3' , 9 P a i 2 6 9 8 ^ l 2 7 P E - 3 «

3,Cu?2«5S703T0OE-3l1,296fl2857iu266P.be5iB5185lP52E-?l3.35T638888P889E-017 , 7 7 7 7 7 7 7 7 7 7 7 7 8 1 - 3 2i , 0 6 U S l u 8 i U 6 1 « 8 E - 3 ?7t9365("793fc5P|79F-3a2 tU6Bi587jBl5eTE.-«5

JO8, t3u868030U«(»92E-311 ,5589285711286",7655«<?3280"23£-310,117JS751,11J5"16666fe6?t -a l0 ,01875l. l'»3«5239095?38t-331, 116?7iojfl57loE-3U?.7'.-,573!9?23986t-36

93P)B

B

E

sB

E

B

S

2 ,86»75aU6«2 e 57E-3 l1 ,<UU«841269RU1I a V I f C I 3 O 0 " 1 ° J O

«o9S5670t9<!0035E.3i0.1UBU375?,9H6057f)98765«E-323.72B238i»952381E-332,99665?U6560R5t-3«l,3778659fol 1<>93E.«>?I52.7557319J2J986E-37

X

a.8P>18(»5i>60«39i4t-J)l1.UfcUuBoi?698ui

113

Page 118: LA-7595-M U MOL1D: A General Purpose Subroutine Package

12112212312<J12512b12712812913«1311321331 X 11

13513b! 3 71381 3 < ?1U0l u i142103I d a

lasl a t\a?U 51«91501511521531SU15515b157158159I 6016116216316U165l b b167UO

169

112

201

202

2B3

200

2 0 5

C90<J9 1 *

E W « > iELtFi r

5) iM i

ELC7) %Eu<8> «t i cEUCEl tCLfCDE L (

9) i10)111):12):TO c1) J

EL(3) sE l U ) st i n ) •Eltb) iELtF UELtf i tF L fELtELCGOf i tGOe i tELtGOELtEL(ELCsnELC

71 «8) s9) :1?) =1 1 ) :1 ? ) :1 3 ) :TO S1) :TO 91) s3) a

: 1 .: 5 .E 1 .I U,

t 6 .> 6 .t a .: 1 .

« 2 .>00E ? .

s ! »

6 1 .

: 6 •: 2,5.

<?.1 .9 ,

1 .1 .? .

3 "1 .

0?6 ,3 .

Tn 9301) s3) sa) s

5 .

17151«55 t5?6U67 9 J & P 1 9 ? [ » J 5 2 7 E » 0 ]88S228. . - l55?ei3E-0ll «S03b2b5u32 lE -0??1 1 1 "« !7989«?E-33252?*679»9a ieE-3U("al7af»i3?65l3£-355l5b5255T1152E-?b5?S21083S5au?t-0fl

7a?b55<i00jlb0E-0l52<>93a&72«3B7Sbd27llfeU?212^03tatftD3IOfl77f»^1

30«5B?0?6u55^E-3 l5b972ub l0523?E-?2439a8a l?69«a IE»?31 l"»27aO6b93!2E-Z^09}9153u39 !53 f - -?S82?S3c!86aiO75t.-?t-55-,3i2fe55)3l2b5E-?7?87b76b9878bPt -3 ( '

P

6 b b b * 6 6 6 6 6 b 6 7 f - 3 133333J333J353E-01

U505U5U5U5U55E-31E L ( 1 )9 ,

TO 93Pn =

E L C 3 ? s

ELtELtGOELtELt

a) s5) s

f .(».

f .f .

Tn <;3Pi1) =3) i

E L f a ) =

EL<ELt

00T

TQtUET

END

5) sb) =

913

at K)a) sJPN

« •8 .3.5 .3 .

K :E

, 5

09C9?9("9PI9^91E«32

^H72P2

379§6£P1a37956fc-2l21 I b 7 e f l 3 2 l I 6 » t - Z ll P 2 ) « 9 7 e i 3 2 l ? E - ? li i7«u5255U7Uu5E-£?6u9bJ50^6«9baE-33

1 ,3= F"TST (N"3, wfcTH, <)*TQ(2)/FLOAT(MQ+2)

114

Page 119: LA-7595-M U MOL1D: A General Purpose Subroutine Package

23056T8<>

1&

111?1310151b]7IB

SUBROUTINE PSETB

(Y, Nft, CON, MITER, IER)Y(N0,j)

J)

21

COMMONCOMHONCOMMONCOMMONCOMMONCOMMON

/GEAP2//GEARS//GEARU//GEARS/

/GEAR?//GEARS/

EB»ORtnS»vElU)S*VE2(1)Pw(l)IPJV(t)

PSETB IS CA L L E D BY S T I F F B *P COMPUTE A M O P R O C E S S T H E M A T R I X9 = 1 . M * E L t n * J , WM£«E J IS AN A P P R O X I M A T I O N TO THE J A C O B I A N ,THIS IS T*E VE R S J P N FOR BA N P f D FO«M OF J,J IS CO«9UTF0» E I T H E R BY T H E J S F * - S J P p L l E D R O U T I N E PDF)IF *IT£R s \, QR BY FINITE 0 1 * F E R F N C I ^ G IF M]1ER S ?,J IS ST O R E D IN PrJ AND R E P L A C E D BY p, USING CON s - i » E L ( S ) .THEN P IS S U B J E C T E D TO LJ O E C O M P O S I T I O N IN P R E P A R A T I O N FORLATER SOL'JTIQN OF LINEAR S Y S T E M ^ W I T H P AS C O F F F J C I E N T M A T R I X .

I N A D D T T J P N r n V A R I A B L E S n E s c i B E n P R E V I O J S L V * C O M M U N I C A T I O N*ITH PSETB USES THf F O L L O W I N G , ,

EPSJ s S0»T(U.;!1jND), U S E D IN THE NU M E R I C A L J A C O B I A NZ" C «« 5 ML • MU • 1,25 C NMl E N0 - 1,26 C27 C t

28 C20 IF (MTTER , E 0 , 2) GO TO 2,a5C C IF MITER r J, C*LL PD« *NP MjLTIPLv BY S C A L A R ,31 CALL PPB t'W| T, Y, P W , N P , M L , HU)J2 DO 1? I s 153 10 P w c i ) « P3« GO To 9<J35 C IF MITER s 2, HAKE M* CALLS TO OIFFUN TO A P P R O X I M A T E J, ------36 20 D s g,37 00 JPl I B 1,N56 JH 0 a 0 4 S A V £ 2 ( I ) * * 23<? KB = A B S C H 5 V J S 3 R T ( D J * 1 , E 0 5 * U R O J N D

a? C THE OR I G I N A L VALUES OF Y C , 1 ) ARE SAVED T E M P O R A R I L Y IN E " R n R ( ) 4

a I DO up I s 1 , NU2 4 0 E R R O R f l ) = Y C I # 1 )«3 DO 8? J = l, Mw

05<tb0708

5?5152535"5556575S5960

50

fc3

DO 5IR

YCC A L LJ\ «

,fl K = 1 , K M A Xe J 4 C f - l ) * M « (s A M A X l t E P S J « Y M A X (

i,n « vfi.n • ROTFFUN ( N , T , Y,J«N0 • NflMi

DO 7 H K : l , K M A xJJRDI 112I IDO

S J • (K . J ) t M H

I)»R!»)

S A V E D

= A M A X l ( E P S J * Y M A X ( J J ) , R 0 )s CON/R

s **AX<*( J J - M J , 1 )= MlMf)( J J 4 M L , N)s J l • N M I * J J

6P I * I I , I?P d t i n = ( S A V E I c nI I = I I • NMI

• S A V E 2 t I 3 ) * D

115

Page 120: LA-7595-M U MOL1D: A General Purpose Subroutine Package

61 V(JJ.l) « ER«O<»<JJ)tZ E»<?O»(JJ> « 0.6J 70 Jl i Jl • N0w6« 8I» CONTINUE65 C ADD lDENTITV MATRIX,66 90 DO 100 I a \,U67 JB3 Pw(NBML»I) » PW(N0MU*I) • 1,66 C DO LU DECOMPOSITION 0" P. »..---------.--•---•6<» CALL DECB (N0, N, ML, MU, P*. IPlv.. IER)73 HETUPN71 c...................... END OF SUBROUTINE PSSTB72 END

116

Page 121: LA-7595-M U MOL1D: A General Purpose Subroutine Package

SUBROUTINE DECB

1 SUBROJTINE OECB ( N f l l * , N , M L , M J , B , I P , I E R )i. DIMENSION B ( N 0 l M , l ) , I » ( N )3 C • «•0 C LU DECOMPOSITION OF BAND MATRIX 4,, L*U s P*A , hHERt P IS A5 C PERMJTATION MATRIX, L IS A UNIT LOfcER TRIANGULA" MATRIx»6 C AND J IS AN UPPER TRIANGULAR MATRIX,7 C N • ORDER OF M&TRIX,8 C 8 I N BV ( 2 * M L + M U + n ARRAY CONTAINING THE MATRIX A ON INPUT9 C AND ITfc FACTORED FORM ON OUTPUT,

10 C ON INPUT, BCI»K) (l.lF.I.LE.N) CONTAINS THE K-TH11 C DIAGONAL OF 4i OR A(1,J) IS SCORED IN B{ 1, J-I **L+1> .iz c ON O U T P U T , B C O N T A I N S THE L AND J F A C T O R S , W I T H13 C J IN C O L J M N S 1 TO M L » M J * 1 » AND L IN C O L U M N S1« C M L + M J + 2 TO 2 * M L * M U * J ,15 C M L , ^ U = W I D T H S OF THE L O W E R AND U P P M P A R T S OF THE B A N D , NOT16 C C O U N T I N G T H F M A Y N D I A G O N A L , T O T A L BAND*IDTrt IS M L + M J + 1 ,17 C NDIM = THE F I R S T D l M E N S l O M ( C O L U M N L E N G T H ) OF T H E A C I R A V 3,18 C N D I M M j S T BF , G E t N.19 C IP s A B R * Y f)? L E N C T H *j C O N T A I N I N G " I V D T I N F O R M A T I O N ,20 C IER = E R R H R I N D I C A T O R , ,21 c s 3 IF NO ERROR,22 C = K IF THE K-TH PIVOT CH05F.N **S ZERO (A IS23 C THE INPJT ARGUMENTS ASJE NDIM, N, ML, Mij, B,£U C THE OUTPUT ARGUMENTS ARE B, IP, IER,25 C - --- -26 IER s ?cl IF CN .ED, S) GO TO <»228 LL * ML • i"U • 129 Nl s N • l355 IF (ML ,E3, fl) GO TO 3231 DO IB I a 1, M L

3? II s MU • I33 K = ML • 1 • I31 DO If J s 1,II35 if s d . j ) = eri.j+to36 K B II • 137 DO 20 J = KfLL3B 20 B(I,J) = 0,39 3? CONTINUEU« 32 IS = ML41 DO 9? N3 s 1,MU2 NP 8 NR • 1a3 IF (LR .Nfc. N) LR e LR • l<iti MX s NRUS KM r ABS(B(NR,1)346 IF (ML ,tD, 8) GO TO H?«7 DO III? T : NP,LRa8 IF (*BS(RU»1)) •LE, XM) GO TO u*U9 MX = I5d XM s ABSCBdi i))51 <10 CONTINUE5? 42 IP(NR) = MX53 IF (MX ,E0, NR) GO TO 635U DO 5C I s 1,LL55 XX s B ( N R , I )56 B(NR,I) « S ( M x , D57 50 B(MX,I) « X£56 60 KM s B(N9,1)59 IF (XM ,FOa 0.) GO TO |.1«6? B(NR,1) B 1,/XM

117

Page 122: LA-7595-M U MOL1D: A General Purpose Subroutine Package

6! If (ML, ,po, Pli iJO TO 9f6? KM c .R(NR, ] )63 KK s MJNp(M,MJ,H..I )bU DO 8f» I = NP»l»65 J s H • 1 • N?6b U : B(!i n*XM67 3(N»,JJ • XS68 DO 7P II « 1#KKo? 70 B(I,II) « B(I,11*1)7P 8(1 B(I,LL) • 0.7i 9f5 CONTINUE7? 9? N(? = M73 IF tsi(N,l) ,F0, B.) GO TO7" B(M.I) s 1,/B(N,75

7778 C-«.--••>-•.............. E^D OF7'

118

Page 123: LA-7595-M U MOL1D: A General Purpose Subroutine Package

SUBROUTINE SOU

1 SUBROUTINE SOI.B <»4DIM, N, M L, M J , B, ¥, IP)2 DIMENSION B(NDlM,i),r<N),lP(N)3 C - — - - - ^ •-«« C SOLUTION OF »•> a C GIVEN U DECOMPOSITION Of * FRO" OECB,5 C V « RIGHT»N*NO VECTOR C, OF LENGTH \, ON 1NPJT,6 C S Sn'.JTION VECTOR X ON O"TP|JT,7 C ALL THE *«GU«ENTS ARE INPjT IRGjMfcNTS,8 C THE OUTPUT ARGUMENT IS V,9 !:••»••-•--•-»•.-»-»-•-•.-.---»--•-.-—.-».-.•«...•.•.»••»•»•»»••«--«

10 IF CM .Ea, n eo TO 6011 m 1 v • 112 LI « ML • Mil • 113 IF (M|. ,E3. VI) GO TO 321« DO 30 N* B 1.N115 IF (IP(NR) ,EQ, NR) GO TO 1016 J 1 IPf*i«)17 XX x YtNR)18 Y(NRJ c Y(J)1" Y(J) s XX2P» If KK c MTNP(N-NR,ML)21 DO 2PI I S l.KK22 2? V(N=?*I)23 30 CONTINUE2« 32 LL = LL - 125 V(N) s2b KK s 027 DO 5» NB s J»N126 MR c N • NB29 IF (KK ,NE, LL) KK a KK • 13f» OP * a.31 IF (LL ,E0. 0) GO TO 5P32 00 40 I s 1|KK33 a0 DP * Dp • B(N«,l*l)*Y(Np*i)5U SB Y(MR) s CMNR) - 0?>)*8tN«,l)35 RETURN36 60 r(1) c V(1)*B(1, ])37 HETURN3a c--»--..----.--..-------- END OF SUBROUTINE SOLB3"> END

119

Page 124: LA-7595-M U MOL1D: A General Purpose Subroutine Package

SUBROUTINE PDB

J SUBROUTINE PDBUODE,T,vrPD,NO,ML,MU)2 C O H M O N / M O L C J / I W . T L . C P J TS C SUBROJTIKE TO CALCUL*<E TME JACOHIAN MATRIX FO* ODE SOLVERa C I* MOllD TH£ JAcOBlA" IS A»»PRO)ri«ATEP Br FINITE P I F F E R T N C E S5 f HOWEVER6 C IF THE JS£» « I 8 H E S TO CALCULATE THE JACOBIA*. E X P U K I T I _ V * w7 C IS AVIALABIE IN GEARB BV A. HlUQMARSH8 HRITE(lM,ld)Q IB FORMATCJ^H SUBROUTINE POB CALLED BUT NOT PROVIDED )10 CALL SOLDMP(NODE,Y)11 CALL EXIT12 END

120

Page 125: LA-7595-M U MOL1D: A General Purpose Subroutine Package

SUBROUTINE FFTfltE

1 SUBROUTINE FFT8u2(N2PO*,X, *)2 DIMENS!ON X U ) . Y ( l ) , 1.(15), CS(i?8),SSU28)3 EOUIV»LENCE(Ll5,L(l)),(LU#Lt2)).(Ll5#t(3)),(Ll2#LCa)),(Lll,L(S)),a J(LlB#tf6)).(L9,L(T))»(L8,L(e))#{L7»L(9))#tL««,L(ltl))f(L5,L(M))i(tU5 2.L(12)),(L5,L(lJ)),(L2»LU«))f(LliL(lS))6 DAT* 1ST /i)/7 C8 C THIS PROGRAM REPLACES THE VECTOR Z*X*IV OF LENGTH N B?»» N2P0w B*9 C ITS FINITE DISCRETE COHPLE* FOURIER TRANSFORM, IT PREFORM AS MANy10 C BASE 8 ITERATIONS As POSSIBLE AND T H E N FINISHES WITH A BASE u11 C ITERATION OR A BASF ? ITERATION IF NEEDED, THIS PROCEDURE IS12 C APPROXIMATELY UP PERECNT FASTER THAN A BASE 2 FfT AND 20 PERCENT13 C FASTER THAN A «•? FFT PROCEDURE, REF» G,D, BERGLAND,BELL L*BS 19671« C15 C BEF, FP9 FFT USE IN SCIENTIFIC COMPUTATION*\b C «, H A M M I N G , NUMERICAL METHOD FOR SCIENTIST AND ENGINEERS 2ND ED,,17 I wiLEv, 197J18 Cit NTHPn =23 NBP02S !F(NBPPiO J7,J#l72? 17 L N G S N T H P O23 FLNGsLNG2« C HEVALJATF SINES AND COSINES nroLV IF Ff-fbUc IS CALLED25 C A DIFFERENT VALUE FoR N2P0"2b IF U N G - l $ n 17|,S75,17127 C SAVE SINES *ND COSINES FOR '.ATER USE2P 171 L S T I L N G2<» DTS6.2BJ185J0T179/FLNG32 CS(l)sl,3) SS(l)Bg,32 T H = fe).3 3 N0=LST/83« 00 172 I « 2 , N D

35 TH=TH+DT3fr C S ( I 5 s C O 5 ( T H )37 172 SS(I)s SIM(TH)38 CJ«J C * * * * » A D I X (t P A S S E S I F AN|VI P 173 DO 1 IPAS5= l ,N8P0wa\ NXT|.T C 2 * « ( N 2 PHZ LENGT Bfi*N)'TLT«3 SCsFL<|U DO 1 J s l , N X T L TUS NRG = F t O A T ( J - l ) * S C + 1 , 5lib C l - C S ( N R G )(17 S 1 = S S ( N R G J1 6 C 2 = C i * * 2 - S l * * 2at 5 2 = C l * S l + C ! * S l50 C3=C1*C2-S1»S251 S3=C2*SI*S2*Ci52 C«=C2**2-S2**253 S«=C?»S2*C2*S?5« C5=C2«CS-S2*SJ55 S5=C3*S2+S3*C256 C6=C^**2-S3**257 S6=C3*S3*C3*SJ58 C7=C3*C«-S3*S«59 S7eCU*S3»S««C360 OD 1 IS3L0 sLENGT ,NTHPO ,LENGT

121

Page 126: LA-7595-M U MOL1D: A General Purpose Subroutine Package

616?63 J25J1+NXTLT6«6566676869

7172737a75Tfe7778 4 1ls¥(Jl ) < •*(J5)79 M?sv(J2)*rr Jb)

(Bl »IU = v( J25-V( J ti J82 » I 5 S Y ( j n » V ( J S )83 AI6=Y(J2)-VfJb)SU I 7 ( J 3 ) - Y ( J 7 )

66878889

92939U B I l s A l U A I J9 5 R I ? = A I P - A 129 6 8 I 3 = A I 1 - A I 39 79P99

\?^ BI7sAI5-AR7101102103 I F ( J - n ?,2,tB104 IS XCJl)= CU*(B p?-BRl)-S«*105106107 ) 2 I 3 i3 08 Jf(J3)sC6*(Sfi2*Bi3)-S6*fSI2-«B3)1 J

p , 7 i 1 7 1 0 b 7 B 1 2 « ( B « ( 5 - H I 5 )H I T I = 8 , 7 0 7 i a 6 7 8 l ? * C 9 « 5 * S I S l1 1 2 X ( J « ) s C l * ( B » a * T R ) . S j * ( B I U t T l )1 13 V ( J < i ) s C l * ( B I « * T n + S l * ( B » u » T ( J i

1151161 1 7 ,1 IB X ( J 6 ) = C 3 * C B R 6 t T R ) . S 3 * C B l 6 * T l )

122

Page 127: LA-7595-M U MOL1D: A General Purpose Subroutine Package

121122 GO TO 1

125 X(J2)sP?2-B!3126127128125 TR = 8.7e71!'b7Bl?*Cal»5-BIS)13?131 X{.132 Y{.131 X(.15" Y(.135. TR:13b TJ:J 37 X U158 Y(>!3"la?1U1 1 CDMTTNl.'Elu? c « * E N D R A H J X 8 P A S S E S1U3 C1«« 3 I F ( N 2 D p « - 3 * N 9 P 0 w - i ^ 5 f b » 7M S C146 C * * * * » A P I X ? PASS I F T H E R F IS1U7 6 DO 61 J=1 , M H P 0 , ?

U " X ( J » 1 ) s X ( J ) -

151 F I l S Y t ,1 5 2 v ( j + n s v r J 5 - v i153 61 Y(J)=FI115« GO Tn 5155 C»* E^D R A O I X ? P A S S156 C157 C***« RADIX U »*SS IF TME^F. IS O^E158 7 DO 71 , T 1 S 1 , N T H P O , a151? J2 = J! + !lb? Ji = J?+ JIbl J«=J3+1Ib2 "?1=XC J1 )*XC J3)Ib3 H2sXfJ1)-XtJJ)leu 93=X(J?)*X(JU)165 ««=X{J?)-x(JU)16b FIlsY(jn*V(Jj)!6716P FI3=Y(J2)i169 FI«=Y(J2)-11 7P XI171172 XI173 YCJ2isFI 1-FI317U1751 76177 71178 C** ENO RAPIX a PAfs17" CIB!" 5 DO 51 J=l t 15

123

Page 128: LA-7595-M U MOL1D: A General Purpose Subroutine Package

181 LCJ)«182 JF(J. . . .183 19 UJ) « 2«*(N?P0w»l-J)1B« 51 CONTINUE185 TJtl186 DO 8 J1«1,L1187 DO e Jg'Jltll.ll188 00 8 J J s J 2 , L S , L 2189 DO 3 j a s J S , L " , L J190 00 8 J 5 s J « , L 5 . l . U191 00 6192 DO 8193 00 6 J 8 s J 7 , L « , L 719U DO 8 J 9 s J 8 » L ' , l 8195 DO 8 J 1 0 s J 9 , L l 0 , L 9196 DO 8 J l 1 B J 1 B , L 1 1»L10197 00 8 J 1 2 e J ! l , L 1 2 » L l l198 DO 8 J 1 3 s J ) 2 , L 1 3 » L l 2199 00 8 J t 1 = J 1 3 # L l a # L l 32W DO 8 J I s J l u , L l 5 , L l «2 0 1 T F ( I J - J I ) 2 « » P » 8ZZ2 2 ? « s X ( U )2 0 3 tiIJ)=<(JI)20U X C J D s O2 0 5 F l a V ( I J )^^b VCIJ)=V(w»I )2 0 7 V C J I ) = F I2 0 8 8 I J s I J + 1209 »ETUBN21? END

124

Page 129: LA-7595-M U MOL1D: A General Purpose Subroutine Package

SUBROUTINE FTFILT

1 SUBROUTINE FTFILT{N,UR,UI)2 DIMENSION FlLT(l285,UR(l)iUI(n3 DATA NL/0/a DATA »I/J,10159/5 C6 C L&*C70S 5IB*i* FFT CONVERGENCE FACTOR7 C US = REAL FFT COEF.8 C ul = IMIGINARV FFT COEF,9 C

\Z IF(N.EQ,NL) CO TO 2011 NMJ • N * 112 P IDN » P I / F U O A T ( M M 1 )15 F I L T C 2 ) = 1 ,\U DO 10 I s 2 , M * l15 ARG = F L f A T ( I . ) ) * " I D * J16 F I L T d + D = S I N ( A R G ) / A R G17 I1619 C2Pi 20 DO If I s ? , *21 U R ( 1 ) = M ! » ( 1 5 * F I L T { I )22 30 J I C I ) s - i I f I 5 * F j L T f J)212«

125

Page 130: LA-7595-M U MOL1D: A General Purpose Subroutine Package

SUBROUTINE COMPAR

1 SUBROUTINE C O M P A R ( N , U , V , V R , U L 2 . V L 2 , D L l p D L 2 , D M A X , D P H # C D L l , C t > L 2 ,2 1 CDMAX. IND)I C1 C SUBROUTINE TO COMPARE THE VECTORS U(N) AND VCN)5 C6 C UL2 • L2 NORM OF U7 C VL2 s L2 NORM OF v6 C DL1 « LI DIFFERENCE BETWEEN u AND V9 C DL? « L2 DIFFERENCE BETWEEN U AND V10 C DMAX s MAXlMlgM DIFFERENCE BETWEF.N \j AND V11 C DTK • PHASE DIFFERENCE BETWEEN u AND V (PERIOD * 2 P D12 C IN THE DOMINATE FOURIER MODE IN U13 C Na2**N2P FOR SOME N2P IF PH&SE DIFFERENCES ARE COMPjTED11 C THE PHASE DIFFERENCE BETWEEN U AND V IS CORRECTED AND15 C THE CORRECTED Ll, Li AND MAX DIFFERENCES ARE C U , ClZ AND C*Ax16 C VR{N) RETJRNS EQUAL TO V ( N ) SHIFTED BY.DPH17 C16 C INO LT Si ERRORS ARE PRINTED ON TAPE Iwe310 C INfe RT 3 «1O PRINTED OJTF>UT20 C lABS(lND) = 1 PHASE DIFFERENCES ARE NOT COMPUTED21 C = 2 PHASE DIFFERENCES ARF COMPUTED2? C TND RETJRNS « +-1 IF N 0N£, 2 * * N ? P AND PHASE ERRORS WERE CALLED FQ23 C O T H E U W I S F IT RETURNS UNCHANGED21 C25 DIMENSION UC2)»VCJ),VR(2),UR(128),VI(128)»UI( 128)26 C URDUND IS THE ROUNDOFF T O L L E " A N C E OF THE M A C H I N E27 C IW is THE UNIT TH£ OUTPUT IS WRITTEN ON26 DATA Iw/J/,UROUND/7,E»1S/29 FNIsJ,/FLO*T(N)33 NH=N/231 NHM1-NH.132 N2P = A L 0 G ( F L 0 » T ( N ) - j / A L 0 G ( 2 , ) + iB . *UR0i iND33 I F ( ( 2 « * f c j 2 P » N , N f , 0 ) . A N D , ( l A B S ( I N D ) , E Q , 2 ) ) I N D s I N D / I A B S (in C35 DLlsi»,pilh DL2S0.037 DMAXsB.036 UL2=?.P39 VL2=P,(*10 DO 10 i s i , N«1 OsABS(UCI ) "V ( IJ )«2 DLlsDLHD03 DL2 = DL2 + r»*r/

iMAxlCO,DMAX)? = 'JL2tU( I ) * U ( I )

Hb 10 V L 2 = V L ? * V ( I ) * V ( I )17 UL2sS3RTfJL2*FNI)IP VL2=S3RTCVL2*FNI)19 »L2=UL?/VL2

51 DL2=SQRTfOL2*FNn52 TFdND.EO.n RETJRN5 3 I F ( I N D . E Q , 2 ) GO TO 2 ?5*1 C55 X R I T E ( I * , 7 0 ) U L 2 , V L 2 « R L 2 , 3 L J , D L 256 20 I F ( I N D . E O , " D R E T J R N57 C58 C COMPUTE PHASF DlFFERFNCt « I T H FF"5 9 C6 0 DO 3d I » 1 , N

126

Page 131: LA-7595-M U MOL1D: A General Purpose Subroutine Package

61 VR(I)sV(I)62 UR(I)sU(I)63 UIU)sf l , f ibU J0 VlCDxB.e65 C66 CALL F F T 6 « 2 ( N 2 p , U R , U l )67 CALL F F T B 0 ? ( N a P , V 8 , v n66 C69 C FIND THE DOMINATF. FT MODE70 C7172 ,73 DO <IC» I = 2 , N H M i

75 I F C A M P T . L E . A M P ) GO TO «0

76 IDDMsi77 AMPsAMOT78 an CONTINUE79 C80 C COMPUTE THE *HA3E SHIFT61 C8283 ,fl« IF{JICIDO^).ME,R,B) PHU=ATAN?fURfIDD«J»UI(IDOH)858687 C88 C CORRECT FOR PHASE SHIFT IN V89 C

9) NHPjrNH*]92 VR(l)=VR(l)«FNl93 SF"»IsSIN(DPH)*FNl

95 00 5P I=2,NHPl96 V«<K)sVRU)97 vnK)=VI(I)98 VRCI)»VR(K)99 Vl(n=-VI(K)

le0 5B KsK-l101 C102 C TAKfc INVERSE FT OF VR = V SHIFTEO BY103 C101 CALL FFTBU2-N2P,VR,vl)IPS C106 C COMPUTE PHASE CORRECTED DIFFERF.NCES107 C108 CDLl=a.aS09 CDL2=0.0

! 1 1 00 bff I s l , N112 CDs4BS(VR( I )»U( I )3113 CDLliCDU+CO111 CDL2scnL2*-C0*CD

15 6B IF(Cn.GT.CDMAX)ib CDLlaCDLI*FNl17 CDL2 = S3R1R IF(IND.EO,2)19 C2? WRITE( H.BF)

127

Page 132: LA-7595-M U MOL1D: A General Purpose Subroutine Package

121122 C12312«52512612712S129130

7012J

8«12

RETURN

70 F0RMATC/,19H [.2 ENERGY OF U s, 1 PE 12, U, /, J <?H L2 EN£RGV OF V s,lPEl2.y»/,19H L ? ( U ) / L 2 ( V ) B , 1 P E 1 2 , « , / , 1 9 H LI "iFFEMENCt =»1"E\2.U,/.19H L2 DIFFFRENCE C , 1 P E 1 2 , 4 , / ,19H M A X DIFFE»ENCF B , J » E I 2 , « )0RMATfJ9^ PHASE DIFFERENCE e,!»E]2,a,/, 19H PHASF CORRFCTED L)»1OH DIFFERENCE r,lPEJ2,a*/,35H PHASE CORRECTED 12 DIFFERENCE =,l p E t ? . « , / , 3 5 H PHASE CORRECTED Mix DIFFERENCE «,!PEi?.<n

ENO

128

Page 133: LA-7595-M U MOL1D: A General Purpose Subroutine Package

SUBROUTINE PDE

1 S J B < ? n j T I N E P D E C U T , U , U X , U K X r F X , T , X , I X , N P p E )2 COMMON / * O L C 1 / I *5 Ca C DJKMy SJB«njTl»JF5 C6 W » I T E ( I r t , I P )7 1 0 F O R M A T f / / , U , l ( 1 0 H * * * * * * * * * * ) , / / ,B 1 39H SJB50UTINE PDF. CALLED BJT NOT PROVIDED,//# IX,9 2 3(JPH**********) )

10 C11 CALL E X I T1? END

129

Page 134: LA-7595-M U MOL1D: A General Purpose Subroutine Package

SUBROUTINE FUNC

1 S J B R D J T I N E F U * C ( F , J , ' J X , U X X , T , X , I X . N P D E )2 COMMON / M O I C I / l»5 CU C5 C6 ECH#7 10 F O R K A T ( / / / » 1 " . J t 1 3 H * * « * « * * * * * ) , / / / ,a l tan S J S ^ P U T I M E F U N C C A L L E D S U T N O T P R O V I D E D * ' t > iK»<> 2 J(

IB C11 CALL EX IT1? END

130

Page 135: LA-7595-M U MOL1D: A General Purpose Subroutine Package

SUBROUTINE BNDRY

J SUBROJT1NE BNDRY(T,UL,*Li8ti.CL#UR.*RfBR,CR,NP0E)2 COMMON /MOLC1/ lms ctt C5 C67 10» 1 «1H SJ6R0JTINE BND»Y C*tLED BUT MOT PROVIDED,9 2 3UQH**********) )JB CII CALL EXITS2 END

131

Page 136: LA-7595-M U MOL1D: A General Purpose Subroutine Package

SUBROUTINE SOLPLTTEKTRONIX PLOT-1Q

2 CJ C4 C5 C()

0K

II1213

1516 C17 V

2fi C21 C22 C23 C24 C25 C2b C27 C?e c2^ C30 C31 C32 C33 C34 C35 C36 C37 C38 C39 C

an c41 C42 C43 C44 C45 C46 C47 C48 C4? C50SI5253545556 C57 C58 C5"» C

e>p c

SUBROUTINE SOt^LT(NODE#T,j2,KMOL)

SUBROUTINE TO I»LOT T*E SOLUTION UZ(-tPDE, NPTS) AT TIME T*T X(NPTS) M£SH POINTSUSING THE TEKTKONIX PLOT 1» GRAPHICS PACKAGE

IF KMQL ENTERS LE|S THAN ZERO THEN PLOTTING IS TERMINATEDKMOL RETURNS -15 IF THERE IS AN INITIALIZATION ERROR

EOMhON/GEAR9/MUSED»NQJSED,NSTEP,NFE,MJE

MAXXP IS THE STORAGE ALLOCATED FOR THE T E « P , *»«*VLSPEED IS THE Tf.KTRONIX LINE S»EEnDATA INIT/P/,MAXXP/584/,LSpEED/96^/

FOLLOWING COMMON BLOCK MUST PE PROVIDED BY THE

IDEN,MGiXAL, JAL»XAXIS(2), U*XIS<NpOE , 21

MG s

WITH THE FOLLOWING VALUES AND MEANINGS FOR ITS ARGUMENTS.NPLT B INDICATES HOW THF SOLUTION IS TO BE PLOTTED

0 EACH POE COMPONENT IS PLOTTED O W «SEpARATE SET DF AXES *ITH D¥NA"IC SCAtING

1 EACH PJ)E COUPONENT IS PLOTTED ON ASEPARATE SET nF AXES

2 ALL THE PDE C0MPONENTS ARE POTTED ON THESAMP SET OF AXES AT EACH OUTPUT TIME

3 ALL THE PDE COMPONENTS ARE PLOTTED ON THESAME AXES FOR THE ENTIRE RUN

PLOT IDENTIFICATION LABEL (AS READ *ITH AN A«,FORMAT)

GRAPH METHOD PARAMETER TO DETERMINE THE TYPE of LINEUSEP TO PLOT THE SOLUTION, IF MG ,GT, » THEN THFSOLUTION DATA POINTS APE DESIGNATED BY »X»,OTHERWISE AN JNMA9KED LINE IS D R A K N , M& A L S O

INDICATES IF BUADRATIC INTERPOLATION IS TO BEUSED BETWEEN THE DATA POINTS, IT HAS THE FOLLOWINGVALUES A^D MFANiN'GSe• - 1 NO INTERPOLATION• - 2 INTERPOLATE ONE POINT BETwEEN EACH PAIR

OF DATA POINTS• • S INTERPOLATE TwO POINTS BETWEEN EACH

OF DATA POINTS

LENGTH OF X IN INCHES (CALCO*P

LENGTH OF V IN INCHES (CALCOMP

S MlNJMjM VALUES OF X AXIS

S M J N J M J M VALUFS OF X AXIS

1)= MINJMjM VALOE OF Utl) AXIS

XAL =

•JAL s

*AXIS(2)

UAXIS(I»

132

Page 137: LA-7595-M U MOL1D: A General Purpose Subroutine Package

61 C62 C U*XISCI.2)s MINIHJW VAIUE Of UU> AXIS, TO PREVENT U(!) FROM63 C BEING PLOTTtD, SET U»XISCI»2) • VAXIS(I.l).6« C65 IF(CiKin,EQ,NRUN5,AMOe(KMOU%LT.0l) CALL FINITTC8,700)6b IF(KMOL,LT,0) RETJRM67 IFCINIT.EQ.NRJN) BO TO «P>68 C6" C INITIALIZE OF FIRST CALL

71 C72 C PRINT OJT PARAMERTERS73 C74 MGA«IA<?Sf MR)75 C?6 C CHECK VALITv 0^' PARAMETERS IN CD"MO>,/PLOTC/77 C7 8 I F ( ( N P L T . L T . P i J . O R . C N P L T . C . T , J ) ) K M 0 L s - l 57<? T F C M R 4 . L T , I . O H . M G A . G T . S )80 IFfXAXISf2),LE.XAxIS(l>)8) MTOTs?82 DO if) Isi.NPDE63 I?(JAXTS(I*NPPE).NE.UAXISJI)) MTOT=NTOT*1

8S IFC^TOT,e3,0)S6 C87 lal68 IFCNi>tT,GE.2) T B M T O T89 WRITECIH,173) IDEM.NPLT,I,MG,XAL#UALfXAXISC1),XAXISC2)fa DO 2? I S I , N P D E9 1 2 0 > K R I T E { T » i , i e 0 ) I . U A X I S C I ) , j A X I S d + N P D f )92 IL=IL*NPDE*993 C9U IFCKHOL.LT,B) WRITEC Ii#190)95 C96 C CHECK IF ENOUGH STORAGE IS ALLOCATED FOR PLOTTING97 C98 MGAN9T=MGA*MPTS*199 IF(HGANPT,GT,MAXXS>) wRITEC- ,160)

10d IF(MGANPT,GT,MAXXP) KMOLe-lj101 C102 IFCKMOL.LT,0) RETjRM103 C10(1 NP = M G A * ( N P T S - 1 )• 1

105 IFCKBC.EO, 1) N P I N P + MGA106 NPPlsNP+1107 C108 NPLSNPTS>)109 IF(KBC.EO.l)

i12 00 1? t e \ , N P L3 DO 3tt J«1 , "CA" X » C K ) s C F L O A T C M G A * l - J ) « X t I ) * F L 0 A T ( J - l ) » X ( I * l ) ) / F L O A T ( M G * }

15 i16

1 1 7 CS C INITIALIZE CONSTANTS USED FOR PLOTTING

119 NSTEPSia? IFRAMEH0

133

Page 138: LA-7595-M U MOL1D: A General Purpose Subroutine Package

121

125 NHDR«012<i C125 C DECLARE TrPE OF PLOTTING DEVICE AND INITIALIZE126 C127 CALL I •JTT(LSPEED)128 CALL BELL12» f L TINPjT(IPAuSE5130 C*LL EBASE151 C13? INIT«NSJ*1SJ C END PLOT INITIALIZATION130 c »***********•*«»•*****••»•****•******»******••*«*****•****•***•**•135 C136 U8 IF(NPtT,NE,3) CALL13T C138 C BEGIN139 CUP

1(12 IFCNHDR.GT.P)1U3 DO 1U3 Isl,NPDEl«u IFCUAXIS(I*N pPE) .EO.LIAXIS(I)) GO TH jut"1 «5 T S d l c N Plub Ks21U7 DO 6P J=I» NODE,

1«9 60150 IF(KBC.EO.l) TS(NPPi)ETSf2J151 C153 C BEGIN INTERPOLATION CALCULATIONS153 IF(HGA-2)110,90,7?150 C155 C MG = 3 INTERPOLATE T"*0 POINTS BETWEEN EvE'tV PAIR OF D A T A POINTS15b 70 TS(<O = (2.*TS(2W8,*TS(5)»TS(Bn*C<Jl157 TS(S)se>,«;»(TS(2)«-TSt<O J158 I F C K B C E Q . l ) T S ( 3 ) « ( 2 . * T S ( 5 ) + 8 . « T S ( 2 ) - T S ( N P P 1 - 3 ) ) * C 9 II S ' DO 60 J S161 80 TS(J+2)s(2,*TS(j)+8.*TS(J*3)»TS(Jt6))«C9I16216316U IFfKBC.EO.l) TS(NPPl»t)B(2.*TSCN 0Pl«»5)*B,*TS(NPPl)»TS(5))«e9I165 GO TO H P166 C167 C MC c 2 INTERPOLATE ONE POINT BF.TWEFN EVERY PAIR OF DATA POINTS$68 90 TS(3)ef3.»TS<2>*6,*TSC<O«TS(6))*fl,125169 IFCKBC.EQ.l) TS(3)«(9,*(TS(2)+TS(U))-TSCNPPl-2).TSf6))«0.0625170 DO 1P0 J»5»NPMG,MGA171 100 T S ( J ) B ( 9 . * ( T 8 ( J * l ) * T S ( J - n ) " T S ( J + 3 ) - T S ( J - 5 ) ) * B , 0 6 ? 5172 TS(NPPi.nB(3,*TS(NPPn*6,*TS(NPPi-25-Ts(NPPi.«n*C,12 li173 IFCKBC.ED.l) TS(NPPi»l)«(9.*(TS(NPPi-2)*TS(NPPl))»Ts(igppi.«)»TS(a)

175 110 CONTINUE176 C END INTERPOLATION CALCULATIONS177 C178 C ENCODE HEADER179 ENCODEf8C20f,lMD9) I180 C

134

Page 139: LA-7595-M U MOL1D: A General Purpose Subroutine Package

181 C IF ENCODE IS NOT AVAILABLE REPLACE TH£ ABOVE STATEMENT *JTH»182 C BEHIND 65183 C w«ITE(b5«2f0) I18" C »EADCfcJ,l5P> ( I H D H ( J ) , J * 1 , 2 U )165 C186 IF(NHDR.E3.P) CO TO 130187 IFfNPLT.LE.I) GO TO 120!88 CALL CPIOT(XP,TS)189 CALL AOJTST(8,190 GO TO 1UO191 C19? \^^ CALL ERASE193 13? CONTINUE19U CALL 8IMTT195 C196 C SET A X I S IF

197 IF(NPLT,E3,P5 GO TO 135198 CALL DLIM<t X AXIS t1),XAXIS(2)>199 CALL OLIM^tU*XlSfI),UAXIS(I*NPDE))20? 135 CONTINUE2«1 CALL SIZESC0.?5)2n2 IFfMG.r.T.?) CALL S ^ M R L ( 2 5

^^3 c2pu C PLOT SOLUTION2B5 CALL CMECK(XP,Ts)2«6 CALL D S P L A Y ( X P , T S )207 C208 C LABEL SOLJT1ON JN M J L T I P L E PLOTS209 CALL * I N C O T ( X P C M » P ! ) , T S ( N P P 1 ) , IxP.ITS)210 CALL MOVAHSCISP,ITS)211 CALL AOJTST(8, IHDR3212 C213 I F ( N H D R , F 3 . » n GO TO 1UU2215 IFCNPtT,E3.33 N H D R S - 12!6 IF(NPLT,E3,3) GO TO I W217 C«LL M0VABS(US&,B25)218 C219 C THE fe IN THE CALL BELOw REFERS TO THF WORD SIZE OF IDEM22P CALL A0UTST(6,IDEN)221 JFHAMEsIFRAMf+122? ENCODEfBBr?10,IHOR) T,HUSED,N3USEO»NTSIIFRAME223 C22U C IF ENCODE IS NOT AVAILABLE REPLACE THE ABOVE $TA-£M£NT225 C R E K I N D 63

22b C URITf(63>?1P" T,HjSED,N0USED,NTS»IFR»ME227 C SEAD(63,15H) (IHDRtJ),J«1,2")228 C229 CALL MOVABSces23P CALL A0JT$T(6B,231 IF(NPLTolE.l) CALL BELL232 IF(NPLT0LE.l3 CALL TINPUT(IPAUSE)233 1OPI CONTINUE23" If(NPLTOGT,1) CALL BELL235 IF(NPLT,GT.l) CALL TINPUT(IPAUSE)236 BETUPN237 C238 ISC F0RM&TC2UA5)239 160 FORMiT(/,5!HINSUFFICIENT STORAGE ALLOCATED IN SUBROUTINE2UP 1 26H MG*NPTS MUST BE LESS T H * N , I « )

135

Page 140: LA-7595-M U MOL1D: A General Purpose Subroutine Package

1 7 0 r O R M * T ( / . I X , ! 0 ( l M « ) f 2 1 * P L O T T I N G P A R A H E R E R S , J P U H * ) , / / , l x , A f e ,1 fcH P L O T S , / , 7 H N P | , T B , I u , /, \ a , 1 6 M P L O T S P E P F R A M E , fcH Mr, s i l ? , / ,

2 u 3 2 I T H x A X I S L E N G T H B , F S , 2 » 7 H r ^ C H E S . / f i r n U A X I S L E ^ t T M s , F b , 2 »J 7 H I N C H E S * / / , ? $ n x A X I S R A N G E S B f T W E F N , 1 P E 1 2 , U » 5 W A N D » l P E 1 2 , uo )

iub J80 F O R M A T t S H U £ , 1 J , ? 1 N ) AXIS RAK'GES 6 E T W E E N , J P E 1 2 , « . b H ANn ,l°E12,i4)2«7 190 F O R M A T C I X , 7 ( 1 K H * . » * » • * * • « ) , / / , ? p w C O ^ M O N / » L O T C / IS EITHER *OT ,208 1 J B H D E F I N E P Of C O N T A I N S IMPROPER V A R l A B L E S , / / , 1 X » 7 ( 1 0 H . « . * * • * • * * } ,2u<? 2 /)250 200 F O R H A T ( 2 H J C , U , 1H) 5251 2JC F O R M t T t l H T « , l P E J 0 . 2 » « w 0 T « , t P E 9 . 1 , 7 M 0 R D E R S # I 2 » T H25? 1 7H F » A H E = . I « )253

136

Page 141: LA-7595-M U MOL1D: A General Purpose Subroutine Package

60 C

SUBROUTINE SOLPLTCALCOMP

1 8UBR0JTINE SOuPLTfNiODE.T,UZ,KMOL)23U COMMON/MnLCl/I^,lL»CPUT,NPD£,NPTS,K£QN,KBC.MOuT»DX,DU,Xf?)5 CL.MMON/MOLEX/NRLIN, UROUND6 C0MM0\/MnLC7/TS(8)7 INTEGER JHOR8 D IMENSION U Z ( ? ) , l H D R C 2 f l ) , X » ( 5 8 U )9 DATA I F R A M E / 0 / , N S T E P S / 0 / # l N l T / 0 / , M A X X P / 3 8 « /

10 C11 C SUBROUTINE TO PLOT THE SOLUTION U Z ( N P D E , N P T S ) AT T I M E T12 C USING THf CALCOMP PLOTTING RDJTINES1J C AT X(NPTS) MESH JOINTSia C NPLT B INDICATOU" FO" GRAPH MJLTIPLICITY

is c i j m EACH DM SEPARATE GRAPH16 C 2 J(I) ALL ON SAMf GRAPH AT EACH TIME STEP17 C J U d ) ALL O N S A M E G R A P H AT E A C W TIMtsIP C XAL = L E M J T H OF x AXIS (XAl MjST Bf ,LE. 1H.)1<J C UAL = LENGTH OF U AXIS (UAL MUST BE .Lt, 1H.)2PI C XAXIS(I) s MINIMUM OF X AXIS21 C XAXISC?) s MAXlM'IM OF X AXIS22 C U A X I S U . l ) s M I M I I J M OF U(I) AXIS

23 C UAXJS(I,J) s MAXIMUM OF U(I) AXIS2 " C25 C KMOL RFTURNS -15 IF THERE Is AN INITIALIZATION ERROR26 C IF KMOL ENTERS LESS T H A N zf«n THEN PLOTTING IS TERMINATED27 C28 C FOLLOWING C 0 * M O N BLOCK MUST RE PROVldED BY THE JSER«25 C3d C CO M M O N / M O L P L T / N P L T , I D E N , M G , X A L , U A L . X A X I S ( 2 ) , U A X I S ( N P D E , 2 )31 C32 C NlTH THE FOLLOWING vALJES A N D " E A N I N G S FOR ITS A R G U M E N T S .33 C NPLT s INDICATES HOw THE SOLUTION IS TO BE PLOTTEDSU C 1 EACH P ^ F C O M P O N F N T S IS ^LOTTED ON A35 C SEPARATE SdT OF AxES36 C ? &LL THE P O E COMPONENTS ARE POTTED ON THE37 C SAME SET OF AXES AT EACH OUTPUT TIME3fl C 3 ALL THE PDE COMPONENTS ARfc PLOTTED ON THE39 C SA"E AXES FOR THE fNTIRfc RUN«P Cdi c I D E N s P L O T I D E N T I F I C A T I O N L A B E L C A S R E A D " I T H A N A hU2 C FORMAT)43 Cuu C MG e GRAPH METHOD PARAMETER TO DETERMINE THE TYPE OF05 C USED TO PLOT THf SOLUTION. IF MG ,GT, 0 THEM THEOb C SOLUTION DATA POINTS ARE DESIGNATED BY 'X',<IT C OTHERWISE AN JNKARK£O LI^E IS ORAnN, M£ ALSOus c I N D I C A T E S IF J U A D R A T I C I N T E R P O L A T I O N I S T O B EW) C USED BETWEEN THE DATA P O I N T S . IT HAS THE FOLLOWING

VALUES AND MFANINGSo• - 1 NO INTERPOLATION• » 2 I N T E P P O U A T E D N E PCINT BETWEEN EACH PAIR

OF DAT* POINTS• • 3 IN.TERPOLATF T«0 POINTS BETWEEN EACH

OF DATA POINTS

505152535A555b575859

Cccccccccc

XAL s

UAL D

LENGTH OF X IN INCHES t.LE, JP)

LENGTH OF Y I N INCHES t.LE. 105

137

Page 142: LA-7595-M U MOL1D: A General Purpose Subroutine Package

61 C XAXIS(l) * MINIMUM VALUES OF X AXIS6? C65 C XAXISl?) » MINIMJM VALUES OF X AXIS6« C65 C U»XIS(I»n« M I N I M U M VALUE OF UCI) *XIS66 C67 C UAXIS(I#3)« MINIMJM VALUE OF U C D AXIS. TO PREVENT U(I) FROM68 C BEING PLOTTED, SET U*XlSCI»2> • YAXIS(I,1).69 CT0 C TERMINATE PLOTTING IF KHOL..LT,?71 IF((INIT.EO.NRJN).AND,CHMOL,LT.0)) C * U C»LCMP(B,0#0,0,»99«»»2)72 IF(KMOL,LT,0) RETURN73 IFCINlT,E3,Nflu'1O GO TO 607U C75 C INITIALISE 0^ FIPgT CALL7b C ***************** »*ft***»**4*«************«**»*«<r*****»*»*****»*H*A77 C76 IF(IFRAHF.ED.0) GO TO 1079 C8? C T*O INDEPENDENT P L D T S WERE ATTEMPTED ON THE 3AME COMPUTOR RUN61 C6a

85 C6h 10 CONTINUE87 C88 C PRINT OJT69 C9B C NPLTA IS THE MAJJIMIU* NUMBER OF FRAMES FOR NYU PLOTTING DEVICES

92 IF(MDUT,E3,6)95 . MGA«1ABS(MG)9U C95 C CHFCK VALlTy OF PARAMETERS IN CO*MON/PLOTC/96 C97 IFCNPLT.LT.1,OR.NPLT.GT,5) KM0L«»l5

99 IF.tUAL.LE,Pi,P.OR,uAL.GT,!0,0) KMOL"-15100 IFCMGA.LT.l.OR.MGA.GT.S) «M0L«-l5101 IF(X*XIS(2),LE.XAxI5(»5)

185 DO Z? Iel,NPDE10« IFtUAXIS(I*NPDE).NE.UAXIS(I>> NTOT»NTOT+l1P5 20 IF(UAXIS(I*NPDE),LT.UAXIS(I)) KM0L"-15106 IF(NT0T,E3,i») KM0L = -15107 C106 Is]109 IFCNPLT.GE.2) I B N T O TH P wRITFCI"»2fl') Ir^EM.NPLTA, I#MG,XAL,UAL,XAXIS(1),XAXIS(2)111 DO 33 Is1,NPDEU 2 30 WRITECI*,21BJ I,UAXIS(I),UAXIStI+NPDE)113 ILslL + NBPE*-*11« C115 IF(KMOL.IT,0) WRITE(IW,«20)lib C117 C CHECK IF ENOUGH STORAGE IS ALLOCATED FOR PLOTTINGlift C1J9 HGANPT«MGA»NPTS+1J2?i IF(MGANPT.GT.MAXXP) WRITE(IW f1B0)

138

Page 143: LA-7595-M U MOL1D: A General Purpose Subroutine Package

121 IFfMGAMPT#GT,MAXX») KMOL0.I5122 C123 IF(KMOL,,lTiD) R : * J R N

12U C125 C NYU INIT IALIZATION126 C CALL PL>lTSBLCJPLTA,lDEN)127 C129 C L*SL I N I T I A L I S A T I O N1?<? IP(M0L/T,ME.6) CALL CAlCMPm,0,2,0, jw, 0)J 5 0 C131 J F C M O J T . N E . t O GO TO «0152 w R I T E ( I w , 2 S n )133 I L « I L * 113U C1 3 5 C 1 6 M M F I L M p L O T . . . I N C R E A S E B E * * ' I N T E N S I T Y , R O T A T E A N D C E N T E R P L O T1 3 6 C

138 CALL : A L C ^ P ( 9 9 , 9 9 , 2 2 » 7 )

3" CALL CALCMPU,1,1,9)«P CALL CALCMPf5,,,5,Pi,3)U1 UB CONTINUE«2 C«3 NPcMRA*(NPTS-l5*1uu IF(KHC.EQ.I) N P B N P + M G A

«5 C106 OXGsnx/FLO AT(MGA)147 DO 5Pi I s l , N Pu e K P c n « x t 1) » F L O A T ( i - i ) * n x r .1U9 5PI CONTINUE

151152 C<»Isi,/9.J53 X A 0 B ( X A X I S ( 2 ) - X A X I S ( t ) ) / X A L

15a15515t>157 ,15B INITaNRJN159 NHDRsB16» GO TO 70161 C16? C END PLOT INITIALIZATION163 C ***•••*•**«»*•*****•••**«*******••***•****»****•*«****•*»***•«****l6<i C. ADVANCE PAPER165 C166 C ADVANCE TO THE NEXT FRAME167 (,0 IF(NPLT,NE,3) CALL CALCMP ((H,pi, pi , Cl, 00PB. 2)168 79 CONTINUE.169 C170 C BEGIN' PLOTTING171 C172173 NSTEPSeNSTEP17" IF(NHDR.GT.B)175 PO 16B I B 1 , N P D EMt> :F(UAXI$( 1 + KPDE) ,EQ,UAX1S(1)) GO TO177 K = l178 DO 8PI J s I , N O D E , N P D E179 TS(K)sUZfJ)180 80

139

Page 144: LA-7595-M U MOL1D: A General Purpose Subroutine Package

181 I F t K B C . E O . O TS(NP).TSCl)182 IF(MGt-2)13?,110,90183 C18U C MG * 3 INTERPOLATE TWO POINTS BETWEEN EVERY PAIR OF DATA POINTS185 C16b 9(1 TSC J) = (2.*TSC 1 ) •8.*T3 ( U)-TS(T) )«C9l18T TSC2)etl,S*(TS(l)*TScJ))186 IF(KBC.E(3.n TS(?)rc2,*189 00 100 J«a,NPMG,HGA190 T S ( J + n = (2i* TS(J*3)+191 120 TSC J*2)sC2t* TSU)*B,MS(J*3)-TS(Jtfe))*C<»I192 T S ( N P . ? ) « ( 2 , * T S ( N P U 8 , * T S C N p - J 5 - T S ( N P - 6 ) ) « C 9 I193 TS(NP.1)e3,5*CTSCNP«2)+TS(Np))194 IFtKRC.EOi1> TS(N9-l)=(2.* TS(NP.J)+p,*TS(NP)-TS(0))*C9I195 SO TO 13d196 C197 C MG = ? INTERPOLATE ONE POINT BET«EfN EVE.RV PAIR Of DATA POINTS198 C199 l)f> TS(2) = f3.* T5( l ) * 6 . * T S n ) - T S r S ) )*f». 125

2,31 DO 1?7) Jsi4,12P TSt J5 = (9.*(TS( J+1)+TS( J-l) J-TS(J + 3?-TSf J-i)

TS(NP-t>e(3,«'TSCNP)*»i,*TS(Np.2).TS<|UP.«))*jSii25IF(KflC.EQtl) TSCNP-l)s(9,*tT5(NP-2)+TSCNP))-TSfNP-«)-TSC3))*5».P |b2!s

2?5 13? CONTINUE2«6 C207 IU«2*I-l

U A D s f J A X l S U * M » D E ) - j A X l S ( I ) ) / J A L

2 1 3 J L s ( T S ( N P ) » u n G N ) / j A p - B , B « i211 ENC0DEC8P»2uPl , i H P t j ) I212 C213 C IF ENCODF IS N O T AVAILABLE USE THE FOLLOWINGZ\U C S E w i w bi

215 C21b C217 C21? IF(NHDR,E3.?) Gn TO \b?-219 IF(NPLT,f3.1) GO TO 1 a»22JI CALL L1NE(XP, TS,NP, t, 0,0, xOGN, VAD,UOGN,UAD)221 CALL SYHPOLCXL,UL,0, 1. I H M . 0 . 0 , u)222 I F ( M G , G T . 0 5 CALL LlNt(XP,TS,MPTs,HGA,•1,u,XOGN,XAD,UOGN P

223 GO TO ibB22U C225 C ADVANCF TO T H E N E X T F R A M E226 10? CALL CAj.Cil»(P,?,f|,0,f13B6!,2)227 15f CONTINUE229 CALL LTNECXP, TS,NP, i, d, t), X O G N , XAH,UOGN,UAD)229 CALL SVMB0lC*L»UL,t».l. !HPu,rf,af a)23K IF(MG,GT.0) CALL L I N E ( X P , T S , N P T s , M G A , • 1 , a , X O G N , X A O , U O G N , U A D )?3) I F ( N H D R , E 3 . - n GO TO 160232 NHD«=NHDR+1233 IF(NPLT,E3t3) NnnRE.l23" CALL AXISCf.5, ,5PI, 1HX, . 1 , XAL, 0.K, XAxISf 1 ) , XAD, 10. J235 CALL AXIS(P,5,.5,b wJfx,T3,fc,uAL,<Ja.,UAXlS(IU),UAD,le.)236 IF(NPLT,EI,3) GO TO 16(3237 IF9AME=IFRAHE+!238 ENCOOEf8P,25P,IHDR) T , H U S E D , N 3 U S E D , N T S , I F R A M E239 C20P) C IF ENCODF IS NOT AVAILABLE USE THE FOLLOWING STATEMENTS!

140

Page 145: LA-7595-M U MOL1D: A General Purpose Subroutine Package

2«1 C SEWJND 632<l2 C WRITF(65,25B) T,HJSED,NQUSED,NTS,IFRAME2«5 C *EAD(63,17P) IHDR

2«5 CALL SVMBOL(0,5,HDR,PS,lHOR,f\f>l,56)2<J6 Ib0 CONTINUE2«7 BETURN

c170 F0RMAT(ISA6)

250 i*0 F0RMATf/,51HlN8UFFIClENT STORAGE ALLOCATED IN SUBROUTINE SO(.PRT,/,SSI 1 26H HG*NPTS MUST BE LESS THAN,IU)252 1«0 FORHAT(jS,7(J0H**«*«»***»)»^/,JiH THE CIMS OPERATING SVSYEM "IILL*S53 1 J9H ONLY Ai,LO^ ONE SERIES OF PLOTS PER RUN,//,7( 10H**********) )25tt 200 FORM&TC/,IX,10C1H*),?1H PLOTTING PARAMERERS ,10(iH*),//,IX,A6,255 J 6H PLOTS,/, IX, I<l,3aH MAXIMUM INCHES (OR 16MM F R A M E S ) , / , T««256 2 16H PLOTS PER FR*ME,feH MJ = ,I2,/,17H X AXIS LENGTH s ,F5,t?,257 J 7H I N C H F S , / , 1 7 H J AXIS LE^tTH = ,F$,2,7H INCHES,//,258 U 25H x AxTS RAMRFS ^ETrlEEN, I PE I?., U, 5 H AN[) ,1PFJ2,<I)259 210 FDRMAT(3H U(,I1,2jH) AXIS RANGFS BETWEEN,IPtIB.«,5H ANn ,lP£!?.«)26P 220 FORM4T(1X,7(10H**#*««*-**),/,?*)H C O M M O N / P L O T C / IS E1THF* NOT ,26) 1 36HI5EFINEP OR CONTAINS IMPROPER VARIABLES,/,1X,7(10H«***•*****))262 230 FORM&T(/,17H 16MM FILM OUTPUT)263 2«0 F0RMAT(2HJ(,II,|Hj)26U 25P FORMiTCJH T = ,lP£1 Ji.2,an OTs,)PE9. 1,7H O R D E R s , 1 2 , 7 M265 1 &HFRAME=,I«)26fc END

•frUS. Government Printing OMice: 1979 - 6 7 / 0 1 3 / 5 4