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