EOSMOD: A Subroutine Package for Calculating

0 downloads 0 Views 3MB Size Report
A. Subroutine EOSDRE (input .... requested data file, converts it to the units specified by the user, and ..... at a temperature of 300 K and a density of 0.01 g/cm3.
LA-8502-M Manual UC-34 Issued:

.

EOSMOD: A Subroutine Calculating

October

Package for

Equations of State and Opacities James M. Hyman Morris

M. Klein

.

Los Alamos National Laboratory

b~~b~~~

LosAlamos,NewMexico87545

1981

.

ABSTRACT

. . . . . . . . . . .

I.

INTRODUCTION

II.

EQUATION-OF-STATE A. B. c. D. E.

III.

v.

1

.

.

.

1

.

.

.

.

.

2

mltput P and T) . . Dutput R and E) Dutput P and E) . . DUtpUt P and E) . . . . DUtpUt o)

. . . . .

. . . . .

. . . . .

. . . . .

3 5 7 9 11

.

13

. .

. .

13 13

.

.

14

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

(input (input (input (input (input

R P R R R

and and and and and

E, T, T, T, T,

.

.

.

. . .

.

.

. .

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Density Scaling . . Adding New Units . .

. .

. .

. . .

. .

. .

. .

. .

. .

. .

. .

. .

. .

. .

. .

. .

. .

. .

. . . . . . .

.

.

. .

.

.

.

.

.

.

.

.

.

.

.

.

Information File . . . . . . . . . . . . . . . Graphic Output . . . . . . . . . . . . . . Increasing LCM Allocation . . . . . . . . . . . . . . . . . . . Reducing the EOS Data Range Error Flags and Messages . . . . . . . . . . Creating an EOS/Opacity Table for Mixtures . . . . . . . . . Listing the Available Materials

. . . . . . .

. . . . . . .

. . . . . .

. . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

14 14 14 14 14 14 15

USER NOTES A. B. c. D. E. F. G.

.

ROUTINES

EOSDRE EOSIPT EOSIRT EOSDRT EOSORT

SCALING THE TABLES A. B.

IV.

Subroutine Subroutine Subroutine Subroutine Subroutine

.

.

EXAMPLES

. . . . . . . . . . . . . . . .

.

.

.

.

.

.

.

.

.

.

.

.

15

Simplest Example . . . . . . . . Advanced EOS Example . . . . . .

. .

. .

. .

. .

. .

. .

. .

. .

. .

. .

. .

. .

. .

15 16

. . . . . . . . . .

.

.

.

.

.

.

.

.

.

.

.

.

.

18

.

.

.

.

.

.

.

.

.

.

.

19

VIII. RELATIONSHIPS BETWEEN UNITS . . . . . . . . .

.

.

.

.

.

.

.

.

20

.

.

.

.

.

.

.

.

.

21

.

.

.

.

A. B. VI.

MATERIALS AVAILABLE

VII.. LOCATION OF COMPUTER FILES AT LOS ALAMOS

ACKNOWLEDGMENTS. REFERENCES

iv

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

.

.

.

22

SUBROUTINE LISTING

APPENDIX A:

User Callable Subroutines. EOSDRE (input RandE, EOSDRT (input R and T, EOSIPT (input P and T, EOSIRT (inputR and T, EOSORT(input RandT, Internal Subroutines

. . . . . . . . . . . . . . . ...23 . . . . . . . . . . . . . . . . ...23 outputP andT) output P and E) outputR andE) output P andE) output O) . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

24 28 32 35 38

. . . . . . . . . . . . . . . . . . . . . .

42

.

EOSBEG- (initializes all the common block variables) EOSCON (defines the table conversion factors) . . EOSDSL (allows the user to scale the density) . . EOSEFD(finds theEOStable) . . . . . . . . . . . EOSFAS (assigns the input files) . . . . . . . . . EOSGET (loads the Sesame EOS data files) . . . . . EOSXUT (checks the validity of XPARM) . . . . . . EOSOFD (finds the opacity table) . . . . . . . . . T-4 Subroutines usedbyEOSMOD

. . . . . . . .

43 46 49 51 54 56 59 61

. . . . . . . . . . . . . . . . .

63

. . . . . . .

. . . . . . . .

. . . . . . . .

DPACXX(packs real numbers) . . . . . . . . . . . . . . GETEOSX (loads the total EOS tables) . . . . . . . . . . GETINVX (gets inverted EOS tables) . . . . . . . . . . . GETRPOX (loads Rosseland/Planck opacity tables) . . . . INBUFRX (sequential read) . . . . . . . . . . . . . . . INV301X (inverts a 301 table) . . . . . . . . . . . . . ISRCHKX (index search) . . . . . . . . . . . . . . . . . MATCHKX (checks if material table is loaded) . . . . . . RATFNIX (one-dimensional interpolator) . . . . . . . . . TABRANX (fetches a given table for a given material from aSesameII library) . . . . . . . . . . . . . T4DATIX (interpolates the inverted tables) . . . . . . . T4DATX (search/interpolate for atomic data as functions of region, density, and temperature) . . . . . . T41NTPX (interpolates for a function z(x,y) and its derivatives) . . . . . . . . . . . . . . . . . T4PTREX (computes R and E from inverted table) . . . . . T4RTPEX (computes P and E from inverted table) . . . . .

. . . . . . . .

. . . . . . . . ..71 . . . . . . . .

64 65 67 69

. . . .

78 80

. .

83

. . . . . .

86 89 91

. . . . . . . . . .

93

72 74 75 76

APPENDIX B:

CROSS-REFERENCE DIRECTORY OF EOSLIB

APPENDIX C:

TEST PROGRAM . . . . . . . . . . . . . . . . . . . . .100 ouTPuT . . . . . . . . . . . . . . . . . . . . . . . .110

v

EOSMOD :

A SUBROUTINE PACKAGE FOR

CALCULATING EQUATIONS OF STATE AND OPACITIES

by James M. Hyman and Morris M. Klein

ABSTRACT The EOSMOD package includes a set of FORTRAN subroutines written to make the SESAME equation-of-state and opacity tables readily available . We have tried to make these routines as accessible as possible for casual users with routine problems and at the same time, allow sufficient flexibility for sophisticated users with complicated situations. This has caused only a slight loss in efficiency (-5%) compared to using the SESAME routines directly.

I.

INTRODUCTION

The SESAME library is a collection of data files containing “equations of state (EOS), Rosseland mean opacities, and other material properties over a wide range of temperatures, pressures, and densities. Group T-4 at Los Alamos National Laboratory developed a FORTRAN subroutine libraryl-3 to access and analyze these data files. The EOSMOD subroutine package was developed to complement the T-4 routines and.simplify the interface between these codes and the user’s program. The EOSMOD routines do the bookkeeping, unit’s conversion, and large core memory (LCM) initialization; reduce the number of parameters the casual user needs to be aware of; and are written in a structured modular design to allow a sophisticated user to modify and optimize the package easily for a particular problem. To use the package, just access the SESAME data files as described in Sec. VIII and call the driver subroutine. The package then locates the requested data file, converts it to the units specified by the user, and st~res it in LCM. On all subsequent calls, the package remembers the-contents and location of the file and interpolates the data at the user’s requested values. If the EOS or opacity of a mixture is needed, then the directory of mixtures currently available (MIXDIR) should be checked. If the specific mixture is not in the library, then a SESAME data file may be generated using the procedure described in Refs. 4, 5, and 6. .

II.

EQUATION-OF-STATE

AND OPACITY ROUTINES

The first time a routine is called for each new material (LMAT), the table is converted to the kind of units (KUNIT) requested by the user and copies into LCM. The location or material table number (IMATE) is returned to- indicate the location of the EOS table or to indicate whether an error was encountered in the initialization; for example, if the material was not found in the library. The EOS tables can be loaded in two different formats. The standard SESAME format is for calculating the pressure P and internal energy E of a material as a function of the density R and temperature T. Subroutine EOSDRT loads and reads the tables in this format. The inverted SESAME format is for calculating P and T as a function of R and E with subroutine EOSDRE. These inverted tables also can be accessed in other ways using the iterative subroutines EOSIRT and EOSIPT. Subroutine EOSIPT cal&lates ‘E and R as function of P and T, and subroutine EOSIRT calculates P and E as a function of R and T. These iterative subroutines use an iterative’ scheme that is slow compared to the direct methods used in subroutines EOSDRT and EOSDRE. Their main use is for initial state computations and occasional diagnostics. To speed up the execution time when using subroutine EOSDRE or EOSDRT, the user can request that the package return only T, P, or E using the Computer time can also be saved by using the computational mode flag KBR. KFN flag to indicate a bilinear interpolation of the data rather than the more accurate (but slower) rational interpolation. These interpolation procedures are described in more detail in Refs. 1 and 7.

2

.

I

A.

Subroutine EOSDRE (input R and E, output P and T) The calling sequence when p and E are independent variables P(p,E) and T(p,E) are dependent variables (output) is

1-

(input) and

CALL EOSDRE (LMAT,R,E,P,T,KEOS,IMATE). The arguments are defined as follows. INPUT VARIABLES LMAT

R E KEos

KBR

Material name in an A1O field; for example, LMAT = “HELIUM.” The materials available are listed in Sec. VII and the file MIXDIR . (The material SESAME number can also be used to specify the material by setting LMAT to the SESAME number; for example, LMAT = “5760” for helium.) Density (p). Internal energy. Multiple parameter flag to describe how to write and retrieve the data file. KEOS has four decimal digits: KBR, KUNIT, KREPE , and KFN (KEOS = 1000*KBR + 100*KLJ’NIT+ 10*KREPE + KFN) . Computational flag to indicate which their partial derivatives are to be returned by the package. o 1 2

KLJNIT

.

KREPE

and and

Compute P and T and their partial derivatives ~P/~p, 8P/~E, ~T/~p, and 8T/~E. Compute P and its partial derivatives ~P/ap and ZIP/i3E. Compute T and its partial derivatives aT/ap and aT/aE.

Kind of units for writing the are explained fully in Sec. IX. o 1 2 3 4 5 6

quantities calculated

data

file.

The units

SESAME EOS units. CGS units. Standard International Units (SIU). Hydrox EOS units. Hydrox opacity units. SESAME opacity units. LASNEX units.

Computational flag to indicate whether E is to be represented as energy per unit mass or energy per unit volume. o

Energy in units of energy per unit mass example, ergs/g). This is the usual E.

(for

Energy in units of energy per unit volume (for This is the energy denexample, ergs/cm3). sity pE commonly computed in hydrodynamic computer codes. Indicates the form of the function used to interpolate the data tables. o 1 IMATE

rational function Accurate interpolation. Fast bilinear function interpolation.

Indicates whether to load the data file if it does not exist for LMAT or go directly to a previously loaded file. o

N>()

Check if the data file for LMAT has been loaded. If not, search for the file, convert it to the proper units, and copy it into LCM using the inverted SESAME format. This number Equal to the LMAT table number. was returned by the package on a previous call to subroutine EOSDRE, EOSIPT , or EOSIRT and is distinct for each LMAT. This option is faster than IMATE = O because it skips searching the directory of previously loaded data files.

OUTPUT VARIABLES Array of dimension 3 containing the pressure and its partial derivatives.

P

P(1) P(2) P(3) T

Array of dimension 3 containing the temperature and its partial derivatives. This array must be dimensional even if the partial derivatives are not computed. T(1) T(2) T(3)

IMATE

Pressure. Density derivative of the pressure (i3P/~p). Energy derivative of the pressure (~P/~E].

Temperature. Density derivative of the temperature (~T/~p). Energy derivative of the temperature (~T/~E). Indicates the success or the data file for LMAT. o N>o NCO

failure

of

locating

and

loading

LMAT not found. LMAT table number (success). The LCM memory Insufficient LCM storage. allocation ❑ust be increased by at least INI storage locations by the procedure described in Sec. V.

Subroutine EOSIPT (input P and T, output R and E) The calling sequence when P and T are independent variables p(P,T) and E(P,T) are dependent variables (output) is

B.

(input) and

CALL EOSIPT (LMAT,P,T,R,E,KEOS,IMATE). . This routine reads the EOS data in the inverted SESAME format and uses an iterative method to interpolate the data. The arguments are defined as follows. INPUT VARIABLES LMAT

P T KEos

KUNIT

Material name in an AlO field; for example, LMAT = “HELIm.” The materials available are listed in Sec. VII and the file (The material SESAME number can also be used to MIXDIR. specify the material by setting LMAT to the SESAME number; for example, LMAT = “5760” for helium.) Pressure. Temperature. Multiple parameter flag to describe how to write and retrieve the data file. KEOS has three decimal digits: KUNIT, KREPE, and I(FN (KEOS = IOO*KUNIT + 10*KREPE + KFN). Kind of units for writing the data file. explained fully in Sec. IX. o 1 2 3 4 5 6

KREPE

The units are

SESAME EOS units. CGS units. Standard International Units (SIU). Hydrox EOS units. Hydrox opacity units. SESAME opacity units. LASNEX units.

Computational flag to indicate whether E is to be represented as energy per unit mass or energy per unit volume. o 1

Energy in units of energy per unit mass (for example, ergs/g). This is the usual E. Energy in units of energy per unit volume (for This is the energy denexample, ergs/cm3). in hydrodynamic sity pE commonly computed computer codes.

Indicates the form of the function used to interpolate the data tables. o 1

interpolation. function rational Accurate Fast bilinear function interpolation.

IMATE

Indicates whether to load the data file if it does not exist for LMAT or go directly to a previously loaded file. o

N>(l

Check if the data file for LMAT has been loaded. If not, search for the file, convert it to the proper units, and copy it into LCM using the inverted SESAME format. Equal to the LMAT table number. This number was returned by the package on a previous call to subroutine EOSDRE, EOSIPT, or EOSIRT and is distinct for each LMAT. This option is faster than IMATE = O because it skips searching the directory of previously loaded data files.

OUTPUT VARIABLES R E IMATE

Density. Internal energy. Indicates the success or failure of locating and loading the data file for LMAT. o N>O NO

Check if the data file for LMAT has been If not, search for the file, convert loaded. it to the proper units, and copy it into LCM using the inverted SESAME format. This number Equal to the LMAT table number. was returned by the package on a previous call or to subroutine EOSDRE, EOSIPT , EOSDRT, This EOSIRT and is distinct for each LMAT. option is faster than IMATE = O because it skips searching the directory of previously loaded data files.

OUTPUT VARIABLES P E IMATE

Pressure. Internal energy. Indicates the success or failure of locating and loading the data file for LMAT. o N>() N()

Check if the data file for LMAT has been If not, search for the file, convert loaded. it to the proper units, and copy it into LCM using the standard SESAME format. This number Equal to the LMAT table number. was returned by the package on a previous call EOSDRE, EOSIPT, EOSDRT, or to subroutine This EOSIRT and is distinct for each LMAT. option is faster than IMATE = O because it skips searching the directory of previously loaded data files.

OUTPUT VARIABLES Array of dimension 3 containing the pressure and its partial derivatives.

P

P(1) P(2) P(3)

Pressure. Density derivative of the pressure (~P/Zip). Temperature derivative of the pressure (~P/~T). Array of dimension 3 containing the internal energy and its This array must be dimensional even if partial derivatives. the partial derivatives are not computed.

E

E(1) E(2) E(3) IMATE

Internal energy. (aE/ap). of the internal energy Density derivative Energy derivative of the internal energy (aE/aT). Indicates the success or failure of locating and loading the data file for LMAT. o N>O N()

Equal to the LMAT table number. This number was returned by the package on a previous call to subroutine OPCRT and is distinct for each LMAT . This option is faster than IMATE = O because it skips searching the directory of previously loaded data files.

Opacity. Indicates the success or failure of locating and loading the data file for LMAT. o N>() N0



* * * * * ●

TABLES

OUTPUT

VARIA8LES-

P = ARRAY OF DIMENSION 3 CONTAINING THIS ITS PARTIAL DERIVATIVES. EVEN IF THE PARTIAL DERIVATIVES

THE PRESSURE AND ARRAY MUST BE DIMENSIONED ARE NOT COMPUTEO.

* : *

P(1) P(2) P(3)

= PRESSURE = DENSITY DERIVATIVE OF THE PRESSURE (OP/DR) = TEMPERATURE DERIVATIVE OF THE PRESSURE (DP/DE)

● ●

* * * J *

T = ARRAY OF OIMENSION 3 CONTAINING ITS PARTIAL DERIVATIVES. THIS EVEN IF THE PARTIAL DERIVATIVES T(1) T(2) T(3)

THE TEMPERATURE ANO ARRAY MUST BE DIMENSIONED ARE NOT COMPUTEO

= INTERNAL TEMPERATURE = DEN5iTY DERIVATIVE OF THE TEMPERATURE = ENERGY DERIVATIVE OF THE TEMPERATURE

(DT/DR) (DT/DE)



*

IMATE



= INDICATES LOCATING

* *

= N>o MATERIAL TABLE NUMBER (SUCCESS) MATERIAL (LMAT) NOT IN L18RARy o -N (N>l) INSUFFICIENT STORAGE THE LCM STORAGE MUST BE INCREADED BY AT LEAST N STORAGE LOCATIONS. SEE THE EOSMOD MANUAL



* * * * ●

THE SUCCESS OR FAILURE OF AND LOADING THE OATA FILE FOR LMAT.

REMARKS-

THIS

SUBROUTINE

IS

PART

OF THE

EOSMOD PACKAGE

* ●

SAMPLE

ORIVER

PROGRAM-

● ● ●

* * ●

PRDGRAM TST(OUTPUT) DIMENSION P(3),E(3) LMAT = “HELIUM” R = 0.001 E = 1.0

25

125 126 127 126 129 130 131 132 133 134 135 136 137 136 139 140 141 142 143 144 14!5 146 147 146 J49 150 151 152 153 154 155 156 157 158 159 160 i61 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 176 179 180 181 182 183 184 165 166

26

C C C C C c c C c c c C c C c c c C c c

● ● ● ●

* ●

*

KEOS = 110 IMATE = O CALL EOSORE(LMAT,R,E.P.T,KEOS. PRINT 1O,P($) *Q FORMAT(” PRESSURE = “,E1O.2.” CALL EXIT EIWJ

IMATE] MICROBARS”)



*

PROGRAMMER-

d.

M.

HYMAN

AND M.

KLEIN.

GROUP

T-7,

LASL

● ●

REFERENCE-

* * ●

d. M. HYMAN, M. M. KLEIN EOSMOO- A SUBROUTINE PACKAGE FOR CALCULATING EQUATIONS-OF-STATE ANO OPACITIES LOS ALAMOS SCIENTIFIC LABORATORY RPT. ,LA-8502-M,1980

* ●

OATE-

MARCH 6,

1960

* ●

*****************



*****************

******************

COMMON BLOCKS FOR THE SESAME EOS ROUTINES LEVEL 2. TBLS COMMON /s201Rx/ LCMX, NRS, LCFW( 10.3) COMMON /SESOATX/ TBLs(lmoo) KW COMMON /INTOROX/ COMMON /SESINX/ IRc, xOT, qHD, ENERGY. KBR. COMMON /sEsouTx/ pREs(3). TEMP(3)

c C

COMMON COMMON COMMON COMMON

BLOCKS /EOSCZ/ /EOSC3/ /EOSC4/

FOR THE EOSMOO ROUTINES LOUT INIT, IROIM, IR(60.3), NTABLE. NTA8L0, IFLP.

******

IFL

KUP(60.3) LCNT

C DIMENSION T(3), P(3) DATA KEOSS /-99/,KBRS/O/.KFNS/O/,LMATS/ c C C C C C c

c c

*****************



*********************

IDT=l LOCATOR OF OATA TYPE FOR FOR THE INVERTEO SESAME FORMAT IOT=l HAVE CHECK IF THE UNITS IF(KEOSS.NE.KEOS.OR.LMAT.NE LMATS=LMAT KBR=KBRS KFN=KFNS GO TO ~0 5 CONTINUE

FIND

THE



IR,GETINVX(,

/

**************** ,

IDT,

CHANGEO SINCE THE LAST .LMATS) GO TO 5

CHECK THE VALIOITY OF THE INPUT CALL EOSKUT(KEOS,KBR.KUNIT,KREPE 1 .IERR) IF(IERR.LT.0) GO TO 80 10 CONTINUE

c C

lH

**** ...)

CALL

PARAMETERS ,KFN.KEOSS,KBRS.KFNS.

IMATE.

IDT

MATERIAL

IF (IMATE.GT.0)

60 C c

GO TO 60 CALL EDSGET(LMAT.KUNIT,KREPE, IF(IMATE.LE.O.OR.IERR.LT.0) CONTINUE TRANSFER

INPUT

CALL

IMATE,IOT,IERR) GO TO 80

PARAMETERS

. TO COMMON BLOCK

187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207

ENERGY=E RHO=R IRC=IR(IMATE,\) c c

CALCULATE THE EQUATION OF STATE CALL T40ATIX ● T4DATIX DOES NOT RETURN AN ERROR

c c c 75

RESTORE OUTPUT CONTINUE P(f)=PRES(l) P(2)=PRES(2) P(3)=PRES(3) T(l)=TEMP(l) T(2)=TEMP(2) T(3)=TEMP(3)

VARIABLES

FLAG

FOR OATA

OUT OF RANGE

FOR RETURN

C 80

CONTINUE IFLP=IERR RETURN ENO

27

1 2C 3C 4C 5C 6C 7C 8C 9C 10 c 11 c 12 c 13 c i4 c 15 c 16 C 17 c 18 C 19 c 20 c 21 c 22 c 23 C 24 C 25 C 26 C 27 C 28 C 29 c 30 c 31 c 32 C 33 c 34 c 35 c 36 C 37 c 38 c 39 c 40 c 41 c 42 C 43 c 44 c 45 c 46 C 47 c 48 C 49 c 50 c 51 c 52 C 53 c 54 c 55 c 56 C 57 c 58 C 59 c 60 C 61 C 62 C

28

su8RouT1NE

EosoRT

(LMAToR.T.p.E.KEos.IMATE)

● ☛☛☛☛☛☛☛☛☛☛☛☛☛☛☛☛☛☛

● ☛☛☛☛☛☛☛☛☛☛☛☛☛☛☛☛☛☛

☛☛☛☛☛☛☛☛☛☛☛☛☛☛☛☛☛☛

☛☛☛☛



* ● ● ●

PURPOSEGIVEN THE DENsiTv (R) AND TEMPERATURE (T) OF A MATERIAL THIS SUBROUTINE RE7URNS THE PRESSURE (P) AND INTERNAL ENERGY (E) USING THE LASL T-4 SESAME EOS ROUTINES

(LMAT)

* ●

*

INPUT

VARIABLES-

● ☛

LMAT

= MATERIAL IN AN A1O FIELD, FOR EXAMPLELMAT = “HELIUM” THE MATERIAL SESAME NUMBER CAN ALSO BE USEO TO SPECIFY THE MATERIAL BY SETTING LMAT TO THE SESAME NUMBER, FOR EXAMPLELMAT = “5760” FOR HELIUM

● ● ☛ ☛ ●

R .

DENsITY

(RHO)

● ●

T

= TEMPERATURE

☛ ☛

KEOS

= MULTIPLE PARAMETER FLAG TO OESCRIBE HOW TO WRITE AND RETRIEVE THE DATA FILE. KEOS HAS FOUR OECIMAL

● ● ●

KEOS

=

1000*KBR

+

100*KUNIT

+

10*KREPE

+ KFN

WHERE

● ☛

KBR

= COMPUTATIONAL

MOOE FLAG



BE CALCULATE ANO RETURNEO BY THE PACKAGE. COMPUTE PRESSURE ANO TEMPERATURE =0 =1 COMPUTE PRESSURE ONLY COMPUTE TEMPERATURE ONLY =2

● ☛

PARTIAL

WHICH

QUANTITIES



ANO THEIR

TO INOICATE



DERIVATIVES

ARE TO

● ● ● ☛ ● ☛ ☛ ☛ ☛

KUNIT= “O 1 2 3 4 5 6

KINO OF UNITS (SES4MEE) R-G/CC,T-OEG.K.O-CM**2/G. p-GpA,E-Md/KG (CGS) R-G/CC,T-OEG.K,O-CM**2/GM.P-MUBR, E-ERGS/GM (SIU) R-KG/M**3,T-OEG.K,P-PA,E-d/KG,O-M**2/KG (HyOROXE) R-G/cc,T-oEG.K.p=MBR.E-t18R*cc/GM,o-cM9*2/G (HYOROXO) R-G/CC,T-KEV,P-MBR,E-MBR*CC/G,O-CM**2/G (SESAMEO) R-G/cc,T-Ev.o-cM**2/G.P-GPA .E-Md/KG (LAsNEx) R-G/cc,T-KEv,o-cM**2/GM,P-dRKs/cc ,Eo-dRKs/cc

☛ ●

LEGEND-



R = oENsITy



T D P E

● ☛ ●

= TEMPERATURE = OPACITY = PRESSURE = INTERNAL ENERGY

☛ ☛ ● ☛ ● ● ● ● ☛ ● ● ☛ ● ●

CC = CM = DEG. Ev =

CUBIC CENTIMETER CENTIMETER K = DEGREES KELVIN ELEcTRoN voLT

G = GRAM GPA = GIGA PASCALS d = UOULES URKS = dERKS KEV = KILO ELECTRON KG = KILOGRAM M = METER MBR = MEGABAR MUBR = MICR08AR

VOLTS

OIGITS,

.

.

.

63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 60 81 82 63 64 65 66 67 68 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 ltoc 111 112 113 114 115 116C 117C 118 119 120 121 122 123 124

C C C c C c C c c C c c c C c C c C c C C C C c C c c c c C c c c C c c c c c c c c c C c c c

* * *

PA = PASCAL KREPE

= COMPUTATION FLAG TO INDICATE WHETHER E IS IS TO BE REPRESENTED AS ENERGY PE$? UNST MASS OR ENERGY PER UNIT VOLUME OF ENERGY PER UNIT MASS. FOR EXAMPLEo ENERGV IN UNITS UNITS OF ERGS/GRAM WHEN KUNIT = 1. THIS IS THE USUAL E. 1 ENERGY IN UNITS OF ENERGY PER UNIT VOLUME. FOR EXAPMLEUNITS OF ERGS/CM**3 WHEN KUNIT = 1. THIS IS THE ENERGY DENSITY RHO*E COMMONLY COMPUTEO IN HYDRODYNAMIC COMPUTER COOES.



* * ●

* * ● ●

* * * ●

KFN = KIND OF FUNTION INTERPOLATION IN THE RATIONAL APPROXIMATIONS (ACCURATE) =0 =1 BILINEAR APPROXIMATIONS (FAST)

TABLES



* *

IMATE

=

INOICATES WHETHER TO LOAO THE OATA FILE IF NOT EXIST FOR LMAT OR GO DIRECTLY TO A PREVIOUSLY LOAOEO FILE. CHECK IF THE OATA FILE FOR LMAT HAS BEEN LOAOED. IF NOT, SEARCH FOR,THE FILE, COMVERT IT TO THE PROPER UNITS ANO COPY IT INTO LCM USING THE STANOARD SESAME FORMAT. EQUAL TO THE LMAT TABLE NUMBER. THIS NUMBER WAS RETURNEO BY THE PACKAGE ON A PREVIOUS CALL TO SUBROUTINE EOSORE, EOSIPT OR EOSIRT. THIS OPTION IS FASTER THAN IMATE = O IT SKIPS SEARCH IN THE OIRECTOR OF THE BECAUSE

IT 00ES

● ●

* * * * * * *

=0

>0

* *

OUTPUT



P = ARRAY OF OIMENSION 3 CONTAINING ITS PARTIAL DERIVATIVES. THIS DERIVATIVES EVEN IF THE PARTIAL



* * : * * ● ● ●

* * * *

P(1) P(2) P(3)

VARIABLESTHE PRESSURE AND ARRAY MUST BE DIMENSIONED ARE NOT COMPUTEO.

= PRESSURE = DENSITY DERIVATIVE OF THE PRESSURE (OP/OR) = TEMPERATURE DERIVATIVE OF THE PRESSURE (OP/OT)

E = ARRAY OF DIMENSION 3 CONTAINING ITS PARTIAL DERIVATIVES. THIS EVEN IF THE PARTIAL OERIVATIVES E(1) E(2) E(3)

THE ENERGY ANO ARRAY MUST BE DIMENSIONED ARE NOT COMPUTEO

= INTERNAL ENERGY = oENsITY OERIVATIVE OF THE ENERGY (DE/OR) = TEMPERATURE DERIVATIVE OF THE ENERGY (DE/oT)



*

IMATE

=



INOICATES LOCATING

THE SUCCESS OR FAILURE OF ANO LOADING THE DATA FILE FOR LMAT.

* c c c c c

= N>O MATERIAL TABLE NUMBER (SUCCESS) MATERIAL (LMAT) NOT IN LISRARY o -N (N>l) INSUFFICIENT STORAGE THE LCM STORAGE MUST BE INCREAOEO BY AT LEAST N STORAGE LOCATIONS. SEE THE EOSMOO MANUAL

● ●

* * ● ●

c c c c c C C



REMARKS-

* *

SAMPLE

THIS ORIVER

SUBROUTINE

IS PART OF THE EOSMOO PACKAGE

PROGRAM-

● ● ●

* ●

PROGRAM TST(OUTPUT) OIMENSION P(3),E(3) LMAT = “HELIUM” R = 0.001

29

125 126 127 12s 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 f50 151 152 153 154 155 156 157 158 159 160 16! 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186

30

C C C c C c c C c c c C c C c c c C c c c C c

c c

*

T = 300.0 KEOS = 110

● ● ● ● ☛

* ●

10

IMATE = O CALL EOSDRT(LMhT,R.T.P.E,UEOS.lMATE) PRINT 1O,P(1) FORMAT(” PRESSURE = ‘.E1O.2.” CALL EXIT ENO

MICROBARS”)

* REMARKS-



THIS

SUBROUTINE

IS

PART

OF THE

EOSMOO PACKAGE

● ●

PROGRAMMER-

d.

M.

HYMAN

ANO M.

KLEIN.

GROUP T-7,

LASL

● ●

REFERENCE-

* * * * * DATEMARCH * *******************

d. M. HYMAN. M. M. KLEIN EOSMOO- A SUBROUTINE PACKAGE FOR CALCULATING EQUATIONS-OF-STATE ANO OPACITIES LOS ALAMOS SCIENTIFIC LABORATORY RPT. ,LA-8502-M,1980 6,

1980 ******************

******************

COMMON BLOCKS FOR THE SESAME EOS ROUTINES LEVEL 2. T8LS COMMON /S201RX/ LCMX, NRS. LCFW( 10.3) COMMON /sEsOATx/ TBLs(11000) COMMON /INTOROX/ KFN KBR, COMMON /SESINX/ IRc, IOT, RHO, TEMP. COMMON /SESOUTX/ pREs(3), ENERGy(3)



****

IFL

COMMON BLOCKS FOR THE EOSMOO ROUTINES COMMON /EOSCZ/ LOUT EFAcE. COMMON /EOSCCE/ TFAcE. RFACE. PFACE. LU41, LU42, LU43, LU44, LU45 COMMON /EOSC1/

KREPE

COMMON /EOSC3/ INIT. IRDIM. IR(60.3). KUP(60.3) COMMON /EOSC4/

NTABLE,

NTABLO,

IFLP,

LCNT

C DIMENSION E(3), p(3) DATA KEOSS /-99/.KBRS/O/.KFNO/,LMATSTlHlH C C c C c c c

C c

C C



***************



***************

IOT=3 LOCATOR OF DATA TYPE FOR FOR THE STANOARO SESAME FORMAT IDT=3 CHECK IF THE UNITS HAVE IF(KEOSS.NE.KEOS.OR.LMAT.NE LMATS=LMAT KBR=KBRS KFN=KFNS GO TO 10 5 CONTINUE



***************

IR,GETEOSX(.,



IDT,

CHANGEO SINCE THE LAST .LMATS) GO TO 5

CHECK THE VALIOITY OF THE INPUT CALL EOSKUT(KEOS,KBR,KUNIT.KREPE 1 ,IERR) IF(IERR.LT.0) GO TO 80 10 CONTINUE FIND THE MATERIAL IF (IMATE.GT.0) Go TO 60

/ *********** ...)

CALL

PARAMETERS ,KFN.KEOSS.KBRS.KFNS.

IMATE .IOT

187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212

60 c c

CALL EOSGE7(LMAT,XUNIT,KREPE, IF(IMATE.LE.O.OR. IERR.LT.0) CONTINUE TRANSFER INPUT TEMP=T RHO=R IRC=IR(lMATE.3)

c C “ C c 75 c

CALL

PARAMETERS

CALCULATE THE EOUATION OF CALL T4DATX ● T40ATX OOES NOT RETURN CONTINUE RESTORE OUTPUT P(l)=PRES(l) P(2)=PRES(2) P(3)=PRES(3) E(I)=ENERGY(l) E(2)-ENERGY(2) E(3)=ENERGY(3)

IMA7E,lDT.IERR) GO TO 80

VARIABLES

TO COMMON BLOCK

STATE AN EROR

FLAG

FOR RETURN

FOR OATA

OUT OF RANGE

TO CALL

C 80

CONTINUE IFLP=IERR RETURN END

31

1 2C 3C 4C 5C 6C 7C 8C 9C 10 c 11 c 12 c 13 c 14 c 15 c 16 C 17 c 18 c 19 c 20 c 21 c 22 c 23 C 24 C 25 C 26 C 27 C 28 C 29 C 30 c 31 c 32 C 33 c 34 c 35 c 36 C 37 c 38 C 39 c 40 c 41 c 42 C 43 c 44 c 45 c 46 C 47 c 48 C 49 c 50 c 51 c 52 C 53 c 54 c 5!5 c 56 C 57 c 58 c 59 c 60 C 61 C 62 c

32

subroutine

EOSIPT

(LMATop,T,R,E,KEOS,

● ☛☛☛☛☛☛☛☛☛☛☛☛☛☛☛☛

IMArE)

● ☛☛☛☛☛☛☛☛☛☛☛☛☛☛☛☛☛

☛☛☛☛☛☛☛☛☛☛☛☛☛☛☛☛☛☛☛☛☛☛☛

● ☛

● ●

* ● ●

PURPOSEGIVEN THE PRESSURE (P) AND TEMPERATURE (T) OF A MATERIAL (LMAT) THIS SUBROUTINE RETURNS THE PRESSURE (P) ANO INTERNAL ENERGY (E) USING THE LASL T-4 SESAME EQUATION OF STATE ROUTINES

● ●

AN

ITERATIVE

METHOD

IS

USED

TO

INTERPOLATE

THE

TABLES

● ●

* * *

INPUT

VARIABLES= MATERIAL IN AN AIO FIELD, FOR EXAMPLELMAT = “HELIUM” THE MATERIAL SESAME NUMBER CAN ALSO SE USEO TO SPECIFY THE MATERIAL 8Y SETTING LMAT TO THE SESAME NUM8ER0 FOR EXAMPLELMAT = “5760” FOR HELIUM

LMAT

● ● ● ☛

P = PRESSURE

☛ ☛

T

= TEMPERATURE

● ☛

KEOS

= MULTIPLE PARAMETER FLAG TO DESCRIBE HOW TO WRITE ANO RETRIEVE THE OATA FILE. KEDS HAS FOUR OECIMAL



DIGITS,

● ●

KEOS

=

100*KUNIT

+

10*KREPE

WHERE

KUNIT= o 1 2 3 4 5 6

KINO OF UNITS (sEsAMEE) R-G/cc,T-DEG.K,o-cM**2/G.P-GPA ,E-Md/KG (CGS) R-G/CC,T-OEG.K,O-CM**2/GM,P-MUBR. E-ERGS/GM (SIU) R-KG/M**3.T-DEG.K,P-PA. E-lJ/KG.o-M’*2/KG (HYOROxE) R-G/cc,T-oEG.K,P=MOR,E-MBR*cc/GM,o-cM**2/G (HvDRoxO) R-G/cc.T-KEv,P-MBR,E-MBR*cc/G,o-cM**2/G (sEsAMEO) R-G/cc,T-Ev,o-cM**2/G,P-GPA ,E-Md/KG (LASNEX) R-G/cc,T-KEv.o-cM**2/GM.P-dRKs/cc ,ED-dRKs/cc

☛ ☛ ● ● ● ☛ ● ● ☛ ● ●

LEGENDR T O P E

☛ ☛ ● ☛ ☛

= = = = =

OENSITY TEMPERATURE OPACITY PRESSURE INTERNAL ENERGY

☛ ●

CC = CUBIC CENTIMETER CM = CENTIMETER DEG. K = OEGREES KELVIN EV = ELECTRON VOLT G = GRAM GPA = GIGA PASCALS d = IJOULES JRKS = LJERKS KEV = KILO ELECTRON VOLTS KG = KILOGRAM M = METER

☛ ● ☛ ● ● ● ● ● ☛ ☛

M8R = MEGABAR MUBR = MICROBAR pA , pAscAL

☛ ● ● ● ● ☛ ☛ ☛

KREPE

= COMPUTATION FLAG TO INDICATE WHETHER E IS IS TO BE REPRESENTED AS ENERGY PER UNIT MASS GR ENERGY PER UNIT VOLUME OF ENERGY PER UNIT MASS. FOR EXAMPLEO ENERGY IN UNITS

.

63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 to4 105 106 107 108 109 110 111 112 lf3c 114 115 116 117 118 lf9 120 121 122 123 124

C C C c C C C c c C c c c C c C c C C C C c c c C c C c c C c c c C c C c c c c c c c C c C c c c c

UNITS OF ERGS/GRAM WHEN KUNIT = 1. THIS IS THE USUAL E. 1 ENERGY IN UNITS OF ENERGY PER UNIT VOLUME. FOR EXAPMLEUNITS OF ERGS/CU**3 WHEN KUNIT = 1. THIS IS THE EIW2GY OENSSTY RHO*E COMMONLY COMPUTED IN HYDRODYNAMIC COMPUTER COOES.

● ● ●

* ● ● ●

lMATE

=

TO LOAD THE OATA FILE IF FOR LMAT OR GO OIRECTLY TO A PREVIOUSLY LOADED FILE. CHECK IF THE DATA FILE FOR I-MAT HAS BEEN LOAOED. IF NOT, SEARCH FOR THE FILE, COMVERT IT TO THE PROPER UNITS ANO COPY IT INTO LCM USING THE INVERTED SESAME FORMAT. EQUAL TO THE LMAT TABLE NUMBER. THIS NUMBER WAS RETURNEO BY THE PACKAGE ON A PREVIOUS CALL TO SUBROUTINE EOSDRE, EOSIPT OR EOSIRT. THIS OPTION IS FASTER THAN IMATE = O BECAUSE IT SKIPS SEARCH IN THE OIRECTOR OF THE

* *

SNOICATES

WHETHER

IT OOES NOT EXIST



=0

● ●

* * * *

>0

● ●

OUTPUT

VARIABLES-

* *

R = OENSITY



* *

E =



IMATE

INTERNAL



ENERGY

= INOICATES LOCATING

THE’ SUCCESS OR FAILURE OF AND LOAOING THE DATA FILE FOR LMAT.



*

.

= N>o MATERIAL TABLE NUMBER (SUCCESS) MATERIAL (LMAT) NOT IN LIBRARY o -N (N>l) INSUFFICIENT STORAGE THE LCM STORAGE MUST BE INCREADED BY AT LEAST N STORAGE LOCATIONS. SEE THE EOSMOD MANUAL



* ● ● ● ●

REMARKS-

THIS

SUBROUTINE

IS

PART

OF THE

EOSMOO PACKAGE



*

SAMPLE

DRIVER

PROGRAM-

● ☛ ☛ ● ☛ ☛ ☛ ☛ ● ● ● ● ●

PRDGRAM TST(OUTPUT) DIMENSION P(3),E(3) LMAT = ‘HELXUM” R = 0.001 T = 300.0 KEOS = 110 IMATE = O CALL EOSIPT(LMAT.P.T,R,E.KEOS, PRINT 1O,P(1) 10 FORMAT(” DENSITY = “.EIO.2.” CALL EXIT END

2MATE) MICROBARS”)

● ●

REMARKS-

THIS

SUBROUTINE

IS

PART

OF

THE

EOSMOD PACKAGE



c c C c C c c c c C C



PROGRAMMER-

d.

M.

HYMAN

AND M.

KLEIN,

GROUP

T-7,

LASL

● ●

REFERENCE-

* ● ●

d. M. HYMAN, M. M. KLEIN EOSMOD- A SUBROUTINE PACKAGE FOR CALCULATING EQUATIONS-OF-STATE AND OPACITIES LOS ALAMOS SCIENTIFIC LABORATORY RPT. ,LA-8502-M.

1980

● ●

DATE-

MARCH 6,

1980

● ●

*********************



******************8*



****************

33

. 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 i42 143 i44 f45 146 14-? 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 16!5 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184

34

COMMON BLOCKS FOR THE SESAME EOS ROUTINES LEVEL 2, TBLS COMMON /s201Rx/ LCMX. NRS. LcFw( 1003) COMMON /sEsDATx/ TBLS(lIOOO) COMMON /SESINX/ KNJM(4). KBR. DUM1 coMMoN /INTO~X/ KFN

C

c C

COMMON COMMDN COMMON COMMON

BLOCKS /EOSCZ/ /EOSC3/ /EOSC4/

FOR THE EOSMOD ROUTINES LOUT INIT. IRDIM, IR(60,3), NTABLE. NTABLO, IFLP,

KUP(60,3) LCNT

C OIMENSION R(3), E(3) DATA KEOSS /-99/,KBRS/O/,KFNS/O/,LMATS/ c c c C c

****************************

5 c c

CHECK IF THE UNITS HAVE IF(KEOSS.NE.KEOS.OR.LMAT.NE LMATS=LMAT KBR=KBRS KFN=KFNS GO TO 10 CONTINUE

60 C c

FIND THE MATERIAL IF (IMATE.GT.0) GO TO 60 CALL EDSGET(LMAT.KUNIT.KREPE, IF(IMATE.LE.O.DR. IERR.LT .0) CONTINUE CALCULATE THE EQUATION CALL T4PTREX (IR(IMATE.

c C

IR,GETINVX(,

********* ,

IDT,

CHANGED SINCE THE LAST .LMATS) GO TO 5

CHECK THE VALIOITY OF THE INPUT CALL EOSKUT(KEOS.KBR.KUNIT,KREPE 1 ,IERR) IF(IERR.LT.0) GO TO 75 10 CONTINUE

c C

/

***********************

IDT=l LOCATOR OF DATA TYPE FOR FOR THE INVERTEO SESAME FORMAT IDT= 1

c C

lH

OF 1),

...)

CALL

PARAMETERS ,KFN,KEOSS,KBRS.KFNS,

IMATE ,IDT

IMATE,IDT,IERR) Go To 75

STATE 1.TBLS.P.T.R.

PRINT AN ERROR MESSAGE IF T4PTREX FAILES IF (IERR.Eo.0) WRITE(LOUTo80) LMATOPOT IF (IERR.EO.0) IMATE=O

E.IERR) TO CONVERGE

C 75

CONTINUE IFLP=IERR RETURN

C FORMAT(” FAILEO TO CONVERGE WHEN ITERATING ON THE INVERTED”. 1 /.” EOS TABLES IN SUBROUTINE T4PTREX CALLEO BY EOSIPT”,/, TEMPERATURE ANO ENERGY” ‘ 2 2-THE 6EouEsTE0 VALUES FOR RHO, pREssuRE. 2 ,/.” MAY BE OUT OF RANGE OR NEAR THE EOGE OF THE TABLE”./. 3 “ CHECK THE EOSMOD WRITEUP FOR THE OATA RANGE”./, “ LMAT =“,A1O, 1 =“.1PE12.4. = TEMPERATURE =u.1PE12.4) 4 ● PRESSURE E.NO

60

.

.

1 2C 3C 4C 5C 6C 7C 8C 9C 10 c 11 c 12 c 13 c 14 c 15 c 16 C 17 c 18 c 19 c 20 c 21 c 22 c 23 C 24 C 25 C 26 C 27 C 28 C 29 C 30 c 31 c 32 C 33 c 34 c 35 c 36 C 37 c 38 C 39 c 40 c 4f c 42 C 43 c 44 c 45 c 46 C 47 c 48 C 49 c 50 c 51 c 52 C 53 c 54 c 55 c 56 C 57 c 58 C 59 c 60 C 61 C 62 C

SUBROUTINE

EOSIRT

(LMAT,R,T.P.E,KEOs.

****************





IMATE)

****************

*****************



******+*

* * PURPOSE● ● ☛

GIVEN THE DENSITY (R) Am TEMPERATURE (T) OF A MATERIAL ) (LMAT). THIs Suf3R0uTINE RETURNS THE PRESSURE (p) ANO INTERNAL ENERGY (T) USING THE LASL E-4 SESAME EOUATION OF STATE ROUTINES

● ☛ ●

AN ITERATIVE SUBROUTINE

METHOO IS EOSORT USES

USEO TO INTERPOLATE THE A FASTER OIRECT METHOD

TABLES

● ☛

INPUT

VARIABLES-



= MATERIAL IN AN A1O FIELO, FOR EXAMPLELMAT = “HELIUM” THE MATERIAL SESAME NUMBER CAN ALSO BE USEO TO SPECIFY THE MATERIAL BY SETTING LMAT TO THE SESAME NUMBER. FOR EXAMPLELMAT = “5760” FOR HELIUM

LMAT

● ☛ ☛ ● ● ●

R = OENSITY

(RHO)

● ☛

T

= TEMPERATURE

● ●

KEOS

= MULTIPLE PARAMETER FLAG TO DESCRIBE HOW TO WRITE KEOS HAS FOUR DECIMAL ANO RETRIEVE T* DATA FILE.



DIGITS.

● ☛

KEOS

=

IOO*KUNIT

+

10*KREPE

WHERE

KUNIT= o 1 2 3 4 5 6

KIND OF UNITS (SESAMEE) R-G/cc.T-oEG.K,o-cM**2/G,P-GPA, E-Md/KG (CGS) R-G/CC,T-DEG.K.0-CM**2/GM,P-MUBR, E-ERGS/GM (SIU) R-KG/M**3,T-OEG.K.P-PA,E-d/KG,O-M**2/KG (HVDROxE) R-G/cc,T-oEG.K,P=MBR.E-MBR*CC/GM.O-CM**2/G (HyOROxO) R-G/cc.T-KEv,P-MBR.E-M5R*cc/G.o-cM**2/G (SESAMEO) R-Glcc,T-Ev,o-cM**2/G,p-GPA, E-Md/KG (LASNEX) R-G/CC.T-KEV.O-CM**2/GMop-dRKs/cc, EO-URKS/CC

● ☛ ● ☛ ☛ ☛ ● ☛ ☛ ☛ ☞

LEGENOR T O P E

● ● ● ☛ ●

= = = = =

DENSITY TEMPERATURE OPACITY PRESSURE INTERNAL ENERGY



CC = CUBIC CENTIMETER CM = CENTIMETER DEG. K = DEGREES KELVIN EV = ELECTRON VOLT G = GRAM GPA = GIGA PASCALS d = dOULES URKS = dERKS KEV = KILO ELECTRON VOLTS KG = KILOGRAM M = METER MOR = MEGABAR !4UBR = MICROBAR PA = PASCAL

● ☛ ● ☛ ☛ ☛ ☛ ● ☛ ☛ ● ● ● ● ☛ ☛ ● ●

KREPE

= COMPUTATION FLAG TO INOICATE WHETHER T IS IS TO BE REPRESENTED AS ENERGY PER UNIT MASS OR ENERGY PER UNIT VOLUME

35

. 63 C 64 C 65 C 66 c 67 C 68 c 69 C 70 c 71 c 72 C 73 c 74 c 75 c 76 C 77 c 78 C 79 c 80 C 81 C 82 C 83 C 84 C 85 C 86 c 87 C 88 c 89 C 90 c 91 c 92 C 93 c 94 c 95 c 96 C 97 c 98 C 99 c 100 c 101 c 102 c 103 c 104 c 105 c 106 C 107 c 108 C 109 c 11OC 111 c 112 c 113 c 114 c 115 c 116 C 117 c 118C 119 c 120 c 121 c 122 c 123 C 124 C

36

O ENERGY



IN UNITS OF ENERGY PER UNIT MASS. FOR ExAMpLETHIS IS THE USUAL T. UNITS OF ERGS/GRAM wHEN KUNIT = 1. f ENERGY IN UNITS OF ENERGY PER UNIT VOLUME. FOR EXAPMLEUNITS OF ERGS/CM**3 WHEN KUNIT = ~. THIS [S THE ENERGY OENSITY RHO*T COMMONLY COMPUTEO IN HYOROOYNAMIC COMPUTER COOES.

● ● ● ● ● ●

IMATE



* * *

=

INOICATES WHETHER TO LOAO THE OATA FILE IF IT OOES NOT EXIST FOR LMAT OR GO OIRECTLY TO A PREVIOUSLY LOAOEO FILE. FOR LMAT HAS BEEN LOAOEO. CHECK IF THE DATA FILE IF NOT. SEARCH FOR THE FILE, COMVERT IT TO THE PROPER UNITS ANO COPY IT INTO LCM USING THE INVERTEO SESAME FORMAT. EQUAL TO THE LMAT TABLE NUMBER. THIS NUMBER WAS RETURNEO BY THE PACKAGE ON A PREVIOUS CALL TO SUBROUTINE EOSORE, THIS OPTION IS FASTER THAN IMATE = O EOSIPT OR EOSIRT. BECAUSE IT SKIPS SEARCH IN THE OIRECTOR OF THE

=0

● ●

*

>0

● ● ● ● ●

OUTPUT

VARIABLES-

● ●

P = PRESSURE

● ●

E =

INTERNAL

ENERGY

● ●

IMATE

=

INOICATES LOCATING



THE SUCCESS OR FAILURE OF ANO LOAOING THE DATA FILE FOR LMAT.



*

= N>O MATERIAL TABLE NUMBER (SUCCESS) MATERIAL (LMAT) NOT IN LIBRARY o -N (N>l) INSUFFICIENT STORAGE THE LCM STORAGE MUST BE INCREAOED BY AT LEAST N STORAGE LOCATIONS. SEE THE EOSMOD MANUAL

● ● ☛

* ● ☛

REMARKS-

THIS

SUBROUTINE

IS

PART

OF THE

EOSMOO PACKAGE

● ☛

SAMPLE

DRIVER

PROGRAM-

● ● ☛ ● ●

* ● ☛ ☛ ☛

* ● ●

* ●

PROGRAM TST(OUTPUT) DIMENSION P(3),T(3) LMAT = “HELIUM” R = 0.001 T = 300.0 KEOS = 110 IMATE.= O CALL EOSIRT(LMAT.R,T,P.E,KEOS. PRINT IO,P(l) PRESSURE = “,E1O.2,” 10 FORMAT(” CALL EXIT END REMARKS-

THIS

SUBROUTINE

IS

IMATE) MICROBARS=)

PART

OF THE

EOSMOO PACKAGE

● ☛

PROGRAMMER-

d.

M.

HYMAN

ANO M.

KLEIN,

GROUP

T-7.

LASL

● ☛

REFERENCE-

● ● ●

d. M. HYMAN, M. N. KLEIN EOSMOD- A SUBROUTINE PACKAGE FOR CALCULATING EQUATIONS-OF-STATE AND OPACITIES LOS ALAUOS SCIENTIFIC LABORATORY RPT. ,LA-8502-M.

● ●

OATE-

MARCH 6.

1900

● ● ☛☛☛☛☛☛☛☛☛☛☛☛☛☛☛☛☛☛☛

☛☛☛☛☛☛☛☛☛☛☛☛☛☛☛☛☛☛

☛☛☛☛☛☛☛☛☛☛☛☛☛☛☛☛☛☛

☛☛☛☛

19.80

.

125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 14~ 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 f 74 175 176 177 176 179 180 181 182 183 184 185

C C

COMMON BLOCKS FOR THE SESAME EOS ROUTINES LEVEL 2. TBLS COMMON /s201Rx/ LCMX, NRS. LCFU(10.3) COMMON /SESOATX/ TBLS(~fOOO) COMMON /SESINX/ DUM(4), K6R. OUMI COMMON /IfUTORUX/ KFN

C c

COMMON COMMON COMMON COMMON

BLOCKS /EOSCZ/ /EOSC3/ /EOSC4/

FOR THE EOSMOO ROUTINES LOUT INIT, IRDIM, IR(60.3). NTABLE, NTABLO, SIFLP,

KUP(60,3) LCNT

c DIMENSION P(3). E(3) DATA KEOSS /-99/.KBRs/0/.KFN0/LMATSAlH/lH c c C c c C c

c c



*****************

******************



IOT=l LOCATOR OF DATA TYPE FOR FOR THE INVERTED SESAME FORMAT IDT=l CHECK IF THE UNITS HAVE IF(KEOSS.NE.KEOS.OR.LMAT,NE. LMATS=LMAT KBR=KBRS KFN=KFNS GO TO 10 5 CONTINUE

/ ****************

IR.GETINVX(.,



IOT,

CHANGEO SINCE THE LAST LMATS) GO TO 5

...)

CALL

CHECK THE VALIDITY OF THE INPUT PARAMETERS CALL EOSKUT(KEOS,KBR.KUNIT,KREPE,KFN.KEOSS.KBRS,KFNS, 1 .IERR) IF(IERR.LT.0) GO TO 75 10 CONTINUE

C C

60 c C

FINO THE MATERIAL IF (IMATE.GT.0) Go To 60 CALL EOSGET(LMAT.KUNIT.KREPE IF(IMATE.LE.O.OR. IERR.LT.0) CONTINUE CALCULATE THE EQUATION’OF CALL T4RTPEx (lR(IMATE. 1),

C c

PRINT AN ERROR IF (IERR.EO.0) IF (lERR.Eo.0)

******

IMATE,IOT

,IMATE,IOT,IERR) GO TO ’75

STATE 1.TBLS.R,T.P,E,

MESSAGE IF T4RTPEX FAILEO WRITE(LOUT.80) LMAT,R,T XMATE=O

IERR) TO CONVERGE

c 75 9

CONTINUE IFLP=IERR RETURN

c 80

FORMAT(’ FAILEO TO CONVERGE WHEN ITERATING ON THE INVERTEO”. 1 /,” EOS TABLES IN SUBROUTINE T4PTREX CALLEO BY EOSIRT”,/, 2 “ THE REQUESTED VALUES FOR RHO, PRESSURE, TEMPERATURE ANO E?4ERGY9 2 ,/,” MAY BE OUT OF RANGE OR NEAR THE EDGE OF THE TABLE”./. 3 “ CHECK THE EOSMOO WRITEUP FOR THE OATA RAffiE”,/. ● LMAT =“,A1O, 1 TEMPERATURE =“,1PE12.4) 4 “ DENSITY ==,1PE12.4.” ENO

37

1

SU8ROUT1NE

2C 3C 4C 5C 6C 7C ac 9C 10 c 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62

38

c c c c c C c c c c c c C C C C C C C c c C c c c C c C c c c C c c c C c C c c c C c c c C c C c C C C

EosoRT

(LUT.R.T.0.KOPc,iuATO)

***************** * ● PURPOSE-

*********O************,



GIVEN THE OENSITY



THIS ROUTINE HYOSES (T-4)





****************



(R) ANO TEMPERATURE(T) OF A MATERIAL RETURNS THE OPACITY (0) USING THE LASL ROUTINES



**

(LMAT)



INPUT



VARIABLES-

● ☛

LMAT

= MATERIAL IN AN AIO FIELD, FOR EXAMPLELMAT = “HELIUM” THE MATERIAL SESAME NUMBER CAN ALSO BE USEO TO SPECIFY THE MATERIAL 8Y SETTING LMAT TO THE SESAME NUMBER, FOR EXAMPLELMAT = “5760” FOR HELIUM

● ☛ ☛ ☛ ☛

R = OENsITy

(RHO)

☛ ●

T

= TEMPERATURE

☛ ☛

KOPC

= MULTIPLE PARAMETER FLAG TO DESCRIBE HOW TO WRITE AND RETRIEVE THE &ATA FILE. KOPC HAS FOUR OEcIMAL



OIGITS.

● ☛

KOPC

=

100*KUNIT

+

10*KREPE

+ KFN

WHERE

KUNIT= o 1 2 3 4 5 6

KINO OF UNITS (sEsAMEE) R-G/CC,T-DEG.K,O-CM**2/GoP-GpA .E-Md/KG (CGS) R-G/CC,T-OEG.K.O-CM**2/GM, P-MUBR.E-ERGS/GM (SIU) R-KG/M**3,T-DEG.K,P-PA, E-lJ/KG,o-M**2/KG (HYOROXEl R-G/cc.T-oEG.K.p=Mi3R.E-Mf3R*cc/GM,o-cM**2/G (HYDROXO) R-G/cc,T-KEv,P-MBR,E-MBR*cc/G,o-cM**2/G (SESAMEO) R-G/CC,T-EV.0-CM**2/G,P-GPA, E-Md/KG (LASNEX) R-G/cc.T-KEv.o-cM**2/GM.P-dRKs/cc ,ED-dRKS/CC

☛ ☛ ☛ ☛ ☛ ● ● ☛ ☛ ☛ ☛

LEGENOR T O P E

● ☛ ☛ ☛ ☛

= = = = =

DENsITy TEMPERATURE OPACITY PRESSURE INTERNAL ENERGY



CC = CUBIC CENTIMETER CM = CENTIMETER OEG. K = OEGREES KELVIN EV = ELECTRON VOLT G = GRAM GPA = GIGA PASCALS d = dOULES dRKS = dERKS KEV = KILO ELECTRON VOLTS KG = KILOGRAM M = METER MBR = MEGA8AR MUBR = MICROBAI? PA = PASCAL

● ● ☛ ● ● ☛ ● ● ● ☛ ☛ ☛ ● ☛ ☛ ● ☛ ● ☛ ● ●

KREPO

= COMPUTATIONAL FLAG TO INDICATE WHICH REPRESENTATION TO USE FOR THE OPACITY VARIABLE. O OPACITY REPRESENTED AS KAPPA IN DIMENSIONAL UNITS OF LENGTH**2/MASS i OPACITY REPRESENTED AS A MEAN-FREE PATH, LAMBDA = l/(KAPPA*RHO). IN DIMENSIONAL

.

.

63 C 64 C 65 C 66 c 67 C 68 C 69 C 70 c 71 c 72 C 73 c 74 c 75 c 76 C 77 c 78 c 79 c 80 c 81 C 82 C 83 c 84 c 85 c 86 c 87 c 88 C 69 C 90 c 91 c 92 C 93 c 94 c 95 c 96 C 97 c 98 C 99 c 100 c lot c 102 c 103 c 104 c 105 c 106 C 107 c 108 c 109 c 11OC 111 c 112 c 113 c 114 c 115C 116 C 117 c 118C 119C 120 c 12$ c 122 c 123 C 124 C

., . .. ..- Ut -UN II>

=

. . . .. .III.. .

LENU

● ☛ ● ●

KFN = KINO OF FUNTION INTERPOLATION IN THE AppR0xIt4ATIoNs (AccuRATE) = o RATIoNAL = I BILINEAR APPROXIMATIONS (FAST)

TABLES



&

IMATO

* ●

*

=0



*

>0

* ● ●

*

INOICATES WHETHER TO LOAD THE DATA FILE IF IT DOES NOT EXIST FOR LMAT OR GO OIRECTLY TO A PREVIOUSLY LOAOEO FILE. CHECK IF THE OATA FILE FOR LMAT HAS BEEN LOAOEO. IF NOT, SEARCH FOR THE FILE, CONVERT IT TO THE PROPER UNITS ANO COPY IT INTO LCM USING THE INVERTEO SESAME FORMAT. EQUAL TO THE LMAT TABLE NUMBER. THIS NUMBER WAS RETURNED BY THE PACKAGE ON A PREVIOUS CALL TO SUBROUTINE EOSORT. THIS OPTION 1S FASTER THAN IMATO = O OF THE BECAUSE IT SKIPS SEARCH IN THE DIRECTOR =



*

OUTPUT

VARIABLES-

* ●

0

= OPACITY

● ●

IMATO

=

INDICATES LOCATING



THE SUCCESS OR FAILURE OF ANO.LOADING THE OATA FILE FOR LMAT.



.

● ● ●

* *

N>O MATERIAL ~aBLE NUMBER (succEss) MATERIAL (LMAT) NOT IN LIBRARY o -N (N>l) INSUFFICIENT STORAGE THE LCM STORAGE MUST BE INCREADEO BY AT LEAST N STORAGE LOCATIONS. SEE THE EOSMOD MANUAL

* ●

REMARKS-

THIS

SUBROUTINE

IS

PART

OF THE

EOSMOD PACKAGE

● ●

SAMPLE

DRIVER

PROGRAM-

* ● ● ●

* * * ● ● ● ● ● ●

PROGRAM TST(OUTPUT) DIMENSION P(3),E(3) LMAT = “HELIUM” R = 0.001 T = 3oo.o KOPC = 500 IMATO = O CALL EOSORT(LMAT,R.T,O.KOPC. PRINT 1O.P(1) OPACITY = “.E1O.2) 10 FORMAT(” CALL EXIT END

IMATO)



* ●

EXTERNALS AND COMMON BLOCKSOLOG1O = OUICK VERSION OF ALOGIO

* *

REMARKS-

THIS

SUBROUTINE

IS

PART

OF THE

EOSMOO PACKAGE

* *

PROGRAMMER-

d.

M.

HVMAN

AND M.

KLEIN.

GROUP T-7

LASL

● ●

REFERENCE-

* * *

d. M. HVMAN. M. M. KLEIN EOSMOD- A SUBROUTINE PACKAGE FOR CALCULATING EOUATIONS-OF-STATE ANO OPACITIES LOS ALAMOS SCIENTIFIC LABORATORY RPT. ,LA-8502-M.

1980



*

DATE-

MARCH 6,

1979



***********************

● ☛☛☛☛☛☛☛☛☛☛☛☛☛☛☛☛

●***************”****

39

125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 t40 141 142 143 144 145 146 i47 148 149 150 151 152 153 154 155 156 157 lsa 159 160 161 162 163 464 165 166 167 166 169 170 171 172 173 174 175 176 177 178 179 180 161 182 183 184 185 186

40

C C C

COMMON BLOCKS FOR THE SESAME EOS ROUTINES DIMS T8Ls,LCMX,NLBUF.LCFW(, ).ZZ( ) LEVEL 2, TBLS COMMON /S201Rx/ LcMX. NRS. LcFw(~o.3) COMMON /sEsOATX/ T8Ls(fwo0) COMMON /INTORDX/ KFN COMMON /sEsINx/ rRc, IDT, RHO. TEMP. KBR, COMMON /SESouTx/ opacity. pLANKo(3)

c c

IFL

COMMON 8LOCKS FOR THE EOSMOO ROUTINES COMMON/EOSCZ/ LOUT COMMON/EOSCco/ TFACO, RFACO. OFACO, KREPO LU41, COMMON/EOSC1/ LU42, LU43. LU44. LU45 COMMON/EOSC3/ INIT. IROIM, IR(60,3). KUP(60,3) COMMON /EOSC4/ NTABLE, NTABLO, IFLP, LCNT

c OATA c c c C

KOPCS

/-99/,

KFNS/O/,LMATS/lH

********************** CHECK POSITIVITV IF((T.GT.O.O).AND. fMATO=-1

/

●☛✌☛☛☛☛☛☛☛☛☛☛☛☛☛☛☛☛☛ ● ☛☛☛☛☛☛☛☛☛☛☛☛☛☛☛☛☛☛ OF INPUT’’PARAMETERS (R.GT.O.O) ) GO TO 4

c 20

WRITE(LOUT,20)R.T FORMAT(” THE OENSITY =“,1E12.4,’ 1 .E12.4.” IS NONPOSITIVE”)

OR THE

TEMPERATURE

=“

c GO TO 75 4 CONTINUE C c c C C

c C

SET INITIAL VARIABLES IOT=2 LOCATOR OF DATA IOT=2

FOR OPACITY TYPE FOR IR

CHECK If THE UNITS HAVE IF(KOPCS.NE.KOPC.OR.LMAT KFN=KFNS LMATS=LMAT KOPCS=KOPC GO TO 10 5 CONTINUE

TABLES ANO SUB.

GETPRX(.

CHANGED SINCE THE LAST .NE.LMATS) GO TO 5

FINO THE MATERIAL IF (IMATo.GT.0) GO TO 60 CALL EDSGET(LMAT,KUNIT,KREPO, IF(IMATO.LE.O.OR. IERR.LT.0)

IMATO,IOT.IERR) GO TO 75

c 60 C C

CONTINUE TRANSFER INPUT TEMP=OLOGtO(T ) RHO=QLOG1O(R) KBR= 1 IRC=IR(IMAT0,2)

CALL

PARAMETERS

TO COMkKIN BLOCK

,...)

CALL

UNSCRAMBLE MULTIPLE FLAG KOPC CALL EOSKUT(KOPC,KOUMMY,KUNIT ,KREPO,KFN.KOPCS,KBRS,KFNS i ,IERR) IF(IERR.LT.0) GO TO 75 10 CONTINUE

c c

RIOT.

.IMATO,

IOT

.

187 188 189 190 191 192 193 194 195 196 197 198

C c

CALCULATE THE EQUATION OF STATE CALL T4DATX T4DATIX DOES NOT RETURN AN ERROR FOR DATA OUT OF BOUNOS

c c C c

75

RESTORE OUTPUT IFLP=IERR o=1o.**OPACITY(1) CONTINUE RETURN END

VARIABLES

FLAG

FOR RETURN

TO CALL

41

INTERNAL SUBROUTINES

EOSBEG (initializes all the common block variables) EOSCON (defines the table conversion factors) . . EOSDSL (allows the user to scale the density) . . EOSEFD(finds theEOStable) . . . . . . . . . . . EOSFAS (assigns the input files) . . . . . . . . . EOSGET (loads the Sesame EOS data files) . . . . . EOSKUT (checks the validity of KPARM) . . . . . . EOSOFD (finds the opacity table) . . . . . . . . .

42

. . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

43 46 49 51 54 56 59 61

.

1

SUBROUTINE

2C 3C 4C 5C 6C 7C 8C 9C 10 c 11 c 12 c 13 c i4 c 15 c 16 C 17 c 18 c 19 c 20 c 2f c 22 c 23 C 24 C 25 C 26 C 27 C 28 c 29 C 30 c 31 c 32 C 33 c 34 c 35 c 36 C 37 c 38 C 39 c 40 c 41 c 42 C 43 c 44 c 45 c 46 4-I 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62

C c C c c c C c c c C c c c C C C

EOSBEG

******************** ************************* * * PURPOSE● TO INITIALIZE ALL COMMON BLOCKS * * *

INPUT NONE

*********8***** IN

ONE PLACE

OF CODE

VARIABLES-

● ●

* * ●

*

OUTPUT VARIABLESALL OUTPUT IS AT COMPILE TIME IN THE COMMON BLOCKS. THIS ALLOWS THE USER AN EASY WAY TO CHANGE THE VARIABLES BY SETTING THEM TO ANY OTHER VALUE AT EXECUTION TIME IN THEIR MAIN PROGRAM



*

-- - - - - - ---

: * * * * * *

LOCALLY DEFINED SESAME VARIABLEST8LS = ARRAY FOR STORAGE OF THE EOS TABLES LCMX = LENGTH OF THE TBLS ARRAY NRS = UPPER BOUND ON THE-NUMBER OF MAT REGIONS LCFW(NRS,) LCFW = ARRAY USED AS A OIRECTORY BY THE SESAME ROUTINES IR = MATERIAL REGION NUMBER TO PERMIT SUBROUTINE CALL IRC = IR (DEFINED IDS2 = SESAME MATERIAL NUMBER TBLS = NAME OF AN ARRAY DESIGNATED FOR THE STORAGE OF TABLES LCNT = CRRRENT WORD IN THE ARRAY TBLS LU41 = UNIT NUMBER ASSIGNED TO THE SESAME INPUT FILE SES2CL LU42 = UNIT NUMBER ASSIGNEO TO THE SESAME INPUT FILE SESAME LU43 = UNIT NUMBER ASSIGNEO TO SESAME/8 FILES LU44 = UNIT NUMBER ASSIGNEO TO MIXLIf3 (MIXTURES) LU45 = UNIT NUMBER ASSIGNEO TO MIXLIB OIRECTORY. KFN = O RATIONAL APPROXIMATIONS (ACCURATE) KFN = f BILINEAR APPROXIMATIONS (FAST) 26 (OUTPuT FROM GETINVX) AT. cHARGE,AT. cHG*@2,MAss IDT = OATA TYPE INDICATOR MIO (ID) MATERIAL ID =1 INVERSE TABLES =2 OPACITY

● ●

* * * ●

* * ● ●

* ●

* * ●

* ● ● ● ●

* * * ●

* ● ● ●

- - - . ------

- - . -- - ----

------

- ------

- - -----

- - . ----

- - .

EXTERNAL FILES TO HANOLE EOS, OPACITIES AND MIXTURES - CLASSIFIEO SESAME LIBRARY SES2CL SESAME - CUCLASSIFIEO SESAME LIBRARY TABLE FROM T4 SESAME - OPACITY MIXLIB - PRIVATE (EOS,OPC) TABLES CREATED BY MIXB(OR MIXER) MIXDIR - DIRECTORY OF MIXTURES ON MIXLIB ( NAME,NO (A1O.I3)) EXTERNALS ANO COMMON BLOCKSSESAME ROUTINESS2GET.S2EOS SESAME ROUTINES MATCHKX,TABRANX, INBUFRX,DPACKX. ISRCHKX, T41NTPX,GETINVX,RATFN1X.T40ATIX, INV301X,T4RTPEX SESAME COMMON BLOCKS-S2DIRX,RTBLK2X,SESDATX,SESINX. SESOUTX.INTOROX EOSMOD COMMON BLOCKSEOSC1,-7 EOSMOO COMMON (ALSO INSERTED INTO GETINVX) EOSCCE. EOSCCO

● ●

* * * * ●

* ●

REMARKSProgrammedREFERENCE-

THIS .

SUBROUTINE M.

HYMAN

IS

PART

ANO M.

OF THE

KLEIN,

EOSMOD PACKAGE

GROUP

T-7.

LASL

d. M. HYMAN, M. M. KLEIN EOSMDO- A SUBROUTINE PACKAGE FOR CALCiJLATi31G EQUATIONS-OF-STATE AND OPACITIES LOS ALAMOS SCIENTIFIC LABORATORY RPT. .LA-8502-M.

I98O

43

63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 f 03 104 105 106 to7 108 109 110 111 112 113 114 115 f16 117 118

c C C c C C C c c

c c

C C

c C

DATE-

MARCH 6,

1980

* ●

*****************



*****************************

************

COMMON BLOCKS FOR THE SIXdME EOS ROWINES DIMS TBLS,LCMX.NLBUF,LCFW( .).ZZ( ) MUST 6E WATCHED IF CHANGING DIMENSIONS APPEAR IN RTBLK2X.SESDATX,S2DIRX.DATA LCMX... LEVEL 2. TBLS COMMON /S201RX/ LCMX, MRS. LCFW(10.3) COMMON /SESDATX/ TBLS(11OOO) COMMON /SESINX/ DUM(4), KBR, DUMI COMMON /INTOROX/ KFN COMMON COMMON COMMON COMMON COMMON COMMON COMMON COMMON COMMON

BLOCKS /EOSCZ/ /EOSC1/ /EOSC2/ /EosC3/ /EOSC4/ /EOSC5/ /E0sc6/ /EOSC7/

FOR THE LOUT LU41, LF41. INIT, NTABLE, NMAT, NMcL, NMATO,

EOSMOD ROUTINES LU42, LU43, LU44. LU45 LF42, LF43, LF44, LF45 IRDIM, IR(80,3), KUP(80,3) NTABLO, IFLP, LCNT LABMAT(6O). IOMAT(60). IMATEL LaBMcL(60), 1DMcL(60) LKBMO(60), IOMAT0(60), IMATOL

EDSMOD COMMON BLOCKS USED’8Y THE MODIFIED SESAME ROUTINES COMMON /EosccE/ TFACE, RFACE, pFACE, EFAcE, KREPE COMMON /EOSCCO/ TFACO, RFACO, OFACO. KREPO DESIGNATE THE OUTPUT DATA LOUT/mOUTPUT”/

FILE

FOR THE

ERROR MESSAGES

c DATA LCMX /11000/. NRS 1 IR/180*o/.NTABLE/l/,NTA8Lo/o/

/10/,

LCNT /f/, LCFW /30*0/, ,INIT/o/.IRoIM/6o/,KlJP/l8o*(

-1)/

c OATA LU41 /41/, LU42 /42/, LU43 OATA LF41/6HSES2CL/,LF42/6HSESAME/ 1 ,LF45/6HMIXDIR/ c c

c C

119

120 121 122 c 123 C 124

44

● ●

/42/. LU44 /44/, LU45 /45/ .LF43/6HSESAME/.LF44/6HMIXL1B/

INITIALIZE THE CONTENTS OF THE EOS TABLE SESAME DATA NMAT /32/ OATA LABMAT/ 1 “ALLUVIUM”, “ALUMINUM”, ”AL203” .”8ERYLLIUM” ,“BORON C’. 1 “BRASS”, ’’COPPER*, ”DEUTERIUM” ,“GOLD”. ”GRANITE”. 2 ‘HELIUM’, ”HE”, ”IRON”,”IRON2” ,“LEAD”, =6LID”, ”6LIH”, 3 “MOLY”, ”NEON”,”NICKEL” ,“PLATINUM”, ”POLYE”,”POLYS” ,“S102”, 4 “SODIUM” .”SS’,”STEAM”. ‘U02”. =URANIUM”, ”URETHANE” .“VERMICULIT”. 6 ‘WATER”/ DATA IOMAT/7111.3710,7410,2020,7081 . 1 4100,3330,5263,2700,7390, 2 5760.8180,2140.2145,3200,7240,7370. 3 2980.5410,3100,3730,7170,7590, 4 7380,2448,4270.7151,7432 ,1540.7560,7520. 5 71501 INITIALIZE THE CONTENTS OATA NMCL/O/ OATA LABMCL/40*(lH )/ DATA IDMCL/40*0/

OF THE

CLASSIFIED

INITIALIZE DATA NMATO

OF THE

OPACITY

THE /27/

CONTENTS

EOS TABLE

TABLE

SESAME

SES2CL

125 126 127 128 129 130 131 132 133 134 135 136 t37 138 139 140 141 142 143 144

DATA LA81U1/mALUMItWJM”,”ARGON” .“BERYLLIUM”, ”BORON=.”CALCIUM” t .-CARBON”, ‘CHLORINE”, ”CHROMIUM” ,“DEUTERIUM” .“HELIUM’ “IRON”,”LITHIUM= ,=MAGNESIUM” ,“NITROGENm 2, , ‘PHOSPHORUSm, -POTASSIUM” ,=S102’ 3 , ‘OXYGENg .9PBX-9502m . “SILICON”. “SOOIUM”,-SS” ,=STAINLESS” ,“SULPHUR= : ,“TITANIUM”, =TITANIUM W.OWATER=/ c OATA IOMATO/13710,15170,12020, ,12180,15020, 13070.15263, ; ,12140, 12290,13080,t5000 3 ,15010,18200,13910,12460. 4 ,13810,12448,14270,14270, 12960,16000.17150/ 5,

12330,12030 15760 17380 14010

C IMATEL=NMAT IMATOL=NMATO c INIT=l RETURN ENO

45

1 2C 3C 4C 5C 6C 7C 8C 9C 10 c 11 c 12 c 13 c 14 c 15 c 16 C 17 c 18 C 19 c 20 c 21 c 22 c 23 C 24 C 25 C 26 C 27 C 28 C 29 C 30 c 31 c 32 C 33 c 34 c 35 c 36 C 37 c 38 C 39 c 40 c 41 c 42 C 43 c 44 c 45 c 46 C 47 c 48 C 49 c 50 c 51 c 52 C 53 c 54 c 55 c 56 C 57 c 58 C 59 c 60 C 61 C 62 C

SUBROUTINE ●

EOSCON(KUNIT,KREP,LMAT)

****************



****************

*******************

*******



* ●

*

PURPOSETO PROV1OE THE APPROPRIATE SYSTEM OF UNITS CHOSEN

EOS SCALE FhC7LV?S FOR 71+E ICLWIT (SEE BELOW)

Sr

● ●

* * * ●

*

INPUT

VSRIAStES-

... .----

KUNI

I

-----

=

--

KIMJ

Up

. .-----

UNIIS

(sEsAMEE) R-G/cc.T-oEG.K,o-cM**2/G,P-GPA, E-Md/KG 1 (CGS) R-G/CC,T-DEG.K,O-CM**2/GM, P-MUBR,E-ERGS/GM 2 (SIU) R-KG/M**3,T-DEG.K,P-PA,E-LJ/KG,O-M**2/KG 3 (HYDROXE) R-G/cc.T-oEG.K.P=MBR,E-MBR*cc/GM,o-cM**2/G 4 (HYDROXO) R-G/cc,T-KEv,P-MBR,E-MBR*cc/G,o-cM**2/G 5 (SESAMEO) R-G/cc,l-Ev,o-cM**2/G,P-GPA, E-Md/KG 6 (LAsNEx) R-G/cc,T-KEv,o-cM**2/GM.p-dRKs/cc.Eo-dRKs/cc

o

* LEGEND-



R T O P E

● ☛

* ● ☛

= = = = =

OENSIT.Y TEMPERATURE OPACITY PRESSURE INTERNAL ENERGY



CC = CUBIC CENTIMETER CM = CENTIMETER OEG. K = OEGREES KELVIN EV = ELECTRON VOLT G = GRAM GPA = GIGA PASCALS d = IJOULES iJRKS = dERKS KEV = KILO ELECTRON VOLTS KG = KILOGRAM M = METER MBR = MEGABAR MUBR = MICROBAR PA = PASCAL

● ☛ ●

* * ● ☛ ☛ ☛ ☛

* * ● ☛

* * ●

* ●

* *

OUTPUT TFACE RFACE PFACE EFACE

VARIABLESIN THE COMMON BLOCKS EOSCCE = TEMPERATURE EOS SCALING FACTOR = DENSITY EOS SCALING FACTOR = PRESSURE EOS SCALING FACTOR = ENERGY EOS SCALING FACTOR

ANO EOSCCO

● ●

* * * ● ●

TFACO RFACO OFACO LOCAL NONE

= TEMPERATURE OPACITY SCALING FACTOR = OENSITY OPACITY SCALING FACTOR = OPACITY SCALING FACTOR VARIAOLES-

* ●

* * *

EXTERNALS ANO COMMON BLOCKSEOSMOO COMMON BLOCKSEOSCCE,EOSCCO REMARKS-

THIS

SUBROUTINE

IS

PART

OF THE

EOSMOD PACKAGE

● ●

PROGRAMMER-

d.

M.

HYMAN

AND M.

KLEIN,

* ●

REFERENCE-

d.

M.

HYMAN.

M.

M.

KLEIN

GROUP T-7,

LASL

63 C 64 C 65 C 66 c 67 C 68 C 69 C 70 c 71 72 73 c 74 75 76 C 77 c 76 C 79 80 81 82 83 C 84 85 86 87 C 88 c 69 90 91 c 92 C 93 94 95 96 97 98 C 99 c 100 tol 102 103 c fo4 c 105 106 !07 108 109 11OC 111 c 112 113 114 115 c 116C 117 1 ta 119 120 121 122 123 C 124 C

EOSMOO- A SUBROUTINE PACKAGE FOR CALCULATING EQUATIONS-OF-STATE AND OPACITIES LOS ALAMOS SCIENTIFIC LABORATORY RPT. ,LA-8502-M.

● ● ●

1980



*

OATE-

MARCH 6.

1960



******************* COMMON /EOSCCE} COMMON /EOSCCO/

******************* TFACE. TFfiCD,

RFACE. RF.4CW,



WACE. 0F4C0,

*************o**

EFACE. KUEPO

*****

KREPE

KREPE=KREP KREPO=KREP OEFINE THE KNEFAULE SESAME VALUES THESE ARE THE UNITS THAT THE SESAME TFACE=I. RFACE=I. PFACE=l. EFACE=l.

OATA

FILES

ARE WRITTEN

IN

7FACO=4.0646423 RFACO=O. OFACO=O. RESET THE SCALE FACTORS KP1=KUNIT+l GO TO (45,40,30,20.15,10.25],

25

10

15

20

30

THAT

ARE OIFFERENT

FROM THE

DEFAULT

KPf

LASNEX UNITS PFACE91.E-6 EFACE=l.E-6 TFACE=6.617346719E-8 TFACEO=-3. GO TO 50

.

SESAME OPACITY TFACE=8.61703E-5 TFACO=O.O GO TO 50

UNITS

HYOROX OPACITY PFACE=.01 EFACE=.01 TFACE=8.61703E-8 TFACO=-3. GO TO 50

UNITS

HYOROX EOS UNITS PFACE=.01 EFACE=.01 GO TO 50 STANDARD INTERNATIONAL RFACE=l.E+3 PFACE=l.E+9 EFACE=l.E+6 RFACO=3.O OFACO=-1.O GO TO 50

UNITS

(SIU)

CGS UNITS

47

125 126 127 128 129 130 131 132 133 134 t 35 136 137 138 139 140 141

48

40

C c 45 50 C c

PFACE=1.E+1O EFACE=l.E+tO GO TO 50 SESAME EOS UNITS 0FACO=2.O CONTIWE RESCALE THE TABLES IN DSFAC=l.O CALL EOSOSL(LMAT.DSFAC) EFACE=EFACE*DSFAC RFACE=RFACE/OSFAC RFACO=RFACO/llSFAC

c RETURN ENO

THE

USER

PRESCRIBED

SCALE

FACTORS

1 2C 3C 4C 5C 6C 7C 8C 9C 10 c 11 c 12 c 13 c 14 c 15 c 16 C 17 c 18 C 19 c 20 c 21 c 22 c 23 C 24 C 25 C 26 C 27 C 28 C 29 C 30 c 31 c 32 C 33 c 34 c 35 c 36 C 37 c 38 c 39 c 40 c 4f c 42 C 43 c 44 c 45 c 46 C 47 c 48 C 49 c 50 c 51 c 52 C 53 c 54 c 55 c 56 C 57 c 58 59 60 C 61 C 62 C

SUBROUTINE ●

EOSDSL(LMAT.DSFAC)

*****************



****************



****************

****.***

● ● ● ● ● ☛

PURPOSETO ALLOW A USER TO RESCALE THE MASS flENSITV IN THE EOS TABLES. THIS 1S A USEFUL ROUTINE TO APPROXIMATE THE EOS ANO OPACITIES OF DYFFHENT iSOFTXJES ANI ISOTOPIC MIXTURES OF THE MATERIALS IN THE SESAME LIBEARY

● ● ☛

AN ALTERNATE PURPOSE IS TO ALLOW A USER TO OEFINE NEW SCALE FACTORS FOR THE UNITS THE TABLE IS TO BE WRITTEN

IN

● ● ☛

INPUT LMAT

● ● ☛

VARIABLE= MATERIAL IN AN Alo FIELo, FoR ExAMpLELMAT = WHELIUMTHE MATERIAL SESAME NUMBER CAN ALSO BE USED TO SPECIFY THE MATERIAL BY SETTING LMAT TO THE SESAME NUMBER, FOR EXAMPLELMAT = “5760” FOR HELIUM

● ● ● ● ● ● ☛ ☛ ● ●

OUTPUT VARXABLEDSFAC = OEIUSITV SCALE FACTOR EQUAL TO THE RATIO OF THE ATOMIC MASSES OF THE MATERIALS. THAT IS. OSFAC=ATOMIC MASS DENSITY OF THE SES4h?E MATERIAL)/ (ATOMIC MASS OENSITY OF THE OESIREO MTERIAL) ~. FOR EXAMPLETHE EOS OF A 60-40 MIXTURE OF OEUTERIUM-TRIDIUM CAN BE APPROXIMATE BY DEFINING 0SFAC=2/(0.6*2+0.4*3)=0. 833 ANO CALLING EOSMOO WITH LMAT=”OEUTERIUM’

☛ ● ● ☛ ● ●

INPUT-OUTPUT VARIABLES IN THE COMMON BLOCKS TFACE = TEMPERATURE EOS SCALING FACTOR RFACE = OENSITY EOS SCALING FACTOR PFACE = PRESSURE EOS SCALING FACTOR EFACE = ENERGY EOS SCALING FACTOR

EOSCC2

AND EOSCCO

● ● ☛ ●

TFACO RFACO OFACO

= TEMPERATURE OPACITY SCALING FACTOR = OENSITY OPACITY SCALING FACTOR = OPACITV SCALING FACTOR

☛ ☛

FOR

FURTHER

INFORMATION

ON THESE

FACTORS

SEE

SUBROUTINE

EOSCON

☛ ● ☛

EXTERNALS ANO COMMON BLOCKSEOSMOO COMMON BLOCKSEOSCCE,

EOSCCO

● ●

REMARKS-

THIS

SUBROUTINE

IS

PART

OF THE

EOSMOD PACKAGE

● ●

PROGRAMMER-

d.

M.

HYMAN

ANO M.

KLEIN,

GROUP T-7,

LASL

☛ ●

REFERENCE-

☛ ☛ ☛

d. M. HYMANO M. M. KLEIN EOSMOO- A SUBROUTINE PACKAGE FOR CALCULATING EQUATIONS-OF-STATE ANO OPACITIES LOS ALAMOS SCIENTIFIC LABORATORY RPT. ,LA-8502-M,

1980

● ●

OATE-

MARCH 6,

1980

● ● ☛☛☛☛☛☛☛☛☛☛☛☛☛☛☛

● ☛☛☛☛☛☛☛☛☛☛☛☛☛☛☛

coF4MoN /EosccE/ COMMON /EOSCCO/

TFACE. TFACO,

RFAcE. RFACO.

● ☛☛☛☛☛☛☛☛☛☛☛☛☛☛☛

pFAcE, OFACO.

DUMMY SUBROUTINE FOR THE PACKAGE. IF A USER SUPPLIES THIS ROUTINE THEN

EFACE. KREPO

THE

● ☛☛☛☛☛☛☛☛☛☛☛

KREPE

FACTORS

CAN BE

49

63 64 65 66 67 68 69 70 71 72

50

C C C c C c C c

BE RESET AS DESCRIBED WRITTEN. OR A OESITY TD CHANGE THE DENSITY

IN THE MANUAL WHEN THE TABLES SCALE FACTOR CAN BE INCLUDED TABLES BY A CIM&jTANT FACTOR.

FOR EXAMPLE, FOR A 60-40 MIXTURE OF OEUTEUZ~-TRiDIM THE CODE ~LO BE WRITTEN ASlF(LMAT.EO. ”OEUTERIUMg) DSFAC=O.833 RETURN END

ARE

1 2C 3C 4C SC 6C 7C 8C 9C 10 c 11 c 12 c 13 c 14 c 15 c 16 C 17 c 18 C 19 c 20 c 21 c 22 c 23 C 24 C 25 C 26 C 27 C 28 C 29 C 30 c 31 c 32 C 33 c 34 c 35 c 36 C 37 c 38 C 39 c 40 c 41 c 42 C 43 c 44 c 45 c 46 C 4-? 48 49 50 51 52 53 c 54 55 c 56 C 57 58 59 60 C 61 C 62

SUBROUTINE ●

EOSEFD

***************

(LMAT,IO,IMATE)

****************



***************



***********

● ● ● ●

*

PURPOSETO LOCATE EOS MATERIAL OEFINED IN APPROPRIATE FILE ANO ASSIGN PRIVATE ID) EOS NUMBERUMBER

BY HOLLERITH IT A SESAME

NAME (OR



* * * *

INPUT LMAT



VARIABLES= MATERIAL IN AN AfO FIELO, FOR EXAMPLELMAT = “HELIUM” THE MATERIAL SESAME NUU6ER CAN ALSO BE USED TO SPECIFY THE MATEQIAL EN SETTING LMAT TO THE SESAME NUMBER, FOR EXAMPLELMAT = “5760FOR HELIUM



OUTPUT VARIABLES10 = SESAME OR PRIVATE ID NUMBER AS STORED IN LIBRARY * SESAME ( EOS LIBRARY) * IMATE = LOCATION OF MATERIAL IN ARRAY LABMAT+ MIXDIR ● PROVIOEO MATERIAL HAS BEEN LOCATEO * = O IF MATERIAL HAS NOT BEEN LOCATEO EJY ROUTINE ● UPPER BOUFKI ON IMATE IS 60 (DIM Xl?(,)) * * LOCAL VARIAELES* ICFASE = 1 IF THE PUBLIC. EOS FILES HAVE BEEN ASSIGNEO * ICFASCL = 1 IF THE CLASSIFIED EOS FILES HAVE BEEN ASSIGNED * ICFASP = 1 IF THE PRIVATE EDS FILES HAVE BEEN ASSIGNED ●







EXTERNALS AND COMMON BLOCKSEOSMOD COMMON BLOCKSEOSC1.2,3.5.6 FTN ROUTINESENCOOE, EOF LASL T-4 HYOSES ROUTINEEOSFAS

* *

REMARKS-

● ● ●

THIS

SUBROUTINE

IS

PART

OF THE

EOSMOD PACKAGE

● ●

PROGRAMMER-

d.

M.

HYMAN

AND M.

KLEIN.

GROUP T-7,

LASL

● ●

REFERENCE-

* ●

*

d. M. HYMAN, M. M. KLEIN EOSMOD- A SUBROUTINE PACKAGE FOR CALCULATING EQUATIONS-OF-STATE AND OPACITIES LOS ALAMOS SCIENTIFIC LABORATORY RPT. .LA-85O2-M,198O



* * ●

OATE-

MARCH 6,

1980

******************

COMMON COMMON COMMON COMMON COMMON COMMON OATA

/EOSCZ/ /EOSC1/ /EOSC2/ /EOSC3/ /EOSC5/ /Eosc6/

****************** LOUT LU41. LF41, INIT, NMAT. NMCL,

IF THE MATERIAL IMATE=l,NMCL



*****

LU42, LU43. LU44. LU45 LF42, LF43, LF44. LF45 IROIM, IR(60,3), KUP(60,3) LABMAT(6O). IOMAT(60)o IMATEL LABMCL(60)0 1DMcL(60)

ICFASE/O/,ICFASCL/O/.ICFASP/O/.

CHECK IF THE MATERIAL DO 10 IMATE=l,IMATEL IF (LMAT.EO.LABMAT(IMATE)) 10 CONTINUE CHECK 00 12

*****************

IS

IN

IOCNT/1/ THE

STANDARO

SESAME

LIST

GO TO 40

IS

IN

THE

CLASSIFIED

EOS SESAME

LIST

51

IF (LMAT.EO.LABMCL(IMATE)) GO TO 45 63 12 CONTINUE 64 65 C ● ** ASSIGN EOS PRIVATE FILES TO PROGRAM IF AVAILABLE 66 c 67 IF(LU45.EO.4HNONE) GO TO 31 6a IMATE=NMAT 69 IF(ICFASP .GT. O ) W TO 15 70 ICFASP=l 71 CALL EOSFAS(3) 15 CONTINUE 72 73 c 74 c THE CURRENT PRIVATE LIST OIRECTORY {NIXOIR) IS ON UNIT LU45 75 c CHECK IF LF45 EX2STS IN LOCAL FILE SPACE 76 CALL FEXIST(LF45,1FFLAG) 77 IF(IFFLAG .EO. O ) GO TO 30 78 C IFFLAG = O FILE NOT IN LOCAL FILE SPACE 79 c IFFLAG = 1 FILE LOCAL 80 C REWIMI LU45 81 82 20 REAO (LIJ45,80) LA6EL,ID 83 IMATE=IMATE+t B4 IF (LMAT.EO.LA6EL) Go To w 85 IF (EOF(LU45)) 30,20 86 30 CONTINUE 87 31 CONTINUE 88 c 89 C CHECK IF THE LMAT IS A SESAME NUM8ER 90 IMAT1=AND(SHIFT(LMAT,6),77B) 91 CRAY COOE IMATI=ANO(SHIFT(LMAT,8),377B) 92 C 93 IF(IMAT1.LT.208) GO TO 35 94 IF(IMAT1.GT.31B) GO TO 35 95 c 0ECODE(I0,32,LMAT) IO 96 97 32 FORMAT(I4) 98 C 99 00 33 IMATE=l.IMATEL 100 IF(IO.EO. IOMAT(IMATE)) GO TO 40 101 33 CONTINUE 102 c 103 IMATEL=IMATEL+l 104 IMATE=IMATEL 105 LABMAT(IMATE)=LMAT 106 IOMAT(IMATE)=IO 107 c 108 C ASSUME THE MATERIAL IS IN THE STANOARO SESAME LIST 109 c IF IT IS NOT, A NONFATAL ERROR WILL OCCUR AT A LATER STEP 110 GO TO 40 111 c THE MATERIAL WAS NOT FOUNO. PRINT AN ERROR MESSAGE 112 c 35 IMATE=O 113 WRITE!LOUT,75) LMAT 114 115 GO TO 999 I16C 40 Io=IoMAl(IMATE) 117 118 C ● ** AssIGN Eos FILEs To PRoGRAM 119C 120 IF(ICFASE .GT. O ) GO TO 44 121 ICFASE=l 122 CALL EOSFAS(I) 44 CONTINUE 123 124 C

52

125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 f44 145 146 147 148

GO TO 999 C 45

ID=IDMCL(IMATE)

46

c** AssIGN classified IF(ICFASCL .GT. O ICFASCL=\ CALL EOSFAS(4) CDNTIMJE

c C

EDs FILEs ) GO TO 46

TD pRoGRAM

c 50

60

CONTINUE IF (IMATE.LE.IRDIM) IMATE=O WRITE(LOUT.90) LMAT CONTINUE

GO TO 60

c 999

CONTINUE RETURN

c 75 80 90

FORMAT FORMAT FORMAT 1

./.END

(“ MATERIAL LMAT = ‘.A1O.” NOT FOUNO”) (A1O,I3) (“ IMATE EXCEEDS UPPER BOUND IN SUBROUTINE FOR MATERIAL LMAT=”,A1O)

EOSEFO



53

1 2C 3C 4C 5C 6C 7C EC 9C 10 c 11 c 12 c 13 c 14 c 15 c 16 C 17 c 18 C 19 c 20 c 21 c 22 c 23 C 24 C 25 C 26 C 27 C 28 C 29 C 30 c 31 c 32 C 33 c 34 c 35 c 36 C 37 c 38 39 40 41 42 C 43 44 c 45 c 46 47 48 49 50 51 52 C 53 c 54 5s 56 57 58 59 60 C 61 C 62

54

aumiwum *NC

cuarmafnlmm~c)

*****************



*****************



**********************

**

● ● ●

PURPOSETO ASSIGN

FILE

NAMES

TO THE

EOS ANO OPACITY

OATA FILES

● ● ● ● ☛ ●

INPUT VARIABLESKTASLE = 1 EOS TABLE 2 OPACITY TABLE 3 PRIVATE TA8LES 4 SES2CL TABLES

☛ ● ●

OUTPUT NONE

VARIABl.ES-

● ● ● ☛

LOCAL VARIABLESINITE, INITECL,INITO ANO PRIVATE FILES

ANO INITP ARE SET HAVE BEEN INITIALIZED

TO 1 AFTER

THE

EOS,

OPACITY

● ● ☛ ●

EXTERNALS ANO COMMON BLOCKSEOSMOO COMMON BLOCKSEOSCI, EOSC2 FTN SUBROUTINESQASSIGN, ASSIGN

☛ ☛

REMARKS-

THIS

SUBROUTINE

IS

PART

OF THE

EOSMOO PACKAGE

● ●

PROGRAMMER-

d.

M.

HYMAN ANO M.

KLEIN.

GROUP T-7,

LASL

☛ ●

REFERENCE-

☛ ● ●

d. M. HYMAN, M. M. KLEIN EOSMOO- A SUBROUTINE PACKAGE FOR CALCULATING EQUATIONS-OF-STATE ANO OPACITIES LOS ALAMOS SCIENTIFIC LABORATORY RPT. .LA-8502-M,

● ●

DATE-

MARCH 6,

1980



********************* COMMON /EOSCZ/ COMMON /EOSC1/ COMMON /EOSC2/ DATA INITE/O/, GO TO

(10.20.30.40),

***************** LOUT LU41. LU42, LU43, LF41, LF42, LF43, INITO/O/. INITP/O/,

● ☛☛☛☛☛☛☛☛☛☛☛☛☛☛☛☛

IJJ44. LU45 LF44, LF45 INITECL/O/

KTABLE

EOS TA8LE ASSIGNMENT COOING 10 CONTINUE IF(INITE.NE.0) GO TO 999 IF((INITO.NE.O).ANO. (LF42. EO.LF43)) INITE=l CALL OASSIGN (LU420LF42,0.0) GO TO 999

GO TO 999

OPACITY TABLE ASSIGNMENT COOING CONTINUE IF(INITO.NE.0) GO TO 999 IF((INITE.NE.O).ANO. (LF42. E().LF43)) INITO=l CALL OASSIGN (LU43.LF43.0,0) GO TO 999

GO TO 999

20

30

PRIVATE TABLES CONTINUE

☛☛☛☛☛

I98O

63 64 65 66 67 68 69 70 71 72 73 74 75 76 77

IF(INITP.NE.0) INITP=l CALL QASSIGN CALL ASSIGN GO TO 999 c C 40

GO TO 999 (LIJ44.LF44.O.0) (LU45.LF45.40008)

CLASSIFIED EOS TABLE ASSIGNMENT CONTINUE IF(INITECL.NE.O) GO TO 999 INITECL=l CALL OASSIGN (LU41,LF41.O.0) GO 7’0 999

COOING

c 999

RETURN ENO

55

1 2C 3C 4C 5C 6C 7C 8C 9C 10 c 11 c 12 c 13 c 14 c 15 c 16 C 17 c 18 C ?9 c 20 c 21 c 22 c 23 C 24 C 25 C 26 C 27 C 28 c 29 C 30 c 31 c 32 C 33 c 34 c 35 c 36 C 37 c 38 c 39 c 40 c 41 c 42 C 43 c 44 c 45 c 46 C 47 c 48 C 49 c 50 c 51 c 52 c 53 c 54 c 55 c 56 C 57 c 58 c 59 c 60 C 61 62

56

SUBROUTINE

EOSGET(LMAT,KUNIT,KREPO

● ☛☛☛☛☛☛☛☛☛☛☛☛☛☛☛☛

IMAT.

● ☛☛☛☛☛☛☛☛☛☛☛☛☛☛☛☛☛☛

IDT,IERR)

● ☛☛☛☛☛☛☛☛☛☛☛☛☛☛☛☛☛☛☛

☛☛☛☛

● ●

* * ● ●

PURPOSELOAD THE INPUT LMAT

SESAME

EOS DATA

FILES

VARIABLES= MATERIAL IN AN A1O FIELD, FOR EXAMPLELMAT = “HELIUM” THE MATERIAL SESAME NUMBER CAN ALSO BE USEO TO SPECIFY THE MATERIAL BY SETTING LMAT TO THE SESAME NUMBER. FOR EXAMPLELMAT = “6760” FOR HELIUM

● ● ●

* ●

* ● ●

* * ●

* * * *

KUNIT= O 1 2 3 4 5 6 IMAT

● ●

=0



* ●

>o

* ● ●

KINO OF UNITS (SESAMEE) R-G/CC,T-OEG.K.O-CM**2/G,P-GPA ,E-Md/KG (CGS) R-G/CC,T-OEG.K,O-CM**2/GM,P-MUBR. E-ERGS/GM (SIU) R-KG/M**3,T-OEG.K,P-PA,E-d/KG,0-M**2/KG (HYDROXE) R-G/cc,T-DEG.K,P=MBR,E-MBR*cc/GM,o-cM**2/G (HYDROxO) R-G/cc,T-KEv,p-M6R,E-MBR*cc/G,o-cM**2/G (SESAMEO) R-G/CC,T-EV,0-CM**2/G.P-GPA. E-Md/KG (LASNEX) R-G/cc,T-KEv.o-cM**2/GM.p-dRKs/cc. EO-dRKS/CC

=

INOICATES WHETHER TO LOAO THE OATA FILE IF IT 00ES NOT EXIST FOR LMAT OR GO OIRECTLY TO A PREVIOUSLY LOADEO’FILE. CHECK IF THE DATA FILE FOR LMAT HAS BEEN LOAOEO. IF NOT, SEARCH FOR THE FILE, COMVERT IT TO THE PROPER UNITS ANO COPY IT INTO LCM . EQUAL TO THE LMAT TABLE NUMBER. THIS NUMBER WAS RETURNED BY THE PACKAGE ON A PREVIOUS CALL TO SUBROUTINE EOSORE, EOSIPT OR EOSIRT. THIS OPTION IS FASTER THAN IMAT = O BECAUSE IT SKIPS SEARCH IN THE DIRECTOR OF THE



* ●

*

OUTPUT VARIABLESIERR = O SUCCESSFULL .NE.O UNSUCCESSFUL



*

TBLS

= LCM FILE

SPACE

WHERE THE

EOS TABLES

ARE WRITTEN

● ●

LOCAL

VARIABLES-

* ●

*

EXTERNALS AND COMMON BLOCKSEOSMOO COMMON BLOCKSEOSC1.EOSC3

● ●

REMARKS-

THIS

SUBROUTINE

IS

PART

OF THE

EOSMOO PACKAGE



*

PROGRAMMER-

d.

M.

HYMAN

AND M.

KLEIN.

GROUP T-7,

LASL

● ●

REFERENCE-

* ● ●

d. M. HYMAN, M. M. KLEIN EOSMOD- A SUBROUTINE PACKAGE FOR CALCULATING EOUATIONS-OF-STATE AND OPACITIES LOS ALAMOS SCIENTIFIC LABORATORY RPT. ,LA-8502-M.



*

DA7E-

MARCH 6.

?980



***************** LOAO THE



SESAME

COMMON BLOCKS LEVEL 2, TBLS COMMON /S2DIRX/

******************

EOS TABLES

FOR THE LCMX.



IN

SESAME NRS.

THE

****************

INVERTED

EOS ROUTINES

LCFW(10.3)

FORMAT



******

1980

63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 :: 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 t 10 111 112 113 114 115 1 f6 117 118 1 t9 120 121 122 f23 124

COMMON /5EsDATx/ COMMON /5EsINx/ COMMON /INToRDx/ c C

COMMON COMMON COMMON COMMON COMMON

BLOCKS /EoSCZ/ /EOSC1/ /EOSC3/ /EOSC4/

T13LS(IIOOO) DuM(4), KBR, KFN

OUMI

FOR THE EOSMOO ROUTINES LOUT LU41, LU42. LU43, LU44, LU45 INIT, IRDIM, IR(60,3). KUP(60.3) NTABLE. NTABLO, IFLP, LCNT

C OIMENSION

ZB(3)

c IERR=O C c c

CALL THE FILE ASSIGNMENT ROUTINE TO ASSIGN UNIT NUMBERS TO THE INPUT OATA FILES IF(IOT.NE.2) CALL EOSEFO (LMAT,IO,IMAT) IF(IOT.EO.2) CALL EOSOFO (LMAT.ID.IMAT)

REAO ANO WRITE

C IF IF C C

(IMAT.LE.0) (IMAT.LE.0)

IERR=-1 GO TO 75

CHECK IF THE TABLES IF (IR(IMAT. IOT).GT.0)

c c

HAVE BEEN INITIALIZED GO TO 70

CONVERT TABLES TO APPROPRIATE CALL EOSCON(KUNIT,KREP.LMAT)

UNITS

c MIXTST=ID/1000 C GO TO c c 10

c c 20

(10,2O,3O).IL)T

LoAD THE EOS TABLE5 CONTINUE IF(MIXTST.NE.O)CALL IF(MIXTST.EO.O)CALL GO TO 40 LoAo THE CONTINUE

OPAcITY

IN

THE

GETINVX GETINVX

TA6LE5

INVERTEO

FoRMAT

(NTA6LE, (NTABLE.

(IOT=I)

ID, 10T,Tf3L5.LCNT,LU42, IERR,2B) 10.IDT.T8LS.LCNT, LU44,1ERR,Z8)

(IDT=2)

c IF (MIxTsT.EO.0) IF (MIXT5T.NE.0) GO TO 40 c C 30

40 c c

LOAD THE EOS TABLES CONTINUE IF(MIXTST.NE.O)CALL :F(MIXTST.EO.O)CALL CONTINUE IERR RETURNS IF (IERR.GT.0) IF(IERR.LT.0) IF(IERR.EO.0) IF(IERR.EO.0) GO TO 75

c c 60

CALL CALL

THE TABLES IERR=O IF(IOT.NE.2)

IN

GETRPOx GETRPOX

THE

GETEOSX GETEOSX

(NTA6L0, 1D010T,7.BL5,LCNT,LU44. (NTA8L0.ID,IOT,TBLs,LcNT.LU43.

STANOARO (NTABLEo (NTABLE,

NEGATIVE IF THERE IS GO TO 60 WRITE(LOUT.90) IERR WRITE(LOUT. 1OO)LMAT IERR=-2

HAS

BEEN

LOAOEO.

SET

AN

THE

FORMAT

IERR) IERR)

(IDT=3)

10,10T,T5LS,LcNT.Lu42, Io. IDT,T8L5.LcNT.LU44.

INITIALIZATION

IERROZB) IERR.ZB)

ERROR

EOSMOD VARIABLES

GO TO 65

C

57

125 C 126 127 128 129 130 c 131 c 132 133 134 135 136 137 c 138 C 139 140 c 141 142 143 144 145 c 146 147 148 C 149 150 c 1s1

152

153 1!54 155

58

OPACITY TA8LE UPOATE IR(IMAT, IDT)=NTA8L0 KUP(IMAT,IDT)=1O*KUNIT+KREP NTABLO=NTABLO+ I GO TO 70

65

70

EOS TABLE UPOATE CONTINUE IR(IMAT, IOT)=NTABLE KUP(IMAT,IOT)= 10*KUNIT+KREP NTABLE=NTABLE+ 1 CONTINUE CHECK IF THE UNITS IF(10*KUNIT+KREP.NE.KUP(

80

75

.

ARE VALIO IMAT.IOT))

IERR=-6

IF(IERR.EO.-6) WRITE(LOUT.80)KUNIT.KREP,KUP( IMAT,3) FORMAT(” THE UNITS HAVE CHANGEO SINCE THE LAST USE 2,/,” THE CURRENT VALUES OF KUNIT AND KREP ARE “,214 THE PREVIOUS VALUES OF KUNIT AND KREP WERE-,15) 3./,” CONTINUE IF(IERR.LT.0)

IMAT=IERR

RETURN 90

FORMAT(” INSUFFICIENT STORAGE IN LCM” ;/.” iACK”,IIO, ” WORDS”) “,AlO,/, 100 FORMAT(” UNABLE TO LOCATE MATERIAL 1 “ IN SUBROUTINE EOSGET”) ENO

-1

OF THE

TABLE”

1 2 3C 4C 5C SC 7C 8C 9C 10 c 11 c 12 c 13 c 14 c 15 c 16 C 17 c 18 c 19 c 20 c 21 c 22 c 23 C 24 C 25 C 26 C 27 C 28 C 29 C 30 c 3$ c 32 C 33 c 34 c 35 c 36 C 37 c 38 C 39 c 40 c 41 c 42 C 43 c 44 c 45 c 46 C 47 c 48 C 49 c 50 c 51 c 52 C 53 c 54 c 55 c 56 C 57 c 58 C 59 c 60 C 61 C 62 C

2

SUBROUTINE IOT.IERR)

EOSKUT(KPARil.KBR,KUNIT.KREP.KFN,KEOSS.K6RS,KFNS,

******************

******************



IMAT,

*****************

******

* ● ● ☛

PURPOSETO CHECK THE VALIDITY OF THE INPUT VALUE AND TO SEPARATE OUT THE INTERNAL PARTS

FOR KPARM

☛ ● ☛ ●

INPUT VARIA6LESKPARM = MULTIPLE AND RETRIEVE

PARAMETER FLAG THE DATA FILE.

TO OESCRIBE HOW TO WRITE KPARM HAS FOUR OECIMAL OIGITS.

● ☛

KPARM

=

1000*KBR

+

100*KUNIT

+

10*KREP

+ KFN

WHERE

☛ ● ☛ ● ☛

OUTPUT VARIABLESKBR = COMPUTATIONAL MODE FLAG TO INOICATE WHICH QUANTITIES AND THEIR PARTIAL DERIVATIVES ARE TO BE CALCULATE AND RETURNED BY THE PACKAGE.

● ☛ ● ☛ ● ☛ ● ● ●

KUNIT= o 1 2 3 4 5 6

KINO OF UNITS (sEsAMEE) R-G/cc,T-oEG.K,o-cM**2/G, P-GPA,E-Md/KG (CGS) R-G/CC,T-OEG.K,O-CM**2/GM,P-MUBR .E-ERGS/GM (SIU) R-KG/M**3,T-DEG.K,P-PA.E-LJ/KG.O-M**2/KG (HYDROXE) R-G/cc:.T-DEG.K.P=MBR,E-MBR*cc/GM,o-cM**2/G (HYDROXO) R-G/cc,T-KEv.p-Mf3R,E-Mr3R*cc/G,o-cM**2/G (SESAMEO) R-G/CC,T-EV.0-CM”*2/G,P-GPA. E-Md/KG (LAsNEx) R-G/cc,T-KEv,o-cM**2/GM,P-dRKS/cc,EO-dRKS/CC

☛ ● ● ● ☛ ☛ ☛ ☛ ☛ ☛ ●

IF KREP REFERS TO EOS TABLE UNITS KREP w COMPUTATION FLAG TO INOICATE WHETHER E IS IS TO BE REPRESENTED AS ENERGY PER UNIT MASS OR ENERGY PER UNIT VOLUME O ENERGY IN UNITS OF ENERGY PER UNIT MASS. FOR EXAMPLEUNITS OF ERGS/GRAM WHEN KUNIT = 1. THIS IS THE USUAL E. 1 ENERGY IN UNITS OF ENERGY PER UNIT VOLUME. FOR EXAPMLEUNITS OF ERGS/CM**3 WHEN KUNIT = 1. THIS IS THE ENERGY DENSITY RHO*E COMMONLY COMPUTEO IN HYDRODYNAMIC COMPUTER COOES.

☛ ☛ ● ● ● ● ☛ ☛ ●

IF KREP (KREPO) REFERS TO OPACITY TABLE UNITS KREPO = COMPUTATIONAL FLAG TO INOICATE WHICH REPRESENTATION TO USE FOR THE OPACITY VARIABLE. O OPACITY REPRESENTED AS KAPPA IN DIMENSIONAL UNITS OF LENGTH**2/MASS 1 OPACITY REPRESENTED AS A MEAN-FREE PATH. LAMBOA = l/(KAPPA*RHO), IN DIMENSIONAL UNITS OF LENGTH.

☛ ☛ ● ☛

KFN = KIND OF = 0 RATIONAL = 1 81LINEAR

FUNTION INTERPOLATION IN THE APPROXIMATIONS (ACCURATE) APPROXIMATIONS (FAST)

TABLES

☛ ☛

LOCAL

VARIABLES-

☛ ☛

EXTERNALS

ANO COMMON BLOCKS-

REMARKS-

THIS

☛ ☛

SUBROUTINE

IS

PART

OF THE

EOSMOO PACKAGE

☛ ☛

PROGRAMMER-

d.

M.

HYMAN

ANO M.

KLEIN.

GROUP

T-7,

LASL

● ●

REFERENCE-

d.

M.

HYMAN,

M.

M.

KLEIN

59

63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 64 85 86 87 88 89 80 9f 92 93 94 95 96 97 98 99 100 101 102 t 03 104 105 106 107 108 109 110 111 112 113 114 t 15 i16 117 118

60

C C C c C C C c

EOSMOD- A SUBROUTINE PACKAGE FOR CALCULATING EQUATIONS-OF-STATE ANO OPACITIES LOS ALAMOS SCIENTIFIC LABORATORY I?PT. .LA-B5O2-M.198O

● ● ●

* *

OATE-

MARCH 6,

1980



********************



COMMON /EOSCZ/ COMMON /EOSC3/

LOUT INIT,

********************

IROIM,



IR(60.3),

*****************



KUP(60,3)

c IERR=O c IF(INIT.EO.0) c C c

UNSCRAMBLE

CALL

EOSBEG

MULTIPLE

KBR=KPARM/1000 ITEMP=KPARM-KBR*

FLAG

KPARM

1000

c KUNIT=ITEMP/100 ITEMP=ITEMP-KUNIT*

100

C KREP=ITEMP/10 KFN=ITEMP-10*KREP c KEOSS=KPARM KFNS=KFN KBRS=KBR c c

c c

CHECK IF KPARM IS A VALID IF(KPARM.LT.0) IERR=-2 IF(KBR.GT.2) IERR=-2 IF(KUNIT.GT.6) IERR=-2 IF(KREP.GT.1) IERR=-2 IF(KFN.GT.1) IERR=-2

INPUT

PARAMATER

PRINT AN ERROR MESSAGE IF KUNIT IS NOT VALID IF(IERR.LT.0) WRITE(LOUT, 1O)KPARM,KBR.KUNIT,KREP,KFN 10 FORMAT(” ERROR OETECTED IN KPARM VALUE IN SUBROUTINE I ./.= KPARM=”.15.” KBR=”.15,= KUNIT=”015.= KREF’=”015,”

c c

CHECK IF THE UNITS HAVE IFIIMAT.LE.0) GO TO 90 IF(IO*KUNIT+KREP.NE.KUP( IF (IERR.GE.0) 00 TO 90

EOSKUT” KFN=”015)

CHANGEO IMAT,IOT))

IERR=-6

c 30

WRITE(LOUT,30)KUNIT,KREP.KUP( IMAT.IDT) THE UNITS HAVE CHANGEO SINCE THE LAST USE FORMAT(a AND KREP ARE “,212 2./.” THE CURRENT VALUES OF KUNIT VALUES OF KUNIT AND KREP WERE-.15) 3,/.” THE PREVIOUS

c 90

CONTINUE

C RETURN END

OF THE

TABLE”

I

1 2C 3C 4C 5C 6C 7C Bc 9C 10 c 11 c 12 c 13 c 14 c 15 c 16 C 17 c 18 c 19 c 20 c 21 c 22 c 23 C 24 C 25 C 26 C 27 C 28 C 29 C 30 c 31 c 32 C 33 c 34 c 35 c 36 C 37 38 39 40 41 42 C 43 44 c 45 46 47 48 49 c 50 c 51 52 53 54 55 c 56 C 57 58 59 60 61 C 62 C

SU6ROlJTlNE

EOSOFD

(LUATotOoIMATO)

*****************





*******************



******************

***



PURPOSETO OBTAIN

● ●

MATERIAL

NUMBERS

FOR OPACITY

TABLES



* *

INPUT LMAT

● ●

* * * *

VARIABLES= MATERIAL IN AN A1O FIELD, FOR EXAMPLELMAT = ‘HELIUM” THE MATERIAL SESAME NUMBER CAN ALSO BE USED TO SPECIFY THE MATERIAL BY SETTING LMAT TO THE SESAME NUMBER, FOR EXAMPLELMAT = “5760” FOR HELIUM

OUTPUT VARIABLESID= SESAME OR MIXTUREID NUMBER AS STORED ● IN SESAME OR MIXDIR(MIXLIB) * IMATO = LOCATION OF MATERIAL IN ARRAY LAB~ * PROVIDEO MATERIAL HAS BEEN LOCATED ● = O IF MATERIAL HAS NOT BEEN LOCATEO * ● LOCAL VARIABLES* EOSMOD COMMON BLOCKSEOSC1.EOSC3

+ KIXDIR

● ●

EXTERNALS

AND COMMON BLOCKS-



* *

PROGRAMMER-



REFERENCE-



* ●

d.

M.

OATA ● ***

/EOSCZ/ /EOSC1/ /EOSC2/ /EOSC3/ /EOSC7/

GROUP

T-7.

LASL

1980 ●

****************

ICFASO.lCFASP/2*0/ AssIG~ opAcIly O)

********************

F“ILEs GO

CHECK IF THE MATERIAL DO 10 IMATO=l,IMATOL IF (LMAT.EQ.LABMO(IMATO)) 10 CONTINUE IMATO=IMATOL ** AssIGN PRIVATE IF(ICFASP .GT. O) ICFASP=l CALL EOSFAS(3) 15 CONTINUE ●

CURRENT

KLEIN.



*****

LOUT LU41, LU42. LU43. LU44, LU45 LF41. LF42, LF43, LF44, LF45 INIT. IRDIM, IR(60,3). KUP(60.3) NMATO, LABMD(60). IDMATO(60)0 IMAToL

IF(ICFASO .GT. ICFASO=l CALL EDSFAS(2) 5 CONTINUE

THE

AND M.

d. M. HYMAN, M. M. KLEIN EOSMOO- A SUBROUTINE PACKAGE FOR CALCULATING EQUATIONS-OF-STATE ANO OPACITIES LOS ALAMOS SCIENTIFIC LABORATORY RPT. ,LA-6502-M.

* * OATEMARCH 6. * ***************** COMMON COMMON COMMON COMMON COMMON

HW4AN

PRIVATE

TO PROGRAM

TO 5

IS

IN

THE

STANDARD

SESAME

TABLES

GO TO 40

OPACITY FILES GO TO 15

LIST

DIRECTORY

TO PROGRAM

(MIXOIR)

IS

ON UNIT

LU45

1980

63 C CHECK IF LF45 EXISTS IN LOCAL FILE SPACE CALL FEXIST(LF45, 1FFLAG) 64 65 IF(IFFLAG .EO. O ) GO TO 30 66 c IFFLAG = O FILE NOT IN LOCAL FILE SPACE IFFLAG = 1 FILE LOCAL 67 C REWINO LU45 68 20 REAO (LU45,60) LA13EL,I0 69 70 IMATO=IMATO+l 71 IF (LMAT.E0.LAf3EL) GO TO 50 IF (EOF(LU45)) 30.20 72 73 30 CONTINUE 74 c 75 c CHECK IF THE LMAT IS A SESAME NUMBER IMAT1=ANO(SHIFT(LMAT.6) ,776) 76 77 CRAY COOE IMAT1=ANO(SHIFT(LMAT,8) .377B) 78 C 79 IF(IMAT1.LT.20E) GO TO 35 IF(IMATI.GT.31B) GO TO 35 80 81 c OECODE(10,32.LMAT) ID 82 83 32 FORMAT(I5) 84 C 00 33 IMATO=l,IMATOL 85 IF(IO.EQ. IOMATO(IMATO)) GO TO 40 86 87 33 CONTINUE 88 c IMATOL=IMATOL+l 89 IMATO=IMATOL 90 91 LA8MO(IMATO) =LMAT 92 IDMATO(IMATO)=IO 93 c ASSUME THE MATERIAL IS IN THE STANDARO SESAME LIST 94 c 95 c IF IT IS NOT. A NONFATAL ERROR WILL OCCUR AT A LATER STEP 96 GO TO 40 97 c 98 C THE MATERIAL WAS NOT FOUNO. PRINT AN ERROR MESSAGE 99 c 100 35 CONTINUE 101 IMATO=O 102 WRITE(LOUT,70) LMAT 103 GO TO 999 104 c 105 40 IO=IOMATO(IMATO) 106 50 CONTINUE 107 c 108 IF (IMATo.LE.IRDIM) Go To 60 IMATO=O 109 110 WRITE(LOUT.90) LMAT 111 60 CONTINUE 112 c 113 999 CONTINUE +14 RETURN 115C 116 C****** IMPROVE THEsE OIAGoNIsTIcs****************** 70 FORMAT (“ MATERIAL LMAT = “,A1O,” NOT FOUNO”) 117 80 FORMAT (AI0,13) 118 90 FORMAT (“ IMATD EXCEEOS UPPER 80UN0 IN SUBROUTINE EOSOFO 119 f 20 1 ./.’ FOR MATERIAL LMAT=-,AIO) 121 ENO



T-4 SUBROUTINES USED BY EOSMOD

DPACXX(packs real numbers) . . . . . . . . . . . . . . GETEOSX (loads the total EOS tables) . . . . . . . . . . GETHWX (gets inverted EOS tables) . . . . . . . . . . . GETRPOX (loads Rosseland/Planck opacity tables) . . . . INBUFRX (sequential read) . . . . . . . . . . . . . . . INV301X (inverts a 301 table) . . . . . . . . . . . . . ISRCHXX (index search) . . . . . . . . . . . . . . . . . MATCHXX (checks if material table is loaded) . . . . . . RATFNIX (one-dimensional interpolator) . . . . . . . . . TABRANX (fetches a given table for a given material from aSesameII library) . . . . . . . . . . . . . T4DATIX (interpolates the inverted tables) . . . . . . . T4DATX (search/interpolatefor atomic data as functions of region, density, and temperature) . . . . . , T41NTPX (interpolates for a function z(x,y) and its derivatives) . . . . . . . . . . . . . . . . . T4PTREX (computes R and E from inverted table) . . . . . T4RTPEX (computes P and E from inverted table) . . . . .

. . . . . . . . ..71 . . . . . . . .

64 65 67 69

. . . .

78 80

. .

83

. . . . . .

86 89 91

72 74 75 76

63

FUNCTION OPACKX(A,B) 1 2 c---------------------” -----------------------------------” 3C 4 C FUNCTION OPACKX SC 6 C PURPOSE TO OOUBLE PACK ARGUMENTS A ANO B INTO A SINGLE 7C 8 C REMARKS SYSTEM OEPENOENT SHIFT FUNCTION 9C 10 C PROGRAMMER d.ABDALLAH.dR. 11 c 1 MAY 1979 12 C OATE 13 c 14 c---------------------------------------------------------------------EQUIVALENCE (11,X1),(12,X2) 15 B/ OATA MASK/7777777777~ 16 X1=A 17 X2=B 18 19 11=11.ANO.MASK 12=12.ANO.MASK 20 12=SHIFT(12,30) 21 11=11.OR.12 2223 DPACKX=X1 RETURN 24 ENO 25

I

64

-----------

WORO

I

1 SUBROUTINE GETEOSX(IR,MIO.IOT,T6LS,LCNT,LU, IFL,ZB) 2 c************************************************************* 3C GETEOSX(IR,MIO. IOT.TBLS. LCNT,LU.IFL,ZB) 4 C SUBROUTINE 5C TO LOAD THE TOTAL EOS TABLES 6 C PURPOSE 7C REGION NO. IR ( INPuT ) 8 C ARGUMENTS MID ( INPUT) MATERIAL ID. 9C ( INPUT) IOT OATA TYPE INDICATOR 10 c TBLS (OUTPUT) ARRAY FOR TABLE STORAGE 11 c LCNT (1/0) POSITION IN ARRAY FOR STORING TABLES 12 c Lu ( INPUT) 13 c SESAME LIBRARY UNIT NUMBER IFL (OUTPUT) ERROR FLAG 14 c 15 c = 2 FOR MATERIAL ALREADY LOAOED 16 C = 1 FOR SUCCESSFUL LOAOING 17 c = O FOR DATA NOT FOUNO 18 c = - NO. OF EXTRA WOR6S NEEOED FOR 19 c STORAGE (OUTPUT) ATOMIC cHARGE.cHARGE**2,ANo MASS ZB 20 c ZB(l) = Z 21 c ZB(2) = Z**2 22 c 26(3) = A 23 C 24 C 25 C THIS IS THE LASNEX VERSION OF GETEOS 26 C REMARKS 27 C PRESSURES AND ENERGIES ARE 00U6LE PACKEO 28 c 29 C ENERGY OENSITIES ARE PER UNIT VOLUME (NOT uAss) 30 c 31 c MATCHKX.TABRANX ,DPACKX 32 C EXTERNALS 33 c R.C. ALBERS, T-4 34 C PROGRAMMER 35 c 36 C OATE 25 APRIL 79 37 c 38 c************************************************************** 39 LEVEL 2.TBLS 40 DIMENSION TBLS[l).ZB(3) ..———.. REPLACE FOLLOWSNG LINE BY USER COMMON BLOCKS 41 c coMMoN/s201Rx/LcMx.NRs.LcFw( 10,3) 42 COMMON /EOSCCE/ TFACE. RFACE, PFACE, EFAcE. KREpE 43 44 c CHECK TO SEE IF TABLE HAS BEEN LOAOEO 45 c CALL MATCHKX(MID.NRS.LCFW( I,IOT) .TBLS(l).IFLG) 46 IF(IFLG.EQ.0) GO TO 10 47 LCFW(IR,IOT) = IFLG 48 IFL=2 49 RETURN 50 = LCMX - LCNT - 1 10 NLEFT 51 52 C FETCH THE 201 TABLE 53 c 54 CALL TABRANX(MID.201 ..LU.TBLS(LCNT+2) .NLEFT,IFL) IF(IFL.LE.0) RETURN 55 ZB(l) = TBLS(LCNT+2) 56 ZB(2) = ZB(I)*ZB(I) 57 28(3) = T6LS(LCNT+3) 58 RHOO=TBLS(LCNT+4) 59 60 C FETCH THE 301 TABLE 61 C CALL TA6RANX(MID,301 ..LU.TBLS(LCNT+2) .NLEFT.IFL) 62

65

63 64 C 65 C 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 C 85 C 86 87 68 89 90 91 92

66

IF(IFL.LE.0)

20

40 30

RETURN

CONVERT TO LASNEX UNITS Am 00U8LE PACK NR = TBLS(LCNT+2) NT = TBLS(LCNT+3) DO 20 I=l,NT LOCT = I + (LcNT + NR + 3) TBLS(LOCT)=TFACE*TBLS(LOCT) NWOS = NR*NT DO 30 d=l.NR RHO = TBLS(O + LCNT + 3)*RFACE TBLS(U+LCNT+3)=RH0 00 40 I=l,NT LOCP = (1-t)*NR + d + (NT + NR + LCNT + 3) LOCE = LOCP + NWOS PTEM=TELS(LOCP)*PFACE ETEM’TBLS(LOCE)*EFACE IF(KREPE.EO. l)ETEM=ETEM*RHO TBLS(LOCP) = DPACKX(PTEM,ETEM) CONTINUE CONTINUE RESET INPUT PARAMETERS ANO END TBLS(LCNT)=FLOAT(MIO) TBLS(LCNT+l)=RHOO LCFW(IR.IOT)=LCNT LCNT = LCNT + 2 + IFL - NWOS IFL = 1 RETURN ENO

1 SUBROUTINE GETINVX(IR.MIO, IDT,TBLS,LCNT, LU,IFL,ZB) --------- --- - --- -- - - -- - -- -- ------------- . - -- --- .2C --- - -- - -- - ------3C GETINVX( IR.MID. IDT,TfJLS,LCNT.LU. IFL,ZB) 4 C SUBROUTINE 5C TO LOAO INVERTED (ENERGY 8ASED) SESAME 11 6 C PURPOSE EOS TABLES 7C SC REGION NO. XR 9 C ARGUMENTS ( INpUT ) MIO 10 c SESAME MATERIAL ID ( INpUT) 11 c 10T ( INPUT) DATA TYPE INDICATOR TBLS 12 c TABLE STORAGE ARRAY ( INPUT) POSITION IN ARRAY FOR STORING TABLES LCNT (IN/OUT) 13 c 14 c LU SESAME LIBRARY UNIT NO. ( INPUT) IFL (OUTpuT) 15 c ERROR FLAG 2=MATERIAL ALREAOY LOAOED 16 C 17 c l=SUCCESSFUL LOAOING 18 C O=DATA NOT FOUND LT.O FOR - THE NO. OF EXTRA WOROS 19 c NEEDEO FOR LOADING 20 c ATOMIC CHARGE,CHARGE**2,AN0 MASS ZB 21 c (OUTpUT) ZB(l)=Z 22 c ZB(2)=Z**2 23 C 24 C ZB(3)=A 25 C MBAR*CCIGM UNITS - ENERGY 26 C REMARKS OEGREES KELVIN TEMP 27 C GRAMS/CC DENSITY 28 C PRESSURE MBAR 29 C 30 c THIS ROUTINE WAS ORIGINALLY NAMED GETINV BEFORE THE 31 c MODIFICATIONS WERE MADE SO IT WOULO INTERFACE WITH EOSMOD 32 C 33 c MATCHKX,TABRANX ,INV301X 34 C EXTERNALS 35 c 36 C PROGRAMMER d.ABDALLAH.dR. 37 c 13 dUNE 1979 38 C DATE 39 c . - --- - -- - ----------- --- - --- - --- . ------------- --------40 c-4+ c 42 LEVEL 2,TBLS COMMON/S2DIRX/LCMX ,NRS,LCFW(10. 3) 43 44 DIMENSION ZB(3).TBLS(l) 45 c 48 C OBTAIN THE UNIT CONVERSION FACTORS FROM THE EOSMOD ROUTINES 47 COMMON/EOSCCE/TFACE.RFACE .PFACE.EFACE. KREPE 48 C 49 CALL MATCHKX(MID,NRS.LCFW( l.IOT) ,TBLS(l),IFL) IF(IFL.EQ.0) GO TO 10 50 LCFW(IR.IDT)=IFL 51 IFL=2 52 RETURN 53 NL=LcMx-LcNT1 54 10 FETCH EOS TABLES 55C. 56 CALL TABRANX(MID,201 ..LU.TBLS(LCNT+2) ,NL,IFL) IF(IFL.LE.0) RETURN 57 58 zB(t)=TBLs(LcNT+2) ZB(2)=ZB(1)*ZB(1) 59 60 ZB(3)=TBLS(LCNT+3) TBLS(LCNT+l )=TBLS(LCNT+4) 61 62 CALL TABRANX(MID,301 ..LU.TBLS(LCNT+2) .NL,IFL)

67

63 64 65 C 66 67 68 69 70 c 71C.. 72 73 c 74 75 c 76 77 c 78 79 80 81 20 82 c 83 84 85 86 30 87 C 88C.. 89 C 90C.. 91C.. 92 C 93 94 95 96 97 40 98 99 100C.. 101 102 103 104 105 106 107 50 108 C . 109 110 111 112 113

68

IF(IFL.LE.0) RETURN TBLS(LC?JT)=FLOAT(MIO) CALL PERTCB(IR,TBLS(LCNT) NR=TBLS(LCNT+2 ) NT=TBLS(LCNT+3 ) NRT=NR*NT LOCP=LCNT+3+NR+NT CONVERT TO OESIRED 00 30 1=1.NT

.ZB(

1).ZB(3))

UNITS

TBLS(3+I+LCNT+NR)=TFACE*TBLS(3+I+LCNT+NR) DO 30

d=l,NR

IF(I.GT.1) GO TO 20 TBLs(3+d+LcNT)=TBLs(3+d+LcNT)*RFAcE RHO=TBLS(3+LI+LCNT) LOCP=LOCP+I TBLS(LOCP)=PFACE*TBLS(LOCP ) TBLS(LOCP+NRT)=EFACE*TBLS(’LOCP+NRT ) IF (KREPE.EO.1) T6Ls(L0cP+NRT)=T13Ls(LocP+NRT)*RH0 CONTINUE WINDOW TABLES HERE AND RESET VALUES OF NR NT AND IS NEEOEO NRT IF WINDOWING INVERT TABLES THE TABLES CHECK TO SEE IF THERE IS ENOUGH ROOM TO INVERT NINV IS THE LAST LOCATION NEEDED FOR TABLE INVERSION NINV=LCNT+3+2*NRT+2*NR+4*NT IF(NINV.LE.LCMX) GO TO 40 IFL=LCMX-NINV RETURN RO=TBLS(LCNT+l ) LOC=LCNT+2 CALL INV301X(TBLS.LOC,RO,LOS) 00UBLE PACK OEPENOENT VARIABLES LOCP=LCNT+3+NR+NT+NR 00 50 1=1.NRT LOCP=LOCP+l PTEM=T8LS(LOCP ) TTEM=TBLS(LOCP+NRT) T8LS(LOCP)=OPACKX(PTEM. TTEM) CONTINUE . WRAP UP LCFW(IR.IDT)=LCNT LCNT=LCNT+2+LOS-NRT IFL=l RETURN ENO

. SUBROUTINE GETRPOX(IR,MID. IDT.T8LS.LCNT,LU. IFL) 1 2 c--------------------------------------------------------------------3C GETRPOX(IR.MID, IOT,TBLS.LCNT.LU. IFL) 4 C SUBROUTINE 5C TO LOAO THE ROSSELAND/PLANCK OPACITY TABLE 6 C PURPOSE 7C 8 C ARGUMENTS IR REGION NO. ( I NpUT ) MIO ( INPUT) 9C SESAME MATERIAL IO IDT ( INPUT) 10 c OATA TYPE INOICATOR TBLS (OUTPUT) ARRAY FOR TABLE STORAGE 11 c LCNT POSITION IN ARRAY FOR 12 c (1/0) 13 c STORING TABLES LU ( INPUT) 14 c SESAME LIBRARY UNIT NO. fs c IFL (OuTPuT) ERRoR FLAG 16 C =1 FOR SUCCESSFUL LOADING =0 FOR DATA NOT FOUND 17 c IB C =-NO. OF EXTRA WOROS NEEOEO 19 c TO STORE OATA 20 c THE ROSSELAND/P~ANCK TABLE IS 00UBLE PACKEO ON DISK. 21 C REMARKS THIS VERSION OF GtLTRPOX IS SPECIALLY DESIGNEO FOR 22 c USE IN HYOROX. IF NECESSARY. MODIFICATIONS 23 C MAY BE MAOE HERE FOR ADAPTATION TO OTHER COOES. 24 C 25 C THIS ROUTINE WAS ORIGINALLY NAMED GETRPO BEFORE THE 26 C WITH EOSMOO MODIFICATIONS WERE MADE SO IT WOULD INTERFACE 27 C 28 C MATCHKX,TABRANX ,DPACKX 29 C EXTERNALS COMMON/EOSCCO/ FROM THE EOSMOO PACKAC= 30 c 31 c d.ABOALLAH,dR. 32 C PROGRAMMER 33 c 34 C MOOIFIEO BY M. KLEIN, GROUP T-7, 11 OECEMBER t979 35 c 24 APRIL 1979 36 C OATE 37 c 38 C---------------------------------------------------------------------LEVEL 2,TBLS 39 OIMENSION TBLS(l) 40 COMMON/S201RX/LCMX ,NRS,LCFW(10, 3 41 42 C THE COMMON BLOCK EOSCCO PROVIDES 43 c THE UNIT CONVERSION FACTORS FROM THE EOSMOO PACKAGE 44 c COMMON/EOSCCO/ TFACO.RFACO.OFACO KREPO 45 46 C IN G/CC.OPACITY IN CM**2/G UNITS. .TEMP. .DEG.K.RHO 47 c CHECK TO SEE IF TABLE HAS BEEN LOAOEO ALREAOY 48C. CALL MATCHKX(MID,NRS.LCFW( l,IOT) .TBLS(l),IFL) 49 lF(IFL.EO.0) GO TO 10 50 LCFW(IR.IOT)=IFL 51 IFL=2 52 RETURN 53 NLEF”f=LCMX-LCNT1 54 10 FETCH THE 502 TABLE 55C. CALL TABRANX(M10,502. ,LU,TBLS(LCNT+2) .NLEFT.IFL) 56 IF(IFL.LE.0) RETURN 57 CONVERT TO DESIRED UNITS 5ac. LINES THROUGH STATEMENT 60 MAY BE DELETEO IF NO CONVERSION IS 59C. REQUIREO 60C. NR=TBLS(LCNT+2) 61 NT=TBLS(LCNT+3) 62

69

63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 60 81 82 83

70

50

60

IPT=LCNT+3+NR+NT DO 60 K=l.NT TBLS(LCNT+3+NR+K)=TBLS(LCNT+3+NR+K) DO 60 d=l,NR IF(K.GT.1) GO TO 50 TBLs(LcNT+3+d)=T6Ls(LcNT+3+d)+RFAco IPT=IPT+l ROP=TBLS(IPT) POP=SHIFT(ROP,30) ROP=ROP+TBLS(LCNT+3+J)*KREPO+OFAC0 POP=POP+TBLs( LCNT+3+U)*UREPO+OFAC0 ROP=DPACKX(ROP .POP) TBLS(IPT)=ROP CONTINUE TBLS(LCNT)=FLOAT(MIO) TBLS(LCNT+l )=FLOAT( IDT) LCFW(IR,IDT)=LCNT LCNT=LCNT+IFL+2 IFL=l RETURN END

+ TFAcO

.

1 SUBROUTINE INBUFRX(Lu,2,Nw. IAO,IFLG) 2 c---------------------------------------------------------------------3C 4 C SUBROUTINE INBUFRX(LU,Z.NW. IAC),IFLG) 5C RANOOM 1/0 READ 6 C PURPOSE 7C 8 C ARGUMENTS LU (INpuT) UNIT NO. 9C z (OUTPUT) STORAGE AREA WHERE DAT IS RETURNED NW 10 c (INPuT) No. OF WOROS TO BE REAO 11 c IAD (INPuT) sTARTING DISK ADDRESS OF DATA 12 c IFLG (OUTPUT) O=NORMAL l=EOF ENCOUNTERED 13 c 14 c -l=ERROR 15 c REMARKS 16 C NONE 17 c RDISK 18 C EXTERNALS 19 c 20 C PROGRAMMER d.ABOALLAH.dR. 21 c 1 MAY 1979 22 C O,ATE 23 C 24 C---------------------------------------------------------------------25 LEVEL 2,2 26 CALL ROISK(LU,Z.NW. IAO) 27 :##T(LU)) 10.20.30 28 10 RETURN 29 30 20 IFLG=O RETURN 31 32 30 IFLG=-1 33 RETURN 34 END

71

1 SUBROUTINE 2 c--------------------3C 4 C SUBROUTINE: 5C 6 C PURPOSE: 7C 6 C ARGUMENTS: 9C 10 c 11 c 12 c 13 c 14 C REMARKS: 15 c 16 C 17 c 16 C 19 c 20 c 21 C EXTERNALS: 22 c 23 C PROGRAMMER: 24 C 25 C DATE: 26 C

;i3 29 30 31 32 33 34 35 36 37 38 39 40 4f 42 43 44 45 46 47 46 49 50 51 52 53 54 55 56 57 58 59 60 61 62

72

1

2

3

INV301X(DSTR,LOC.RO.LDS) --------------------------”------”----”--INV301X(DSTR,LOC,R0.LDS) INVERT

DATA

STRING

DSTR Loc

(INpuT) (INpuT)

-

RO LDS

( INPUT) (ouTPuT)

-

OF TYPE

301

TO TYPE

302.

TABLE STORAGE ARRAY STARTING LOCATION OF DATA STRING IN DSTR APPROXIMATE OENSITY OF SOLID LENGTH OF NEW DATA STRING

DSTR CAN BE DECLAREO LCM ON THE CDC 7600. THIS ROUTINE OVERWRITES LOCATIONS FOLLOWING THE IT EXPANDS THE STRING BY NR WORDS, DATA STRING. WHERE NR IS THE NUMBER OF OENSITIES. IT ALSO USES 3*NT WOROS AS TEMPORARY STORAGE. WHERE NT IS THE NUMBER OF TEMPERATURES. ISRCHKX, G.

1.

RATFNIX

KERLEY,

4 DCTOBER

T-4.

1977

LEVEL 2,DSTR DIMENSION OSTR(l) COMMON/INTORDX/ IFN COMMON/RTBLKIX/LOCX.NR,LOCV ,KY.dX.NT,INT.ET, INT=I IFNS=IFN IFN=O NR = DSTR(LOC) NT = DSTR(LOC+l) LOCT = 2+NR+LOC LCEC = LDCT+NT LOCP = LCEC+NR LDCE = LOCP+NR*NT LOCN = LOCE+NR*NT IMAX = 2*NR*NT DO 1 I=l,IMAX DSTR(LDCN-1) = DSTR(LOCN-I-NR) DO 2 I=I,NR dd = LOCE+I-1 o = 1.E-i2*ABs(DsTR(AJ)) DSTR(LCEC+I-1) = DSTR(&J) DSTR(dd) = O. DO 2 d=20NT &J = &J+NR

Z(2)

DSTR(dd) = DSTR(&J)-DSTR(LCEC+I-1) IF(DSTR(&J)-OSTR(dd-NR). LT.C)) DSTR(Jd)=OSTR(&J-NR)+O CONTINUE I = ISRCHKX(R0,DSTR(LOC+3),NR-2, l,o)+i 00 3 d=l,NT DSTR(LOCN+IJ-1) = DSTR(LOCT+UJ-1) DSTR(LOCT+U-1) = OSTR(LDCE+I-l+NR*(Ul)) DO 5 I=I,NR LOCX = LOCE+I-1 DO 4 d=l.NT ET = OSTR(LOCT+d-1)

63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78

4

5

UX = ISRCHKX(ET.DSTR(LOCX+NR) ,NT-2,NR,0)+1 LOCY = LOCP+I-1 KY = NR CALL RATFNIX OSTR(LOCN+NT+d-1) = Z(1) LOCY = LOCN KY=l CALL RATFNIX OSTR(LOCN+NT+NT+d-t) = Z(t) 00 5 d=l,NT OSTR(LOCP+I-l+NR*(d-1)) = OSTR(LOCN+NT+d-1) OSTR(LOCX+NR*(d1)) = OSTR(LOCN+NT+NT+d-1) LOS = LOCN-LOC IFN=IFNS RETURN ENO

73

1 FUNCTION ISRCHKX(X.TBLS.N.K,NSFT) 2 c-------------------------------------------------------------3C ISRCHKX(X,T8LS ,N,K.NSFT) 4 C FUNCTION: 5C TABLE VALUES FIMI I~EX OF X IN AN ARRAY TBLS. 6 C PURPOSE: NEED NOT BE CONTIGUOUS ANO CAN BE IN EITHER 7C ASCENDING OR DESCENDING ORDER. 8C 9C ( INPUT) - VALUE TO BE LOCATED 10 C ARGUMENTS: X - TABLE TO BE SEARCHEO 11 c TBLS (INPUT) N 12 c (INPuT) - NUM8ER OF VALUES TO BE SEARCHEO (INPUT) - SPACING K BETWEEN VALUES IN TABLE 13 c THE VALUE OF THE FUNCTION = INOEX I, WHERE 14 c T8Ls(1+K*(It)).LE.X.LT.TBLS( l+K*I). oR 15 c TBLS(l+K*(I-l )).GE.X.GT.T8LS( l+K*I). oR 16 C 17 c 1=0 OR I-N IF X IS OUTSIOE RANGE OF TABLE. - NO. OF BITS THE TABLE VALUES ARE 18 C NSFT (INPuT) TO BE SHIFTEO 19 c 20 c TBLS CAN BE OECLAREO LCM ON THE COC 7600. 21 C REMARKS: 22 c 23 C EXTERNALS: SHIFT. 24 C 25 C PROGRAMMER: G. 1. KERLEY. T-~:, U.ABOA(-LAH,dR. 26 C 19 NOVEMBER 1976.REVISEO 6 AJLY 1979 27 C DATE: 28 C 29 C-----------------------‘------------------------------------30 LEVEL 2.TBLS 31 DIMENSION TBLS(l) ISRCHKX = O 32 d = N+l 33 KI = 1-K 34 35 S1=TBLS(l) S1=SHIFT(S1.NSFT) 36 37 S=TBLS(KI+K*N) 38 S=SHIFT(S.NSFT) 39 S=s-sl 40 1 IF(d-ISRCHKX.EQ.1) RETURN ~p . .5*(~+IsRcl+Kx) 41 42 43 44 45 46 47 48 49

2

S1=TBLS(KI+K*LJP) S1=SHIFT(S1.NSFT) IF(s*(x-Sl ).LT.O.O) ISRCHKX = dP GO TO 1 8J=dP GO TO 1 ENO

GO TO 2



74

.

1 SUBROUTINE MATCHKX(MID,NRS,LOC,TBLS, IFLG) 2 c-------------------------------------------------------------------3C 4 C SUBROUTINE MATCHKX(MIDONRS.LOC,TSLS, XFLG) 5C HAS BEEN 6 C PURPOSE TO CHECK IF A MATERIAL PREVIOUSLY LOAOED 7C 8C ARGUMENTS 9C MID (INPUT) SESAME MATERIAL ID NRS 10 c NUMBER DF REGIONS ( I NpUT ) 11 c LOC (INpuT) ARRAY OF FIRST WORD LOCATIONS 12 c IN TABLE STORAGE ARRAY FOR 13 c FOR EACH REGION 14 c TBLS TABLE STORAGE ARRAY ( INPUT) 15 c IFLG (ouTpUT) =0 MATERIAL NOT PREVIOUSLY I.OAOED 16 C GT.O LOCATION OF TABLE IF LOADEO # 17 c ALREADY 18 C REMARKS NONE 19 c 20 c EXTERNALS NONE 21 c 22 c PROGRAMMER d.ASDALLAH,dR. 23 C 24 C DATE 25 C 26 APRIL 1979 26 C 27 C--------------------------------------------------------------------28 LEVEL 2,TBLS 29 DIMENSION LOC(l).TBLS(l) IFLG=O 30 31 00 100 d=l.NRS 32 LC=LOC(d) 33 IF(LC.LE.0) GO TO 100 34 ITEST=TBLS(LC) 35 IF(MID.EO.ITEST) GO TO 200 36 100 CONTINUE 37 RETURN 38 200 IFLG=LC 39 RETURN 40 ENO

75

1 SUBROUTINE 2 c-------------------------3C 4 C SUBROUTINE: 5C 6 C PURPOSE: 7C 8C 9C 10 c 11 c 12 c 13 c 14 c 15 c *6 C 17 c 18 C 19 c 20 c 21 c 22 c 23 C 24 C 25 C 26 C 27 C 28 c 29 C 30 c 31 c 32 C REMARKS: 33 c 34 c 35 c

RATFNIX -------------------------

------------

RATFNIX INTERPOLATE DERIVATIVE

FOR A FUNCTION Y(X) FROM TABLES LOCATED

AND ITS

IN ARRAY T8LS.

THE ROUTINE ALSO REQUIRES COMMON BLOCKS, COMMON/RTBLKIX/LOCX,KX,LOCY ,KYOI.N,IP.X.y(2) LOCX = LOCATION OF X VECTOR KX = SPACING OF X VECTOR LOCY = LOCATION OF Y VECTOR KY = SPACING OF Y VECTOR I = INOEX OF X AND Y VECTORS N = LENGTH OF X ANO Y VECTORS x (INPuT) - INDEPENDENT VARIABLE Y (ouTPUT) - VECTOR OF LENGTH 2. WHERE Y(l) = VALUE OF FUNCTION Y(2) = DERIVATIVE OF FUNCTION (INPUT) 1P - BRANCH PARAMETER IP.EQ.O. USE INPUT COEFFICIENTS IN YY IP.NE.O. CALCULATE YY VECTOR FIRST COMMON/INTOROX/ IFN IFN (INPUT) ~ INTERPOLATION TYPE IFN.NE.1, RATIONAL FUNCTION IFN.EO.1. LINEAR COMMON/SESOATX/TBLS - TABLE STORAGE ARRAY TBLS (INPUT)

UNLESS LINEAR FORM IS SPECIFIED, ROUTINE USES RATIONAL FUNCTION METHOD WITH QUADRATIC ESTIMATE OF DERIVATIVES AT THE MESH POINTS. TBLS CAN BE DECLARED LCM ON THE CDC 7800.

36 C 37 C 38 39 40 41 42 43 44 45 48 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62

76

NONE, BUT A SEARCH ROUTINE MUST BE CALLEO EXTERNALS: FIRST. TO COMPUTE INDEX I. C c C PROGRAMMER: G. I. KERLEY, T-4. c 18 UULY 1979 C DATE: c c-------------------------------------------------------” -----LEVEL 2,TBLS DIMENSION YY(6) COMMON/SESOATX/TBLS( 1000D) COMMON/INTOROX/ IFN COMMON/RTBLKIX/LOCX.KX,LOCv .Ky.IoN.Ip.x.y(2) IF(IFN.EO.1) GO TO 6 IF(IP.EO.0) GD TO 3 C CALCULATE COEFFICIENTS FOR RATIONAL FUNCTION INTERPOLATION IX = LDCX+KX*(I-l) IV = LOCY+KY*(I-1) YY(3) = T13LS(IX) YY(4) = TBLS(IX+KX)-YY(3) YY(l) = TBLS(IY) YY(2) = (TBLS(IY+KY)-YY(l))/yy(4) IF(I.EO.N-1) GO TO 1 SP = (T6Ls(IY+Ky+Ky)-T6LS(Iy+Ky ))/(Tf3Ls(Ix+Kx+Kx)-TBLs(Ix+Kx) YY(6) = (sP-YY(2))/(TBLS(IX+Kx+Kx)-yy(3) ) IF(I.GT.1) GO TO 1

)

.

63 64 65 66 67 66 69 70 71 72 73 74 75 76 77 76 79 60 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95

IF(YY(2)*(YY(2)-VY(4)*YY(6) ).LE.O.) YY(6)=YY(2)/YY(4) YY(5) = YV(6) GO TO 2 DM = YY(3)-TBLS(lX-KX) 1 sM = (yy(l)-Tf3Ls(IY-KY))/DM yY(5) = (YY(2)-sM)/(YY(4)+DM) IF(I.EQ.N-1) YY(6)=YY(5) IF(I.GT.2) GO TO 2 IF(SM*(SM-DM*YY(5)) .LE.O. ) YY(5)=(YY(2)-SM-SM)/YY(4) IF(YY(6).NE.O.) YY(!3)=YY(5)/YY(6) 2 C EVALUATE RATIONAL FUNCTION FROM PRECALCULATE COEFFICIENTS Q = X-YY(3) 3 R = yY(4)-o IF(R.NE.O. Msl.

)

60

TO 4

GOT05 w = 1.-l./(+ABs(YY(5)*o*R)))) F = YY(6)*(W+YY(5)*( i.-W)) Y(1) = YY(1)+O*(YY(2)-R*F) Y(2) = YY(2)+(0-R)*F+YY(4)*W*(F-YY(6) ) RETURN C CALCULATE COEFFICIENTS FOR LINEAR INTERPOLATION 6 IF(IP.EO.0) GO TO 7 IX = LOCX+KX*(I-1) IY = LOCY+KY*(I-1) YY(3) = T13LS(IX) YY(l) = TBLS(IY) YY(2) = (TBLS(IY+KY)-YY(l))/(TBLS( IX+KX)-YY(3)) C CALCULATE LINEAR ESTIMATE FROM PRECALCULATED COEFFICIENTS 7 Y(1) = YY(1)+YY(2)*(X-YY(3)) Y(2) = YY(2) RETURN ENO 4 5

77

1 SUBROUTINE TABRANX(MID,TID,LIB,A,LEN, IFLAG) 2 c----------------------------------------------------------.3 c TABRANX(MIO,TID,L?B.A.LEN, IFLAG) 4 C SUBROUTINE

-----------

TO FETCH A GIVEN TABLE FOR A GIVEN MATERIAL g g PURPOSE FRU4 A SESAME II LIBRARY 7C 8C MIO MATERIAL IO ( INPUT) 9 C ARGUMENTS IF 0.0 MATERIAL INOEX TID TABLE NO.10 c ( INpUT ) IS RETURNEO 11 c LIBRARY FILE UNIT NO. LIB ( INPUT) 12 c A (OUTPUT) ARRAY FOR TABLE SToRAGE 13 c NO. OF WORDS IN A AVAILABLE ( INPUT) LEN 14 c lFLAG =0 IF TABLE COULD NOT BE LOCATEO 15 c (OUTpuT) GT. O-NO. OF WORDS IN TABLE RETURNEO 16 C LT. O - NO. OF ADDITIONAL 17 c WORDS NEEDED 16 C 19 c A RANDOM 1/0 TECHNIQUE IS USEO TO LOCATE AND LOAO 20 C REMARKS THE SPECIFIED TABLE FROM THE SESAME 11 LIBRARY. 21 c THE MATERIAL INDEX ANO ITS ADDRESS ARE TO SAVED 22 c TO HASTEN THE FETCHING OF ANOTHER TABLE FOR THE SAME 23 C IN SUBSEQUENT CALLS TO MATERIAL ANO LIBRARY FILE 24 C TABFCH. 25 C 26 C INBUFRX 27 C EXTERNALS 28 c d.ABOALLAH. ,dR. 29 C PROGRAMMER 30 c 24 APRIL 1979 31 C OATE 32 C 33 c--------------------------------------------------------------------LEVEL 2,A 34 DIMENSION A(1),HINOEX(50) 35 DATA HINOEX(l)/O.O/ 36 OATA LIBLST/O/ 37 IFLAG=O 38 FIND NO. MATERIALS ON LIBRARY 39C.. IF(LIB.NE.LIBLST) GO TO 50 40 IOLAST=HINDEX( 1) 41 IF(IOLAST.NE.MIO) GO TO 50 42 IF(TID.NE.O.0) GO TO 230 43 NW=HINOEX(5) 44 NW=NW+NW+5 45 IF(LEN.LT.NW) GO TO 999 46 00 30 0=1.NW 47 A(d)=HINOEX(U) 4B CONTINUE 49 30 IFLAG=NW 50 RETURN 61 LIBLST=LIB 52 50 NW= 1 53 IF(LEN.LT.NW)”GO TO 999 54 CALL INBUFRX(LIB.A, l.O,IER) 55 N=A(l) 56 NW=N+N+N 57 IF(LEN.LT.NW) GO TO 999 58 CALL INBUFRX(L113,A,NW,3, 1ER) 59 FINO AODRESS OF MATERIAL FILE 60C.. 00 100 d=l.N 61 ITEST=A(LJ) 62

78

I

.

.

63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 70 79 60 81 82 83 84 85 86 87 88 89 90 91 92 93

100 C.. 200

210 230

300 400 C.. 500 999

IF(ITEST.NE.MID) GO TO 100 NW=A(d+N) IAD=A(d+N+N) GO TO 2~ CONTINUE RETURN GET MATERIAL INOEX IF(LEN.LT.NW) GO TO 999 IAOX=IAO CALL INBUFRX(LIC3.A,NW, IAOX,IER) 00 210 U=I,NW HINDEX(d)=A(d) CONTINUE IF(TID.EO.O.0) GO TO 500 N=HINDEX(5) 00 300 U=l,N IF(TID.NE.HINDEX(5+d)) GO TO 300 Nw=HINc)Ex(5+d+N) IAD=HINOEX(5+U+N+N) IAO=IADX+IAO GO TO 400 CONTINUE RETURN IF(LEN.LT.NW) GO TO 999 READ REOUESTEO TABLE CALL INBUFRX(LIB,A.NW, IAD,IER) IFLAG=NW RETURN IFLAG=LEN-NW RETURN ENO

79

SUBROUTINE T4DATIX ; c-------------------------------------------------------------3C 4C T 4DAT IX SUBROUTINE: SC 6C PURPOSE: SEARCH/INTERPOLATE FOR PRESSURE AND TEMPERATURE AS FUNCTIONS OF REGION. OENSITY ANO ENERGY. 7C USING PACKED SESAME 2 OATA STRING OF TYPE 302 8C 9C 10 c COMMON/SESINX/IR,IOT,R.E ,IBR.IFL COMMDN/SESDUTX/P( 3),T(3) 19 c - MATERIAL REGION NUMBER 12 c IR ( INPUT) - OATA TYPE INOICATOR 13 c IoT (INpuT) 14 c R ( INPUT) - OENSITY - INTERNAL ENERGY 15 c ~,T (%~~; - PRESSURE, TEMPERATURE VECTORS 16 C P(l),T(I) = PRESSURE ANO TEMPERATURE 17 c 18 C P(2),T(2) = OENSITY DERIVATIVES 19 c P(3),T(3) = ENERGY DERIVATIVES 20 c IBR (INpuT) - O=COMPUTE BOTH P ANO T l=COMPUTE P ONLY 21 c 2=COMPUTE T ONLY 22 c coMMoN/sEsDATx/T8Ls 23 C -,YABLE STORAGE ARRAY 24 C T6Ls (INPuT) 25 C AOAPTED FROM T-4 SESAME 2 ROUTINES S2EOSI AND REMARKS: 26 C LA302A . PRESSURE ANO TEMPERATURE ARE PACKEO. 27 C THE SEARCH INOICES AND INTERPOLATION CONSTANTS 28 C ARE SAVEO AND REUSED. IF POSSIBLE. 29 C 30 c ***** 31 c SYSTEM OEPENDENT FEATURE. THE CONSTANT NSFT ● ☛☛☛☛ 32 C IN STATEMENT 60 SHOULO 6E SET TO 1/2 THE BIT ● ☛☛☛☛ 33 c LENGTH. FOR A CDC 7600, NSFT = 30. 34 c 35 c RATFNIX (1-0 INTERPOLATION ROUTINE) EXTERNALS: T41NTPX (2-O INTERPOLATION ROUTINE) 36 C 37 c 38 C PROGRAMMER: G. I. KERLEY AND 8. I. BENNETT. T-4. 39 c d. ABOALLAH.dR. 40 c 41 c DATE : 2 AUGUST 1978 42 C 43 c------------------------------------------------------------44 LEVEL 2,T8LS 45 coMMoN/s201Rx/LcMx ,NRS,LCFW(10.3) 46 COMMON/RTBLKIX/LOCR,KX.LOCE ,KY. IRX.N,lSAME,RXI ,PX1(2) 47 COMMON/RTBLK2X/LOCX ,IX,NX,LOCY .IY,NY.LOCZ ,NZ,NSFT. 48 $ Rx2,ET,PX2(3),INT.IDS.ZZ(96) 49 COMMON/SESINX/IR, IOT,R,E.IBR. IFL 50 COMMON/SESOUTX/P( 3).T(3) 51 COMMDN/SESDATX/T8LS( 100DO) 52 DATA LOCLST,IP.IT/0,1,1/ IR 53 C LOC IS POINTER TO START OF DATA STRING FOR REGION LOC = LCFW(IR,IOT)+2 54 LINES OF COOE (THRU NZ=l) cAN 8E THE FOLLOWING 55C.. 56 C MOVED AFTER THE IF(LOC.EO.LOCLST) GO TO 5 57 c STATEMENT TO MAKE THE SUBROUTINE WICKER FOR CODES WHICH 58 C DO NOT ALSO USE TEMPERATURE BASED EOS TABLES. 59 NX = TBLS(LOC) NY = TBLS(LOC+l) 60 61 N=NX LOCR = LOC+2 62

80

-

63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 1 ~6 117 118 $19 120 121 122 123 124

KX=l LOCX LOCY LDCE Kysf

= LOCR = LOCX+NX = LOCY+NY

LOCZ = LOCE+NX NZ=l IS THE SAME AS LAST CALL C TEST TO SEE IF THE MATERIAL IF(LOC.EO.LOCLST) GO TO 5 C THE FOLLOWING OPERATIONS 00 NOT NEED TO BE REPEATEO C UNLESS A NEW REGION HAS BEEN ENTERED LOCLST=LOC IXLAST = O IYLAST = O LOCI = LOCX+NX/2-l LOCd = LOCY+NY/2-l LOCNX=LOCX+NX-2 LOCNY=LOCY+NY-2 C SEARCH FOR OENSITY INOEX 5 IF(R.LT.TBLS(LOCI)) GO TO 15 10 IF(R.LT.TBLS(LOCI+l)) GO,TO 20 IF(LOCI.EO.LOCNX) GO TO 20 LOCI=LOCI+l GO TO 10 t5 IF(LOCI.EQ.LOCX) GO TO 20 LOCI=LOCI-I IF(R.LT.TBLS(LOCI)) GO TO 15 20 IX=LOCI-LOCX+l C INTERPOLATE FOR ENERGY ON COLO CURVE. IF ISAME = O, OENSITY ROUTINE C INOEX IS THE SAME AS IN THE LAST CALL TO THIS IRX = IX ISAME = IABS(IX-IXLAST) RXI=R CALL RATFNIX ET = AMAX1(O. ,E-PX1(I)) OECOR = PX1(2) RX2=R C SEARCH FOR ENERGY INOEX IF(ET.LT.TBLS(LOCd)) GO TO 35 30 IF(ET.LT.TBLS(LOCd+l)) GO TO 40 IF(LOCd.EO.LOCNY) GO TO 40 LOCd=LOCd+l GO TO 30 35 IF(LDCU.EO.LOCY) GO TO 40 LDCd=LOCd-1 IF(ET.LT.TBLS(LOCU)) GO TO 35 40 IY=LOCd-LOCY+l C IF ISAME = O. OENSITY ANO TEMPERATURE INOICES ARE C THE SAME AS IN THE LAST CALL TO THIS ROUTINE ISAME = ISAME+IABS( IY-IYLAST) 1P = MINO(l.IP+ISAME) IT = MINO(l.IT+ISAME) IXLAST = IX IYLAST = IY IDS=(IOT-1)*32+1 IF(IBR.EO.2) GO TO 50 C PRESSURE CALCULATION NSFT = O INT=IP CALL T41NTPX P(1)=PX2(1) P(2)=PX2(2)-DECOR*PX2(3)

81

125 126 127 128 129 130 131 132 133 134 135 136 137 138

82

P(3)=PX2(3) 1P-O IF(IBR.EO.1) RETURN C TEMPERATURE CALCULATION NSFT = 30 50 INT=IT IDS=IDS+16 CALL T41NTPX T(1)=PX2(1) T(2)=PX2(2)-DECDR*PX2(3) T(3)=PX2(3)

IT=O RETURN END

.

.

.

1 SUBROUTINE T40ATX --------------------------., ---------------------2 c- -----3C 4 C SUBROUTINE : T40ATX 5C 6 C PURPOSE: SEARCH/INTERPOLATE FOR ATOMIC OATA AS FUNCTIONS OF REGION. OENSITY AND TEMPERATURE, 7C 8C USING PACKED SESAME 2 OATA STRING 9C 10 c COMMON/SESINX/IR. IOT,AR,AT.IBR.IFL 11 c IR - MATERIAL REGION NUMBER ( INpUT) 12 c IOT (INPUT) - OATA TYPE lNOICATOR 13 c AR (INpUT) - DENSITY AT 14 c ( INPUT) - TEMPERATURE ~5 c IBR (INPUT) - SPECIFIES VARIABLES REQUIRED’ IBR = O, BOTH VARIABLES 16 C 17 c HALF VARIABLE ONLY IBR = 1, FIRST 18 C IBR = 2, SECONO HALF VARIABLE ONLY 19 c IFL (NOT USED) 20 c COMMON/SESOUTX/P(3) .E(3) 21 c POE (ouTpuT) - VARIABLES OF FIRST AND SECOND HALF 22 c OF.PACKEO OATA STRING 23 C P(l)OE(l) = VALUE OF THE VARIABLES 24 C P(2),E(2) = OENSITY DERIVATIVES 25 C P(3).E(3) = TEMPERATURE DERIVATIVES 26 C ADAPTED FROM T-4 SESAME 2 ROUTINES S2EOS AND 27 C REMARKS: 28 C LA301A. TABLES OF 2 VARIABLES ARE DOUBLE PACKEO. 29 C THE SEARCH INOICES AND INTERPOLATION CONSTANTS IF POSSIBLE. 30 c ARE SAVEO AND REUSED, 31 c THE CONSTANT NSFT 32 C ● **** SYSTEM DEPENOENT FEATURE. ***** 33 c IN STATEMENT 60 SHOULD BE SET TO 1/2 THE BIT ● **** LENGTH. FOR A CDC 7600, NSFT = 30. 34 c 35 c 36 C EXTERNALS: T41NTpx (RATIoNAL FUNCTION AND BI LINEAR INTERPoLATION) 37 c INTERPOLATION COEFFICIENTS FROM A PREVIOUS 38 C CALL TO THE ROUTINE CAN BE REUSED. 39 c 40 C PROGRAMMER: G. I. KERLEY, T-4. .LJ.ABOALLAH,T-4 41 c 42 C DATE: 11 dJLY 1978,REVISED 27 APRIL 1979 43 c 44 c--------------------------------------------------------------45 LEVEL 2.TBLS 46 DIMENSION LOCLST(3) .IXLAST(3), IYLAST(3) , IPLAST(3) .IELAST(3) 47 1 48 coMMoN/s2DIRx/LcMx.NRs, LCFW(10,3) 49 COMMON/RTBLK2X/LOCX ,IX.NX.LOCY,IY,NY ,LOCZ,NZ.NSFT, 50 1 R.T,Z(3) .INT,IDS.ZZ(96) 51 COMMON/SESDATX/TBLS( 10000) 52 COMMON/SESINX/IR, IDT,AR,AT.IBR, IFL COMMON/SESOUTX/P( 3),E(3) 53 54 DATA IPLAST/3*0/ 55 OATA IELAST/3*1/ 56 DATA LOCLST/3*0/ 57 C LOC IS POINTER TO START OF DATA STRING FOR REGION IR LOC = LCFW(IR.IDT)+2 58 59 NZ=l 60 NX=T6LS(LOC) 61 NY=TBLS(LOC+l) 62 LOCX=LOC+2

83

63 64 65 66 :: 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 lt6 117 148 119 120 121 122 123 124

84

LOCY=LOCX+NX LOCZ=LOCY+NY LOCNX=LOCX+NX-2 LOCNY=LOCY+NY-2 IF(LOC.EO.LOCLST( KDT)) GO TO 2 LOCLST(IDT)=LUC Ix=Nx/2 IY=NY/2 IXLAST(lOT)=O IYLAST(IDT)=O GO TO 3 2 IX=IXLAST(IOT) IY=IYLAST(IDT) 3 R=AR T=AT C SEARCH FOR OENSITY INOEX 5 LOCI=LOCX+IX-I IF(R.LT.TBLS(LOCI)) GO TO 15 10 IF(R.LT.TBLS(LOCI+I)) GO TO 20 IF(LOCI.EO.LOCNX) GO TO 20 LOCI=LOCI+l GO TO 10 15 IF(LOCI.EO.LOCX) GO TO 20 LOCI=LOCI-1 IF(R.LT.TBLS(LOCI)) Go TD It5 IX=LOCI-LOCX+ 1 20 C SEARCH FOR TEMPERATURE INDEX LOCI=LOCY+IY-1 IF(T.LT.TBLS(LOCI)) Go To 35 30 IF(T.LT.T8LS(LOCI+1)) GO TO 40 IF(LOCI.EO.LOCNY) GO TO 40 LOCI=LOCI+l GO TO 30 35 IF(LOCI.EO.LOCY) GO TO 40 LOCI=LOCI-1 IF(T.LT.TBLS(LOCI)) GO TO 35 IY=LOCI-LOCY+l 40 C IF ISAME = O, OENSITY AND TEMPERATURE INOICES ARE C THE SAME AS IN THE LAST CALL TO THIS ROUTINE ISAME = IA8S(IX-IXLAST(IOT) )+IABS( IY-IYLAST(IOT)) IXLAST(IOT) = IX IYLAST(IDT) = IY IOS=(IDT-1)*32+$ IPLAST(IOT)=MINO( I,IPLAST(IDT)+ISAME) IELAST(IOT)=MINO( l, IELAST(IDT)+ISAME) IF(IBR.EO.2) GO TO 50 INT=IPLAST(IDT) NSFT=O CALL T41NTPX P(l)=z(l) P(2)=Z(2) P(3)=Z(3) IPLAST(IOT)=O IF(IBR.EO.1) RETURN 50 INT=IELAST(lDT) IOS=IDS+16 NSFT=30 CALL T41NTPX E(l)=Z(l) E(2)=Z(2) E(3)=Z(3) IELAST(IOT)=O

125 126

RETURN END

. I .

85

1 SUBROUTINE T41NTP,X 2 c------------------------------------------------------------3C T41NTPX SUBROUTINE: 4C 5C INTERPOLATE FOR A FUNCTION Z(X,Y) AND ITS PURPOSE: 6C DERIVATIVES FROM TA8LES LOCATEO IN ARRAY TBLS. 7C 8C THE ROUTINE REQUIRES COMMON BLOCKS, 9C COMMON/RTBLK2X/LOCX ,IX.NX.LOCY.IY ,NY.LOCZ.NZ,NSFT 10 c X.Y.Z(3). IPOIDS,ZZ 11 c flCX = LOCATION OF X VECTOR 12 c = INDEX OF X VECTOR 13 c = LENGTH OF X VECTOR NX 14 c ;~CY = LOCATION OF Y VECTOR 15 c = INDEX OF Y VECTOR 16 C NY = LENGTH OF Y VECTOR 17 c LOCZ = LOCATION OF Z(X.Y) ARRAY 18 C NZ = SPACING OF Z ARRAY 19 c NSFT = BIT SHIFT PARAMETER 20 c x.Y (INpuT) - INDEPENDENT VARIABLES 21 c z - VECTOR OF LENGTH 3. WHERE 22 c (OUTPUT) Z(1) = VALUE OF FUNCTION 23 C Z(2) = X DERIVATIVE OF FUNCTION 24 C Z(3) = Y DERIVATIVE OF FUNCTION 25 C 22 (IN/ouT) - COEFFICIENT VECTOR OF LEffiTH 16 26 C 1P - 8RANCH PARAMETER 27 C ( INPUT) IP.EO.0, USE INPUT COEFFICIENTS IN 22 28 C IP.NE.0, CALCULATE 22 VECTOR FIRST 29 c IDS (INPUT) - DISPLACEMENT INTO 22 FOR COEFFS. 30 c 31 c TO BE USED IFN. COMMON/INTORDX/ 32 C IFN (INPUT) - INTERPOLATION TYPE 33 c IFN.NE.1. RATIONAL FUNCTION 34 c 35 c IFN.EO.1, BILINEAR COMMON/SESOATX/TBLS 36 C TBLS IS THE TABLE STORAGE 4RRAY 37 c 38 C 39 c UNLESS BILINEAR FORM IS SPECIFIED, ROUTINE REMARKS: 40 c USES RATIONAL FUNCTION METHOD WITH QUAORATIC 41 c ESTIMATE OF DERIVATIVES AT THE MESH POINTS. 42 C 43 c TBLS CAN BE OECLAREO LCM ON THE CDC 7600. 44 c ***** THE Z-ARRAY CAN BE 45 c SYSTEM OEPENDENT FEATURE. ***** DOUBLE PACKED. PARAMETER NSFT SPECIFIES THE 46 C ● ☛☛☛☛ NUMBER OF BITS TO BE SHIFTEO WHEN UNPACKING THE 47 c ● ☛☛☛☛ RIGHT HALF OF THE WORD. THIS ROUTINE USES 48 c ☛☛☛☛☛ THE LASL SHIFT FUNCTION 49 c 50 c NONE, BUT A SEARCH ROUTINE MUST BE CALLED 51 c EXTERNALS: FIRST. TO COMPUTE INOICES IX ANO IY. 52 C 53 c PROGRAMMER: G. I. KERLEY, T-4.. d. ABOALLAH.T-4. 54 c 95 c DATE : 56 C 01 AUG 1979 57 c 58 C--------------------------------------------------------------59 LEVEL 2,TBLS COMMON/RTBLK2X/LOCX, IX,NX.LOCY,IY.NY. LOCZ.NZ,NSFT.X,Y ,Z[3), 60 61 S IP,IDS,ZZ(96) COMMON/lNTORDX/ IFN 62

86

,

.

.

63 COMMON/SESOATX/TBLS( lWOO) FOR” RATIONAL 64 C CALCULATE COEFFICIENTS 65 IF(IFN.EO. f) GO 70 13 IF(IP.EO.0) GO TO 8 66 67 I = LOCX+IX-1 68 12 = LOCZ+NZ*( IX-l+NX*(IY-1)) KZ = NZ 69 70 18R = IX NBR = NX-IX 71 72 ZZ(IOS+4) = TBLS(I) 73 DO 7 K=I,4 KI=IDS+K-1 74 75 IF(K.LT.4) GO TO 1 76 12 = IZ+NZ 77 GO TO 4 78 1 IF(K.LT.3) GO TO 2 79 22(10s+6) = o 80 I = LOCY+IY-1 KZ = KZ*NX 81 82 12 = IZ-KZ 83 IBR = lY NBR = NY-IY 84 85 22(10S+5) = TBLS(I) 86 GO TO 3 87 2 IF(K.LT.2) GO TO 3 88 12 = lZ+NX*NZ 89 GO TO 4 D = TBLS(I+l)-TBLS(I) 90 3 91 4 ZZ(KI)=SHIFT(TBLS(IZ),NSFT) 92 S=SHIFT(T6LS( IZ+KZ).NSFT) 93 s = (s-z2(KI))/o 94 IF(NBR.EO.1) GO TO 5 95 SP=SHIFT(TBLS( IZ+KZ+KZ).NSFT ) 96 sp = (5P-D*5-2z(KI))/(TBLs(I+2)-TBL5( G2 = (SP-S)/(TBLS(I+2)-TBLS(I) ) 97 98 IF(IBR.GT.1) GO TO 5 IF(S*(S-D*G2) .LE.O.) G2=S/O 99 100 GI = G2 101 102 103 104 i 05 106 107 108 109 110 111 112 113 li4 115 116 117 118 119 120 121 122 123 124

5

6 7

C 8

GO TO 6 DM = TBLS(I)-TBLS(I-1) SM=SHIFT(TBLS( IZ-KZ).NSFT) SM = (ZZ(KI)-SM)/DM Gt = (s-sM)/(D+DM) IF(NBR.EQ.1) G2=G1 IF(IBR.GT.2) GO TO 6 IF(SM*(SM-DM*GI ).LE.O.) IF(G2.NE.0. ) Gl=G1/G2 ZZ(KI+8) = G1 ZZ(KI+12) = G2 ZZ(IOS+7)=D ZZ8=ZZ(IDS+7) 227=22(10S+6) ZZ(IDS+2)=(ZZ( IOS+1)-ZZ( ZZ(IDS+1)=(ZZ(IDS+3)-ZZ(IDS) ZZ(IOS+3)=(S-ZZ(IOS+2))/ZZ7 ZZ(IOS+t2)=ZZ(IDS+12)/ZZ8 ZZ(IDS+13)=ZZ(IDS+i3)/ZZ8 zz(IDs+14)=zz(IDs+14)/zz7 zz(IDs+15)=zz(IDs+15)/zz7 EVALUATE RATIONAL FUNCTION ox = X-ZZ(IDS+4) RX = ZZ(IOS+6)-OX

FUNCTION

INTERPOLATION

1+1))

Gl=(S-SM-SM)/D

IDS))/ZZ8 )/227

FROM PRECALCULATED

COEFFICIENTS

87

QY = Y-ZZ(IDS+5) 125 126 RY = ZZ(IDS+7)-OY 127 IF(RX.NE.O. ) GO TO 9 W1 = 1. 128 W2 = 1. 129 GO TO 10 130 W1 = 1.-l./(+ABS(ZZ(IOS+8)*OXORX)X) ) 131 9 )) W2 = l.- 1./(l.+ABs(zz(IDs+9)*ox/Rx 132 F1 = ZZ(IOS+12)*(W1+ZZ( IDS+8)*( l.-WI)) 133 10 134 F2 = ZZ(IOS+13)*(W2+ZZ(IDS+9)*( f.-W2)) 135 Z(2) = ZZ(IDS+6)*(RY*(F1-ZZ(IOS+ 12))*W1+OY*(F2-ZZ(IDS+13) 136 G1 = RY*FI+OY*F2 IF(RY.NE.0) GO TO 11 137 W1 = 1. 138 W2 = 1. 139 140 GO TO 12 W1 = l.-l./(+ABs(ZZ(IDS+lO)*OyORY)Y) ) 141 11 )) W2 = l.- l./(l.+ABS(ZZ(IDS+ll)*OY/RY 142 F3 = ZZ(IDi+14)*(Wl+Z2(IDS+10)*(”l .-W1)) 143 12 F4 = ZZ(iOS+15)*(W2+ZZ( IDS+l 1)*(1.-W2)) 144 145 z(3) = ZZ(IDS+7)*(RX*(F3-Z~(IDS+14 ))*W1+OX*(F4-ZZ(IOS+15) G2 = RX*F3+QX*F4 146 147 ZZ2=ZZ(IDS+1) ZZ3=ZZ(IDS+2) 148 f49 ZZ4=ZZ(IDS+3) 150 Z(1) = ZZ(IDS)+(ZZ2+ZZ4*QY-RX*G1 )*ox+(2z3-RY*G2)*QY z(2) = Z(2)+ZZ2+OY*(ZZ4+RY*(F3-F4 ))+(ox-Rx)*G1 151 z(3) = Z(3)+ZZ3+OX*(ZZ4+RX*(F1 -F2))+(QY-RY)*G2 152 153 RETURN 154 C CALCULATE COEFFICIENTS FOR BILINEAR INTERPOLATION 155 13 IF(IP.EO.0) GO TO 14 156 I=LOCX+IX 157 INO=IOS+4 ZZ(IND)=TBLS(I-l) 158 159 DX=TBLS(I)-ZZ(IND) 160 lJ=LocY+IY 161 IND=IOS+5 162 ZZ(INO)=TBLS(U-1) 163 OY=TBLS(d)-ZZ(IND) ~64 IZ=LOCZ+NZ*( IX-l+NX*(IY-1 )) 165 ZZ(IOS)=SHIFT(TBLS(IZ).NSFT ) 166 INO=IOS+l 167 ZZ(INO]=SHIFT(TBLS(IZ+NZ) .NSFT) 168 ZZ(INO)=(ZZ(IND)-ZZ(IOS))/DX 169 IZ=IZ+NZ*NX 170 IND=IDS+2 171 ZZ(IND)=SHIFT(TBLS(IZ).NSFT ) 172 ZZ(INO)=(ZZ(IND)-ZZ(IDS))/DY 173 INO=IOS+3 174 ZZ(INO)=SHIFT(TBLS(IZ+NZ) ,NSFT) 175 ZZ(INO)=(ZZ( IND)-ZZ(IDS) -ZZ(IOS+l)*DX-ZZ(ID5+2)*0Y)/(Dx*oY) 176 C EVALUATE BILINEAR FUNCTION FROM PRECALCULATED COEFFICIENTS 177 14 OX = X-ZZ(IOS+4) 170 OY = Y-ZZ(IDS+5) 179 2(2) = ZZ(IOS+1)+ZZ(IDS+3)*OY 180 Z(3) = ZZ(IOS+2)+ZZ(IDS+3)*OX lBI z(1) = ZZ(IDS)+Z(2)*OX+ZZ(IDS+2)*QY 182 RETURN 183 ENO

88

]*W2)

)*W2)

.

.

1 SUBROUTINE T4PTREX(IR, IDT.T8LS,P.T.R.E. SFL) 2 c--------------------------------------------------------------3C 4 C SUBROUTINE: T4PTREX(IR, IDT,TBLS,P.T,R,E, IFL) 5C FIND OENSITY ANO INTERNAL ENERGY AS FUNCTIONS 6 C PURPOSE: 7C OF PRESSURE AND TEMPERATURE FROM A 302 8C SESAME TABLE. USES DOUBLE BINARY SEARCH TO FINO INITIAL GUESS OF R Am E, THEN USES 9C 00UBLE NEWTONS METHOD. 10 c 11 c 12 C ARGUMENTS: IR ( INPUT) - REGION NO. IOT (INPuT) 13 c - OATA TYPE CORRESPONDING TO E BASED 14 c - TABLE STORAGE ARRAY TBLS [RJT] P 15 c - PRESSURE 16 C T - TEMPERATURE (INPuT) R (oIJTpuT) 17 c - DENSITY E 18 C - ENERGY (OuTPUT) IFL (OUTPUT) 19 c - ERROR FLAG 20 c IF C~LCULATION IS SUCCESSFUL IFL=t, 21 c IFL=O, IF CALCULATION FAILS 22 c TBLS CAN BE DECLARED LCM ON THE COC 7600. 23 C REMARKS: 24 C T40ATIX, ISRCHKX. 25 C EXTERNALS: 26 C 27 C PROGRAMMER: G. I. KERLEY. T-4. 28 C 29 C DATE: 3 MARCH 1978 30 c 31 c--------------------------------------------------------------LEVEL 2,TBLS 32 OIMENSION TBLS(l) 33 coMMoN/s2DIRx/LcMx,NRs.LcFw( 10.3) 34 COMMON/SESINX/IRX,IDTX,RX, EX,IBR,IFLX 35 COMMON/SESOUTX/ZP(3) ,ZT(3) 36 IBR=O 37 IFLX=I 38 IRX=IR 39 IOTX=IOT 40 LOC=LCFW(IR, IDT)+l 41 NR = TBLS(LOC+l) 42 NT = TBLs(Loc+2) 43 44 ILD = i IHI = NR 45 1 = .5*(IL(J+IHI) 46 1 LOCT = LOC+2+NR+NR+NT+I+NR 47 d = ISRCHKX(T.TBLS(LOCT),NT-2.NR.30)+1 48 LOCP = LOC+2+NR+NT+I+NR*(U) 49 IF(IHI-I.EQ.1) GO TO 3 50 IF(P.LT.TBLS(LOCP)) GO TO 2 51 ILO = I 52 GO TO i 53 IHI = I 54 2 GO TO 1 55 RX = TBLs(Loc+2+I) 56 3 EX = TBLs(LOC+2+NR+U)+TBLS(LOC+2+NR+NT+I ) 57 K=O 58 IFL = 1 59 K = K+l 60 4 IF(K.EO.50) GD TO 6 61 CALL T4DATIX 62

EOS

89

63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78

90

5

6

R=RX E=EX PTES1 = ABS(P-ZP( l))-1.E-05*(A6S(P)+1 IF(PTEST.GT.O.) GO To 5 TTEST = ABS(T-ZT( i))-l.E-05*(ABSfT)+l IF(TTEST.LT.0) RETURN ONOMR = ZT(3)*ZP(2)-ZP(3)*ZT(2) IF(DNOMR.EO.O. ) GO To 6 RX = RX+(ZT(3)*(P-ZP( l))-ZP(3)*(T-ZT( ONCIMR = ZT(2)*ZP(3)-ZP(2)”ZT(3) IF(DNOMR.EO.O. ) GO To 6 EX = EX+(ZT(2)*(P-ZP( l))-ZP(2)*(T-ZT( GO TO 4 IFL = O RETURN ENO

.E-0$) .E-02)

1)))/DNOMR

1)))/oNOMR

.

t SUBROUTINE 2 c-----------------------”

T4RTPEX[IR.IC$T,TBLS,R.T,P, E,IFL) --------------------------------------------

t ~ SUBROUTINE T4RTPEX(IR.KOT .T6LS.R,T,P ,E,IFL) 5C TO FIND PRESSURE ANO ENERGY AS FUNCTIONS 6 C PURPOSE 7C OF DENSITY ANO TEMPERATURE FROM A 8C SESAME TYPE 302 TABLE USING NEWTONS METHOO. 9C 10 C ARGUMENTS IR REGION NO. ( INPuT ) 11 c IOT ( INPUT) DATA TYPE FOR 302 TABLES 12 c TBLS (INPUT) TABLE STORAGE ARRAY 13 c T ( INPUT) TEMPERATURE 14 c P (OUTpUT) pREssuRE 45 c (OUTPUT) ENERGY E 16 C (OUTPUT) OUTPUT FLAG [FL 17 c =1 FOR SUCCESS 18 C =0 FOR FAILURE 19 c 20 C REMARKS NONE 21 c 22 c 23 C PROGRAMMER d.ABDALLAH,dR. 24 C 25 C OATE 5 dULY 1979 26 C 27 C----------------------------------------------------------------------28 LEVEL 2,TBLS 29 coMMoN/s201Rx/LcMx,NRs. LCFW(10.3) 30 DIMENSION TBLS(I) 31 COMMON/SESINX/IRXX. IDTX,RX,EX.IBR. IFLX 32 COMMON/SESOUTX/ZP( 3),ZT(3) 33 IBR=O 34 IFLX=l RX=R 35 36 IRXX=IR 37 IDTX=IDT 38 LOC=LCFW(IR,IOT) 39 NR=TBLS(LOC+2) 40 NE=TBLS(LOC+3) 4tc.. GET INITIAL GUESS ON ENERGY 42C.. FIND CLOSEST OENSITY INOEX 43 LOCX=LOC+4 IRX=l 44 45 OELS=AES(R-TBLS(LOCX)) 46 IF(NR.EO.1) GO TO 20 47 DO”1O 0=2.NR 48 LOCX=LOCX+l 49 DEL=AES(R-TBLS(LOCX)) 50 IF(OEL.GT.DELS) GO TO 10 51 IRX=d 52 DELS=OEL 53 10 CONTINUE 54C.. FINO THE ENERGY INOEX ASSOCIATED WITH THE CLOSEST TEMP 55 20 LOCX=LOC+3+NR+NE+NR+IRX 56 DELS=TBLS(LOCX) 57 OELS=SHIFT(DELS.30) 5a OELS=AES(T-OELS) 59 IEX*l 60 IF(NE.EO.1) GO TO 40 61 00 30 d=2,NE 62 LOCX=LDCX+NR

91

63 64 65 66 67 68 69 30 70C.. 71 40 72C.. 73 74 75 50 76 77 78

79 80 81 82 83 84 85 86 87 88

92

90

DEL=TBLS(LOCX) DEL=SHIFT(DEL.301 DEL=ABS(T-DEI-) IF(OEL.GT.OELS) GO TO 30 IEX=d DELS=DEL CONTINUE INITIAL GUESS ON ENE~Y EX=TBLS(LOC+3+NR+IEX)+TBLS( LOC+3+NR+NE+IRX) ITERATE USING NEWTONS METHOD K=O IFL=I K=K+ 1 IF(K.EO.50) GO TO 90 CALL T4DATIX E=EX P-2P(1) TTEST=ABS(T-ZT( l))-l.0E-05*(ABS(T)+~ .0E-02) IF(TTEST.LT.O. ) RETURN D=-ZT(3) IF(D.EQ.O.0) GO TO 90 EX=EX-(T-ZT(l))/D GO TO 50 IFL=O RETURN END

APPENDIX B CROSS-REFERENCE DIRECTORY OF EOSLIB

.

93

1 ND WSED

SPACE

RwTINE

2.

3.

4.

s.

6.

7.

8. s.

10.

11.

94

RECORD LENGIH

ltOEX

7

EOSOEG EOSBEG

5

EoSCON EOSCON

1

EOSORE EOSORE

a

EOSORT EOSORT

7

EOSOSL EOSOSL

2

EOSEFO EOSEFO

4

●l

EOSFAS EOSFAS

3

EOSGET EOSGET

11

EOSIPT EOSIPT

EOSIUT EOSIRT

Of

9

8

80

6

166

74

231

12S

t26

DSK4EI

EXTERNAL

com40N

SW60LS

6L0cKs

002354 s201nx SESINX EOSCZ EOSC2 EOSC4 EOSC6 EOSCCE

SESOATX 1 N70RDx EOSC1 EOSC3 EOSC5 EoSC7 EOSCCO

00moo E“O::SL

GOTOER .

EDSCCE

Eoscco

740A71X EOSKU1

EOSGE7

S20XRX I NTOROX SESOUTX EOSC3

SESOATX SESINX EOSCZ EOSC4

740ATX EOSKUT

EOSGET

S201RX lNTOROX SEsoulx EOSCCE EOSC3

SESOA7X SESINX EOSCZ Eosc f EOSC4

EOSCCE

EOSCCO

EOSC2 EOSC2 EOSC5

EOSC1 EOSC3 EOSC6

0D6404

006173

0004S4

~1320 OUTC1 . EOF REWIM. EOSFAS

OECOOI .

ASSIGN GOTOER.

OASSIGN

Eoscz EOSC2

Eosc t

Oulcl . GE TRPOX GOTOER . EOSOFO

GE TEOSX GET INVX EOSCON EOSEFO

S201RX SESINX EOSCZ EOSC3

SESOATX INTOROX EOSC 1 EOSC4

OUTCI . EOSGET

14 PTREX EOSKUT

S201RX SESINX EOSCZ EOSC4

SESOAIX 1NTOR13X EOSC3

DUTCI

T4RTPEX

S20!RX

SE SOATX

lNPCl rExlsT

.

000644

011374

0D7722

~7020 .

EOSGET

EOSKUT EOSKU7

10

EOSOFO EOSOFD

12

t! OSORT EOSORT

13

GETEOSX GET EOSX

14

GETINVX GET INVX

24

GETRPOX GE TRPOX

26

IWMJFRX 1N6UfRX

*7

INV30$X INv30!X

24

20,

I SRC14KX I SRC*X

10

55

017303

21.

MATCH(X MA TCMKX

16

22

016437

22.

RATFNIX RATFNIX

22

128

022237

74E3AT x X T40AT 1 X

23

74DATx T4DATX

27

T41UTPX 14 IN7PX

20

12.

13.

14.

15.

16.

17.

18.

1s.

23.

24.

2s .

f23

EOSKUT

SESINX toscz EOSC4

INTOR1’lX EOSC3

EOS6EG

EDsCZ

EoSC3

WTCI . EOF REWINO. EOSFAS

DECOO1 lNPC1 . FEx IST

EDSCZ EOSC2 EOSC7

EOSC1 EOSC3

XTOV$ OLDG1O EOSKUT

T40ATx EosGET OUTC 1.

S201RX INTOROX SESOUTX EOSCCO EOSC3

SES04TX SESINX Eoscz EOSC 1 EOSC4

OPACKX MA7CUKX

TABRANx

S201RX

EOSCCE

DPACKX TA6R4NX

INv301X MATCHXX

S2D1RX

EOSCCE

OPACKX MATCNXX

7A6RANX

S201RX

EOSCCO

UNIT

RDISK

RATFN!X

I SRCHKX

lNTOROX

R7BLK1X

SE SOATX RIBLK$X

INTOROX

S201RX RTBLK2X SESOUTX

RT6LKIX SESINX SE SOATX

S201QX SESOATX SE SOUTX

RTBLK2X SESINl

RT6LK2X SESOATX

INTOROX

0W624 WTCI

*45

105

17$

201

139

29

-66

924

.

012524

013464

014330

0211D7

025611

016627

023711

022770 T41N7PX

f30

X

026SS1 T41NTPX

2S9

RATFNf

017702

.

95

2s .

27.

28.

T4PTREX T4PTREx

1s

T4RTPEX T4RTPEX

2s

TABRANX TNIRANX

28

*5C

01s403 T40ATIX

$2S

S201RX SE SOUTX

SESINX

S201RX SESOUTX

SESINX

024613 T40ATlx

*S8

1 Sacwx

027s26 IWWWRX

.

.

96

.

1 NO.

ENTRY

PT:

CALLEO

BY:

1 EOSCON EOSGET 2 EOSOSL EOSCON 3 EOSFAS EOSEFO 4

EOSOFO

EOSEFO EOSGET

5 EOSBEG EOSKUT 6

EOSDRE

7 EOSORT B EOSIRT 9 10

11

12

EOSIPT EOSKUT EOSORE

EOSDRT

EOSIRT

EOSIPT

EOSORT

EOSORE

EOSORT

EOSIRT

EOSIPT

EOSORT

GETINVX

GETRPOX

GETEOSX

GETINVX

GETRPOX

T4PTREX

INV301X

T40AT1X

T40ATX

EOSGET

EOSOFO EOSGET

13

EOSORT

14

GETEOSX EOSGET

15

T4PTREX EOSIPT

16 MATCHKX GETEOSX 17

INBUFRX TABRANX

18 OPACKX

19

20

21

ISRCHKX

T41NTPX

GETINVX EOSGET

22

RATFNIX

97

23

24

T4DATIX

INV301X

EOSDRE

T4PTREX

T4DATIX T4RTPEX

INV301X GETINVX

25

T4RTPEX EOSIRT

26

GETRPOX EOSGET

27

28

98

T4DATX EOSORT

EOSORT

GETEOSX

GETINVX

TABRANX GETRPOX

.

1 -ON

BLOCK:

USED

BY: GET 1 NVX

EOSOSL

EOSBEG

EOSORT

OETEOSX

EOSCDN

EOSOSL

EOSBEG

EOSORT

GE TRPOX

EOSFAS EOSGEI

EOSEFO EOSOFO

EOSBFG EOSORT

EOSORE

FOSORT

EOSIRT

EOS!PT

EOSC t

EOSFAS

EOSEFO

EOSBEG

EOSORT

EOSGFT

EOSOFO

EOSORT

EOSC2

EOSFAS

EOSEFO

EOSEEG

EOSOFO

EOSC3

EOSEFD EOSOrO

EOS0E6 EOSORT

EOSORE

EOSDRT

EOSIRT

EOSI PT

EOSKUT

EOSGET

EOSCS

COSEFO

EOSBEG

EOSC6

EOSEFO

EOSBEG

S201RX

EOSBEG T4PTREx

EOSORE (iETINVX

EOSORT T40A11 X

tOS I dr T4RTPEX

EOSIPT GE TRPOX

EOSGET ?40ATX

EOSORT

GETEOSX

SESOATX

EOSBEG RATFNIx

EOSORE T4DA11X

EOSORT T40ATX

EOSIRT

EOSIPT

EOSGET

EOSORT

T41NTPx

SESINX

EOSBEG T40ATIx

EOSORE T4RTPCX

EOSOR7 T40ATX

EOSIRT

EOSIPT

EOSGET

lNTORDX

EOSBEG RATfNIX

EOSORE INV301X

EOSORT

EOSIRT

EOSIPT

EOSGET

EOSORT

EOSOR1

EOSIRT

EOSIPT

EOSGET

EOSORT

T4PTREX

T40AT1x

T4RTPEx

T40ATx

EOSCCE

t!oscw

Zoscco EOSCZ

EOSC4

EOSIEEG

EOSORE

EOSC7

EOSBEG

EOSOFO

SESOUTX

EOSORE

EOSORT

EOSOW

RTSLK2X

T41NTPX

T4DAT

74DATX

nTSLK

RATFNIx

T40ATIX

!X

I x

EOSKUT

T4PTREX

T41NTPX

INV301X

99

APPENDIX C TEST PROGRAM

100

. 1 2C 3C 4C Sc 6C 7C 8C 9C 10 c 11 c 12 c 13 c 14 c 15 c f6 C 17 c 18 c 19 c 20 c 21 c 22 c 23 C 24 C 25 C 26 C 27 C 28 C 29 C 30 c 31 c 32 C 33 c 34 c 35 c 36 C 37 c 38 C 39 c 40 c 41 c 42 C 43 c 44 c 45 c 46 C 47 c 48 C 49 c 50 c 51 c 52 C 53 c 54 c 55 c 56 c 57 c 58 C 59 c 60 C 61 C 62 C

PROGRAM SES ●

(INPUT.OUTPUT.TAPE6=OUTPUT

**************



**************



.TAPE59=TTV.TAPE3)

**************



****+****+**



*

* ● ● ●

PURPOSETO PROVIOE THE APPROPRIATE SYSTEM OF UNITS CHOSEN

EOS SCALE FACTORS FOR THE BY KUNIT (SEE BELOW)

● ●

INPUT

VARIABLES-



*

“HELIUM” F(JR EXAMPLELMAT = = MATERIAL IN AN Alo FIELD, THE MATERIAL SESAME NUMBER CAN ALSO BE USEO TO SPECIFY THE MATERIAL BV SETTING LMAT TO THE SESAME NUMBER. FOR EXAMPLELMAT = “5760” FOR HELIUM

LMAT

● ● ● ● ●

R .

DENsITy

E =

INTERNAL

(RHo)

● ●

EN



*

KEOS

= MULTIPLE PARAMETER FLAG TO AND RETRIEVE THE OATA FILE.



OESCRIW

How

TO

WRITE

KEOS HAS FOUR OECIMAL

DIGITS,

☛ ●

KEOS

=

1000*KBR

+

loo*KuNIT

+

fotKREpE

+ KFN

WHERE

● ●

KBR

= COMPUTATIONAL MOOE FLAG TO INOICATE WHICH QUANTITIES ANO THEIR PARTIAL DERIVATIVES ARE TO BE CALCULATE ANO RETURNED BY THE PACKAGE. COMPUTE PRESSURE AND TEMPERATURE =0 COMPUTE PRESSURE ONLY =1 =2 CDMPUTE TEMPERATURE ONLY

● ● ● ● ● ● ● ● ☛ ● ☛ ● ● ●

KUNIT= o 1 2 3 4 5 6

KINO OF UNITS (sEsAMEE) R-G/cc,T-oEG.K.o-cM**2/G.p-GPA .E-MwKG (CGS) R-G/CC.T-DEG.K.O-CM**2/GM, P-MUBR.E-ERGS/GM (SIU) R-KG/M**3.T-oEG.K,P-PA ,E-lJ/KG.o-M**2/KG (HYOROXE) R-G/cc,T-oEG.K.p=MBR,E-M8R*cc/GM.o-cM**2/G ●2/G (HYDROXO) R-G/CC.T-KEV,P-MBR,E-MBR*CC/G,D-CM* (sEsAMEO) R-G/cc,T-Ev.o-cM**2/G,p-GPA .E-Md/KG (LAsNEx) R-G/cc.T-KEv.o-cM**2/GM.P-dRKs/cc .EO-dRKs/CC

● ● ● ● 9

● *

LEGENDR = OENSITY T = TEMPERATURE O = OPACITY P = PRESSURE E = INTERNAL

EN

● ● ● ● ● ● ● *

● *

● ● ● ● ●

CC = CUBIC CENTIMETER CM = CENTIMETER DEG. K = OEGREES KELVIN EV = ELECTRON VOLT G = GRAM GPA = GIGA PASCALS d = dOULES dRKS = JERKS KEV = KILO ELECTRON VOLTS KG = KILOGRAM M = METER MBR = MEGABAR MUBR = MICRDBAR PA = PASCAL



101

63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 108 107 108 109 Iloc 111 112 113 114 115 116 117 118 119 120 121 122 123 124

102

c C C c C c C c c C c c c C c C c c C C C C C C C c C c c C c c c C c C c c c c c c c c c C c



= COMPUTATION FLAG TO INDICATE WHETHER E IS IS TO BE REPRESENTED AS EN PER UNIT MASS DR EN PER UNIT VOLUME O EN IN UNITS OF EN PER UNIT MASS. FOR EXAMPLEUNITS OF ERGS/GRAM WHEN KUNIT = 1. THIS IS THE USUAL 1 EN IN UNITS OF EN PER UNIT VOLUME. FOR EXAPMLEUNITS OF ERGS/CM**3 WHEN KUNIT = 1. THIS IS THE EN OENSITY RHO*E COMMONLY COMPUTEO IN HYDRODYNAMIC COMPUTER COOES.

KREPE

● ● ● ● ● ● ● ● ● ● ●

*

KFN = KINO OF FUNTION INTERPOLATION IN THE = o RATIONAL APPROXIMATIONS (ACCURATEI = 1 BILINEAR APPROXIMATIONS (FAST)

TABLES

● ●

IMATE

= INDICATES WHETHER TO LOAO THE OATA FILE IF IT 00ES NOT EXIST FOR LMAT OR GO OIRECTLV TO A PREVIOUSLY LOAOEO FILE. FOR LMAT HAS BEEN LOADED. =0 CHECK IF THE OATA FILE IF NOT. SEARCH FOR THE FILE, COMVERT IT TO THE PROPER UNITS ANO COPY IT INTO LCM USING THE STANOARO SESAME FORMAT. >() EOUAL TO THE LMAT TABLE NUMBER. THIS NUMBER WAS RETURNED BY THE PACKAGE ON A PREVIOUS CALL TO SUBROUTINE EOSDRE, THIS OPTION IS FASTER THAN IMATE = O EOSIPT OR EOSIRT. BECAUSE IT SKIPS SEARCH IN THE OIRECTOR OF THE

● ● ● ● ● ● ● ● ● ● ●

OUTPUT

VARIABLES-

● ● ● ●

P = ARRAY OF OIMENSION 3 CONTAINING THIS ITS PARTIAL DERIVATIVES. EVEN IF THE PARTIAL DERIVATIVES

THE PRESSURE AND ARRAY MUST BE OIMENSIONEO ARE NOT COMPUTEO.



P(1) P(2) P(3)

● ● ●

= PRESSURE = OENSITY DERIVATIVE OF THE PRESSURE (OP/OR) = TEMPERATURE DERIVATIVE OF THE PRESSURE (DP/OE)

● ● ● ●

T

= ARRAY OF OIMENSION 3 CONTAINING THIS ITS PARTIAL DERIVATIVES. EVEN IF THE PARTIAL DERIVATIVES

THE TEMPERATURE ANO ARRAV MUST BE OIMENSIONEO ARE NOT COMPUTEO

● ● ● ●

T(1) T(2) T(3)

= INTERNAL TEMPERATURE = OENSITY DERIVATIVE OF THE TEMPERATURE (DT/DR) = EN DERIVATIVE OF THE TEMPERATURE (DT/OE)

● ●

IMATE

INDICATES LOCATING

=



THE SUCCESS OR FAILURE OF ANO LOAOING THE OATA FILE FOR LMAT.



= N>o MATERIAL TABLE NUMBER (SUCCESS) MATERIAL (LMAT) NOT IN LIBRARY o -N (N>l) INSUFFICIENT STORAGE THE LCM STORAGE MUST BE INCREAOEO BY AT LEAST N STORAGE LOCATIONS. SEE THE EOSMOO MANUAL

● ●

c c c c c C c C c c c c C C

E.

● ● ● ● ●

REMARKS-

THIS

SUBROUTINE

● ●

SAMPLE

ORIVER

PROGRAM-

● ●

* * ● ● ●

PROGRAM TST(OUTPUT) DIMENSION P(3).E(3) LMAT = “HELIUM” R = 0.001 E = 1.0 KEOS * 110

IS

PART

OF THE

EOSMOO PACKAGE

.

125 126 $27 128 129 130 131 132 133 134 135 $36 137 138 i39 140 141 442 143 144 145 146 147 148 149 i!io 151 152 153 154 155 156 157 158 159 160 161 162 163 164 f65 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 163 184 1B5 lcle

C C C c C c c C c c c C c c c c c c c c c C c C c c c C c c c C c C c C C C C C C c C c C c c C c c c C c C c C C C C C C c

● ● ● ● ●

*

lMATE = O CALL EOSDRE(LMAT.R.E.P.T.KEOS. PRINT 1O,P(1) 10 FORMAT(” PRESSURE = “,E1O.2,” CALL EXIT END

IMATE) MICROBARS”)

● ● ● ● ●

*

OUTPUT TFACE RFACE PFACE EFACE

VARIABLESIN THE COMMON BLOCKS EOSCCE = TEMPERATURE EOS SCALING FACTOR = DENSITY EOS SCALING FACTOR = PRESSURE EOS SCALING FACTOR = EN EOS SCALING FACTOR

AND EOSCCO

● ● ● ●

TFACO RFACO OFACO

= TEMPERATURE OPACITY SCALING FACTOR = DENSITY OPACITY SCALING FACTOR = OPACITV SCALING FACTOR

● ●

* ● ● ●

* * ● ● ● ●

: ● ● ● ●

* *

TBLS = ARRAY FOR STORAGE OF THE EOS TABLES LCMX = LENGTH OF THE TBLS ARRAY NRS = UPPER BOUNO ON THE NUMBER OF MAT REGIONS LCFW(NRS, ) LCFW = ARRAY USEO AS A DIRECTORY BY THE SESAME ROUTINES IR = MATERIAL REGIoN NuMB R IRC = IR (OEFINEO TO PERM % SUBROUTINE CALL 10S2 = SESAME MATERIAL NUMBER TBLS = NAME OF AN ARRAY DESIGNATE FOR THE STORAGE OF TABLES LCNT = CRRRENT WORO IN THE ARRAV TBLS Lu4\ = uNIT NuMBER ASSIGNED TO THE SESAME INPUT FILE sEs2cL LU42 = UNIT NUMBER ASSIGNEO TO THE SESAME INPUT FILE SES2L LU43 = UNIT NUMBER ASSIGNEO TO SES20P/8 FILES LU44 = UNIT NUMBER ASSIGNED TO MIXLIB (MIXTURES) LU45 = UNIT NUMBER ASSIGNEO TO MIXLIB DIRECTORY. KFN = O RATIONAL APPROXIMATIONS (ACCURATE) KFN = 1 BILINEAR APPROXIMATIONS (FAsT) ZB (OUTPUT FROM GETINVX) AT. CHARGE.AT. CHG**2,MASS 10T = OATA TVPE INOICATOR MIO (IO) MATERIAL 19 =1 INVERSE TABLES =2 OPACITY

● ●

* ● ● ● ●

EXTERNAL SES2CL SES2L SES20P MIXLIB MIXOIR

FILES TO HANDLE EOS. OPACITIES ANO MIXTURES CLASSIFIED SESAME LIBRARY CUCLASSIFIEO SESAME LIBRARY TABLE FROM T4 - OPACITY - PRIVATE (EOS.OPC) TABLES CREATEO BY MIXB(OR MIXER) - OIRECTORY OF MIXTURES ON MIXLIB ( NAME.NO (AIO, I3))

● ● ● ● ●

* ●

*

EXTERNALS ANO COMMON BLOCKSSESAME ROUTINESS2GET.S2EOS SESAME ROUTINES MATCHKX. TABFCHX.INBUFRX ,OPACKX,ISRCHKX. T41NTPX,GETINVX.RATFN1X ,T40ATIX0 INV301X.T4RTPEX SESAME COMMON 6LOCKS-S201RX,RTBLK2X.SESOATX. SESINX.SESOUTX. EOSMOO COMMON BLOCKSEOSC1.-7 EOSMOO COMMON (ALSO INSERTEO INTO GETINVX) EOSCCE, EOSCCO

INTO

● ● ●

LOCAL NONE

VARIABLES-

● ● ●

EXTERNALS ANO COMMON BLOCKSEOSMOO COMMON BLOCKSEOSCCE.EOSCCO

● ●

REMARKS-

THIS

SUBROUTINE

IS

PART

OF THE

EOSMOD PACKAGE

● ●

PROGRAMMER-

d.

M.

HYMAN ANO M.

KLEIN,

GROUP T-7.

LASL



103

187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248

104

C c C c c C c c c



REFERENCE-

* ● ●

d. M. HYMAN. M. M. KLEIN EOSMOD- A SUBROUTINE PACKAGE FOR CALCULATING EQUATIONS-OF-STATE ANO OPACITIES LOS ALAMOS SCIENTIFIC LABORATORY RPT. ,LA-8502-M.

1980

● ●

DATE-

MARCH 6,

1980



****************



LEVEL 2. TBLS COMMON /s2DIR/ COMMON /sEsOAT/ COMMON /SESIN/ COMMON /INTORO/ c c

COMMON COMMON COMMON COMMON COMMON COMMON COMMON COMMON

c c

BLOCKS /EDSCf/ /EOSC2/ /EOSC3/ /EOSC4/ /EOSC5/ /EOSC6/ /EOSC7/

***************



***************

LCMX, NRs, LCFW(10.3) TBLS(tiOOO) IRC. IDT, 0UM(2). K8R. KFN



***********

OUM1

FOR THE EOSMOD ROUTINES LU41. Lu42, LtJ43, Lu44. LU45 LF41, LF42. LF43, LF44. LF45 INIT. IROIM, IR(60.3). KUT(60,3) NTABLE. NTABLO, IFLP. LCNT NMAT, LABMAT(6O). IOMAT(60) NMCL. LABMCL(60). IOMCL(60) NMATO. LABMD(60). 1OMATO(6O)

EOSMDO COMMON BLOCKS USEO BM\THE MODIFIEO SESAME ROUTINES COMMDN /EOSCCE/ TFACE, RFACE. PFACE. EFACE. KREPE coMMDN /EOsCCD/ TFACO, RFACO, OFACO. KREPO

C NAMELIST /INP/ KUNIT,KREP,NLMAT,NBR.NFN. IIPT, IIRT, IORT.IORE,LCMX 1 .NRS.DUM,KBR.DUM1 .KFN.INIT .IRDIM,NTABLE .NTABLO,IFLP ,LCNT,NMAT 2 ,NMCL,NMATD,TFACE.RFACE,EFACE .KREPE.TFACO.RFACD,OFACO,KREPO. RHO 3 ,TEMP.PR,EN. IRC.IOT.IORT .NGO DATA RHO /0.16/, TEMP /5.E4/. PR /19.2/. EN /310./ c DATA DATA

KUNIT /0/. IIPT /1/.

KREP /0/. IORT /1/.

NLMAT /2/, NBR /1/. IIRT /1/, IORE /1/.

C WRITE (3,210) 00 10 I=i.NMAT WRITE (3.220) 10 CONTINUE

LABMAT(I).IOMAT(I)

C

20

WRITE (3.230) DO 20 I=I,NMATO WRITE (3,220) LABMO(I),IDMATO(I) CONTINUE

C 30 C** C

CONTINUE REAO (59.INP) WRITE

(6,160)

C 00 60 LMATP=l.NLMAT LMAT=6HHELIUM LMATO=LMAT IF (LMATp.EO.2) LMAT=”576011 IF (LMATP.EO.2) LMATO=”15760” C 00 50 KBRP=l.NBR KBR=KBRP-1 C 00

40

KFNP=t.NFN

NFN IORT

/f/ /1/.

NGO /0/

. .

249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266.C 267 268 269 270 271 272 273 274 275 276 277 278 279 260 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310

KFN=KFNP-1 C KEOS=1OOO*KBR+IOO*KUNIT+

10*KREP+KFN

c cALL 1)

ES

(LMAT.LMATO.RHOoTEMp.PR

.EN.KEOS.

IIp7.10RToIIRT

.IORE.IORT.

I

C 40 50 60

CONTINUE CONTINUE CONTINUE

C WRITE (59.170) REAO (59.180) LANS IF (LANs.Eo. IHY) GO To

C**

30

C IF

(NGo.GT.0)

GO TO

(70.80,90,

loo,

IIo.13o).

NGO

C CHECK C C 70

C C 80

C C 90

THE

ERROR MESSAGES

CHANGE UNITS CONTINUE KEOS=KEOS+1OO cALL Es (LMAT.LMATO,RHO.TEMp.Plt. 1) KEOS=KEOS-1OO

EN.KEOs.

IIpT.IORT.IIRT.

IDRE.IORT.1

CHANGE TABLE FORMAT FOR THE ENERGY ANO OPACITY REPRESENTATION CONTINUE KEOS=KEOS+IO CALL ES (LMAT.LMATO,RHO,TEMp.PR, EN.KEOS.I IpT. IORT,lIRToIDRE .IoRT.t 1) KEOS=KEOS-10 NON MATERIAL TEST CONTINUE LMAT=”NOMAT” CALL ES (LMAT.LMATO,RHO.TEMP.PR. 1)

EN,KEOS,

IIPT,IORT.IIRT.

EN.KEOS.

IIpT.

IORE.IORT.1

C LMAT=”99999” cALL Es (LMAT.LMATO.RHO,TEMp.pR, 1) C C 100

C C C c

NEGATIVE OENSITV TEST CONTINUE R.-RHO cALL Es (LMAT,LMATO.R,TEMP,PR.EN.KEOs. GO TO *5O IF

CHECK

110

ALL

THE

MATERIALS

IIpT.

IORToIIRT.IORE

IORT.

IIRT.IORE.IORT.

.IORT.f

i)

ARE AVAILABLE

EOS MATERIALS CHECK CONTINUE 00 120 1=1.NMAT

c LMAT=LABMAT( 1) CALL ES (LMAToLMATO.RHO.TEMp,pR

,EN.KEOS.O.

l.O.O.O.O)

C ENCOOE

(4.190.LMAT)

IOMAT(I)

C cALL c

Es

(LMAT.LMATO.RHO.TEMP.pRoEN.KEOs

.0.

1.0.0.0.0)



105

311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336

106

120

CONTINUE

130

OPACITY MATERIALS CONTINUE DO 140 I=l,NMATD

C c

CHECK

C LMATO=LABMO(I ) CALL ES (LMAT.LMATO.RHO.TEMp,pRoEN.KEOS,O.OoO,Oo

I.0)

c ENCOOE

(5,200,LMATO)

IOMATO(I)

C 140 150

CALL ES CONTINUE CONTINUE

(LMAT,LMATO.RHO,TEMP.PR.

EN.KEOS.O,

1,0.0,0.0)

C CALL

EXITA

(1)

C 160 170 180 190 200 2t0 220 230

FORMAT FORMAT FORMAT FORMAT FORMAT FORMAT FORMAT FORMAT END

(“ KEOS IMATE R (“ CONTINUE?”) (Al) (14) (15) (- THE EOS MATERIALS’ARE”) (lx.AIo,IiO) (“ THE OPACITY MATERIALS ARE=)

T

P

E“)

.

1 2 3C 4C 5C 6C 7C 8C 9C 10 c 11 c 12 c 13 c 14 c 15 c 16 C 17 c 18 .C 19 c 20 c 21 c 22 c 23 C 24 C 25 C 26 C 27 28 C 29 30 31 32 33 34 c 35 c 36 37 38 39 40 41 42 43 c 44 c 45 46 47 c 48 49 50 51 52 C 53 54 55 56 57 c 58 C 59 60 61 62

f

subroutine .IORT.IWNL)

ES

(LMAT,LMATO.RHO.TEMP.PR.

● ☛☛☛☛☛☛☛☛☛☛☛☛☛☛☛

● ☛☛☛☛☛☛☛☛☛☛☛☛☛☛☛

EN,KEOSO IIPT.

● ☛☛☛☛☛☛☛☛☛☛☛☛☛☛☛

IORTOIIRT.IORE

● ☛☛☛☛☛☛☛☛☛☛☛

☛ ●

PURPOSE-



*

INPUT

VARIABLE-

● ●

INPUT-OUTPUT

VARIABLES

IN

THE

COMMON BLOCKS

EOSCC2

ANO EOSCCO

● ●

EXTERNALS

ANO COMMON BLOCKS-

REMARKS-

THIS

● ●

SUBROUTINE

IS

PART

OF THE

EOSMOO PACKAGE

* ●

PROGRAMMER-

d.

M.

HYMAN ANO M.

KLEIN,

GROUP T-7.

LASL

● ●

Reference-

d. M. HVMAN. M. M. KLEIN EOSMOO- A SUBROUTINE PACKAGE FOR CALCULATING EQUATIONS-OF-STATE ANO OPACITIES LOS ALAMOS SCIENTIFIC LABORATORY RPT. .LA-B502-M,1980

● ● ● ● ●

DATE-

MARCH 22,

1981

● ●

************

DIMENSION



R(3),

LEVEL 2. TBLS COMMON /S201R/ COMMON /sEsOAT/ COMMON /5EsIN/ coMMoN /INToRO/ COMMON COMMON COMMON COMMON COMMON COMMON coMMoN COMMON

BLOCKS /EOSC1/ /EOSC2/ /EOSC3/ /EOSC4/ /EOSC5/ /Eosc6/ /EOSC7/

************** P(3).



T(3),

************+*

.*+*******.**



**

E(3)

LCMX. NRS. LCFW( 10,3) TBLS(fIOOO) IRC. IOT. ouM(2), KBR. KFN FOR THE LU41. LF41. INIT. NTABLE, NMAT. NMCL. NMATO.



DUMI

EOSMOO ROUTINES LU42. LU43. LUA4, LU45 LF42, LF43. LF44, LF45 IROIM. IR(60,3). KUT(60,3) NTABLO. IFLP. LCNT LABMAT[60), IDMAT(6O) LA6McL(60), 1oMcL(60) LA6MO(60), 10MAT0(60)

EOSMOO COMMON BLOCKS USEO BY THE MOOIFIED SESAME ROUTINES COMMON /EOSCCE/ TFACE, RFACE. PFACE. EFACE. KREPE COMMON /EOSCCO/ TFACO. RFACO. OFACO, KREPO NAMELIST /INP/ KUNIT,KREP,NLMAT.NBR,NFN. IIPT, IIRT. IORT.IORE,LCMX 1 .NRS.OUM.KBR.OUMI .KFN.INIT ,IROIM,NTABLE,NTABLO. IFLP. LCNT,NMAT 2 ,NMCL.NMATO.TFACE .RFACE, EFACE.KREPE,TFACO.RFACO.OFACO ,KREPO.RHO 3 .TEMP.PR.EN, IRC.IOT.IORT R(l)=RHO T(l)=TEMP P(l)=PR E(l)=EN ● *+*o*****+*+o~ xF (IIPT.Eo.0) WRITE (6.70) WRITE (3.70) IMATE-O

EosIpT GO TO

TEsT

+*******.****+*



10

107

63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 .84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124

108

R[1)=R(2)=R(3)=0.o E(1)=E(2)=E(3)=0.o CALL EOSIPT (LMAT.P.T,R,E,KEOS. IMATE) WRITE (6,60) LMAT,KEOS. IMATE.(R(I),T(I WRITE (3,60) LMAT,KEOS. IMATE.(R(I).T( IF (IWNL.NE.0) WRITE (3.INP) IF (IMATE.LE.0) IMATE=O

).P(I).E(I ).1=1.3) l).P(I) .E(I).1=1.3)

c

10 c c C

R(1)=R(2)=R(3)=0.O E(1)=E(2)=E(3)=0.O CALL EOSIPT (LMAT.P.T.R.E.KEOs. IMATE) WRITE (6.60) LMAT.KEOS. IMATE,(R(I).T(I) WRITE (3,60) LMAT,KEOS, IMATE,(R(I).T( IF (IWNL.NE.0) WRITE (3.INP) IF (IMATE.LE.0) IMATE=O CONTINUE ●

**************

EosDRT

TEsT



.PII),E(I).1=1,3) l).P(I) .E(I).1=1,3)

****8**********

IF (IORT.EO.0) Go To 20 WRITE (6,S0) WRITE (3.80) IMATE=O P(1)=P(2)=P(3)=0.O E(1)=E(2)=E(3)=0.O CALL EOSORT (LMAT.R.T.P.E.KE05. IMATE ) WRITE (6.60) LMAT.KEOS. IMATE.(R(I).T(I ).P(I).E(I ).1=1,3) WRITE (3,60) LMAT,KEOS, IMATE.(R(I).T( 1) .P(I).E(I).1=1.3) IF (IWNL.NE.0) wRxTE (3,1Np) IF (IMATE.LE.0) IMATE=O c

20 c c c

P(1)=P(2)=P(3)=0.O E(1)=E(2)=E(3)=0.O CALL EOSORT (LMAT,R,T,P,E,KEOS. IMATE) WRITE (6.60) LMAT.KEOS, IMATE.(R(I),T( WRITE (3.60) LMAT,KEOS. IMATE.(R(I),T(I IF (IwNL.NE.0) WRITE (3,1NP) IF (IMATE.LE.0) IMATE=O CONTINUE ●

**************

EosIRT

TEsT

I),P(I) .E(I).1=1.3) ).P(I).E(I ).1=1,3)

o************+**

IF (IIRT.EO.0) GO TO 30 WRITE (6,90) WRITE (3.90) IMATE=O P(I)=P(2)=P(3)=0.O E(1)=E(2)=E(3)=0.O CALL EOSIRT (LMAT.R.T,P.E,KEOS.IMATE) WRITE (6.60) LMAT.KEOS. IMATE.(R(I).T( WRITE (3,60) LMAT.KEOS. IMATE,(R(I).T( IF (IWNL.NE.0) WRITE (3.INP) IF (IMATE.LE.0) xMATE=o

l).P(I).E( I),P(I)

.E(I

I).1=1.3) ).1=1.3)

C

30

P(1)=P(2)=P(3)=0.O E(1)=E(2)=E(3)=0.O CALL EOSIRT (LMAT.R.T.P.E.KEOS. IMATE ) WRITE (6.60) LMAT,KEOS. IMATE.(R(I).T(I ),P(I).E(I WRITE (3.60) LMAT.KEOS, IMATE.(R(I).T( I),P(I) .E(I IF (IWNL.NE.0) WRITE (3.INP) IF (IMATE.LE.0) IMATE=O CONTINUE

).1=1.3) ).1=1.3)

.

. 125 126 127 128 129 130 131 f 32 133 134 135 436 137 138 139 140 f4f 142. 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179

C C C



**o***********

EosDRE

TEs T



***************

IF (IDRE. EO.0) GD TO 40 WRITE (6,110) WRITE (3,110) IMATE=O P(I)= P(2)= P(3)=0. O T(1)=T(2)=T(3)=0.O CALL EOSDRE (LMAT,R.E .P,T.KEOS,IMATE WRITE (6,60) LMAT.KEOS. IMATE.(R(I),T( WRITE (3,60) LMAT.KEOS. IMATE.(R(I).T[ IF (IWNL.NE.0) wRxTE (3.lNp) IF (IMATE.LE.0) fMATE=O

) l).p(I).E(l l).p(I)

).1=1.3) .E(I),l=t.3)

l).P(I) l).P(l).E(l

.E(l).

c

40 c c c

P(1)=P(2)=P(3)=0.O T(1)=T(2)=T(3)=0.O cALL EOSDRE (LMAT.R.E .p.T.KE05.lMA7E WRITE (6.60) LMAT,KEOS. IMATE.(R(I).T( WRITE (3.60) LMAT,KEOS. IMATE.(R(I).T( IF (IWNL.NE.0) WRITE (3,1NP) IF (IMATE.LE.0) IMATE=O CONTINUE ************+**

EosoRT

TEsT



) 1=1,3) ),l=I.3)

***************

IF (IORT.EQ.0) GO TO 50 KOPC=KEOS WRITE (6.100) WRITE (3.100) IMATO=O OPACITY=O.O CALL EOSORT (LMATo.R.T.opAcITY.KOpc. WRITE (6,60) LMAT,KOPC. IMATO.R(l).T( WRITE (3.60) LMAT,KOPC, lMATO.R(l).T(l IF (IWNL.NE.0) WRITE (3,1NP) IF (IMATO.LE.0) IMATO=O

IMATO) I),OPACITY ).OPACITY

C

50

OPACITY=O.O CALL EOSORT (LMATo,R.T,OPAcITY.KOpc, WRITE (6,60) LMATO,KOPC, IMATO.R(l).T( WRITE (3.60) LMATO.KOPC. IMATO.R( I), IF (IWNL.NE.0) wRITE (3.lNP) IF (IMATO.LE.0) IMATO=O CONTINUE

IMATo) 1).OpACITv T(l).OpAcITy

c RETURN C 60 70 80 90 100 110

FORMAT FORMAT FORMAT FORMAT FORMAT FORMAT ENO

(1X,A10.14, (“ EOSIPT”) (“ EOSORT”) (“ EOSIRT”) (“ EOSORT”) (“ EOSDRE”)

13.12(1PE9.2)

)

109

OUTPUT

110

. .

00

00

00

00 00

00 00 00

00

--.

00

-.-

--. -.

00

..-

0

0

0

0

0

0

0

0

0

6

0

0

0

0

0

0

0

0

111

6

0

0

0

0

0

0

0

0

0

0

0

0

0

6

0

0

0

0

0

0

0

6

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0000

0000

0000

0000

0000

0000

0000

0

0

0

0000

6

0

o

0

0

0

0

a.

0

0 .

0 \,

0

0

0.

0

.

0

0

0

0

0

0

112

. .

.

0000

0000

0000

0000

0

0

0

0

0

0

0

o

00

00

60

00

00

00

60

00

06

0

0

0

0

0

0

0

0

0

0

0000s.

6000

0

00

00

0

113

114

60

00

00

00

00

00

00

60

00

00

00

00

66

00

0

0

.

00 . ;;

Law --

*U.S.

GOVERNMENT

PRINTING

OFFlc

E:1981-O-576-020

/lSO

IMnted in the United States of AnWriQ Available from National Technical Information Service US Department of Commerce 5285 Port Royal Road Springfield, VA 22161 Mimotiche Page Range 001-025 026-0S0 0s1-075 076-100 101-12s 126-1S0

Domestic Price s S.oo 6.043 7.00 8.00 9.00 10.00

NTIS Prim Code A02 A03 A04 AOS A06 A07

Page Range 151-175 176.200 201.225 226.250 2S1-275 276-300

Domestic Price

NTIS Flice Code

S1l.oo 12.00

A08 A09

13.00 14.00 1s .00 16.00

AlO All A12 A13

S3.S0 (AO1 )

Page Range 301-32S 326-3S0 351-37s 376400 40142S 426450

D.amest ic Price

NTIS WIce Code

$17.00 1L7.00

A14 AIS A16 A17 A18 A19

19.00 20.00 21.00 22.00

Page Range

Domestic Wlce

NTls Price code

4s147s 476-500

$23.00 24.oo

A20 A21

S01-S25 526.S50 SSI-575 576.600 601-up

+Add $1.00 for each addlt ional 2S-page increment or portion thereof from 601 pages up.

25.00 26.oo 27.0+3 28,00 t

A22 A23 A24 A25 A99

Suggest Documents