<!-- source-page: 861 -->

Record Record type Attributes key 

<table><tr><td>348(S)</td><td>Quadratic separation damage initiation criterionOutput variable: CSQUADUCRT</td><td>1. Magnitude.</td></tr></table>

Records written once for any file output request when cavities are defined 

<table><tr><td>Record key</td><td>Record type</td><td>Attributes</td></tr><tr><td> $1601^{(S)}$ </td><td>Cavity definition header</td><td>1. Number of surfaces making up the cavity.2. Cavity name.3. Name of cavity&#x27;s first surface.4. Name of cavity&#x27;s second surface.5. Etc.</td></tr><tr><td> $1610^{(S)}$ </td><td>Facet order record size</td><td>1. Maximum record length (including the record length and record key words) for cavity facet order records that follow. The cavity facet order data will be subdivided into multiple records as needed to fit within this maximum length. The record key for any continuation record will be the same as for the first record.</td></tr><tr><td> $1602^{(S)}$ </td><td>Cavity facet order</td><td>1. Number of facets making up the cavity.2. Cavity name.3. Cavity&#x27;s first (underlying) element number.4. First element face key (1-S1, 2-S2, 3-S3, 4-S4, 5-S5, 6-S6, 7-SPOS, 8-SNEG)5. Cavity&#x27;s second (underlying) element number.6. Second element face key (1-S1, 2-S2, 3-S3, 4-S4, 5-S5, 6-S6, 7-SPOS, 8-SNEG)7. Etc.</td></tr></table>

# Records written for any view factor matrix output request

The ordering of the facets (each facet corresponds to one row of the view factor matrix) is that appearing in the cavity facet order record 1602.

Record Record type Attributes key 

<table><tr><td>1608(S)</td><td>Output request definition</td><td>1. View factor output (0).2. Cavity name.</td></tr></table>

<!-- source-page: 862 -->

<table><tr><td>Record key</td><td>Record type</td><td>Attributes</td></tr><tr><td> $1605^{(S)}$ </td><td>View factor matrix header</td><td>1. Number of facets in the cavity.2. Cavity name.</td></tr><tr><td> $1609^{(S)}$ </td><td>View factor matrix record size</td><td>1. Maximum record length (including the record length and record key words) for view factor matrix and facet area records that follow. The matrix or facet area records will be subdivided into multiple records as needed to fit within this maximum length. The record key for any continuation record will be the same as for the first record.</td></tr><tr><td> $1606^{(S)}$ </td><td>Nonsymmetric view factor matrix</td><td>1. (1, 1) dimensionless view factor.2. (1, 2) dimensionless view factor.3. (1, 3) dimensionless view factor.4. Etc., stored in rows.</td></tr><tr><td> $1607^{(S)}$ </td><td>Facet areas</td><td>1. Area of first facet.2. Area of second facet.3. Area of third facet.4. Etc.</td></tr></table>

Records written for any radiation file output request 

<table><tr><td>Record key</td><td>Record type</td><td>Attributes</td></tr><tr><td> $1603^{(S)}$ </td><td>Output request definition</td><td>1. Radiation file output (1).2. Cavity name.3. Surface name.4. Element set name.</td></tr><tr><td> $1604^{(S)}$ </td><td>Facet header record</td><td>1. (Underlying) user element number.2. Element face key (1–S1, 2–S2, 3–S3, 4–S4, 5–S5, 6–S6, 7–SPOS, 8–SNEG)3. Facet area.</td></tr><tr><td> $231^{(S)}$ </td><td>Radiation flux density</td><td>1. Magnitude.</td></tr><tr><td> $232^{(S)}$ </td><td>Radiation flux</td><td>1. Magnitude.</td></tr><tr><td> $233^{(S)}$ </td><td>Time integrated radiation flux density</td><td>1. Magnitude.</td></tr><tr><td> $234^{(S)}$ </td><td>Time integrated radiation flux</td><td>1. Magnitude.</td></tr></table>

<!-- source-page: 863 -->

<table><tr><td>Record key</td><td>Record type</td><td>Attributes</td></tr><tr><td> $235^{(S)}$ </td><td>Total view factor (sum of view factor matrix row)</td><td>1. Magnitude.</td></tr><tr><td> $236^{(S)}$ </td><td>Facet temperature</td><td>1. Magnitude.</td></tr></table>

Records written for any section file output request

The output variables described below are not available for random response analysis.

<table><tr><td>Record key</td><td>Record type</td><td>Attributes</td></tr><tr><td>1580(S)</td><td>Output request definition</td><td>1. Surface section output (1).2. Section name.</td></tr><tr><td>1581(S)</td><td>Section output header record</td><td>1. Surface name.2. System of coordinates used for output (1-Global, 2-Local).3. Flag to indicate whether or not the local coordinate system and the output are updated during the analysis (1-Yes, 2-No).</td></tr></table>

# For all analysis types

The following two records are generated only when section output is requested in a local coordinate system. In that case all components of forces and moments are given with respect to the local system. Only the first two directions of the local coordinate system are given; if needed, the third direction can be calculated as the cross product of the first two.

<table><tr><td>1582(S)</td><td>Global coordinates of the anchor point</td><td>1. First coordinate.2. Etc.</td></tr><tr><td>1583(S)</td><td>Direction cosines of the local coordinate system</td><td>1. First component of the first direction.2. Second component of the first direction.3. Third component of the first direction.4. First component of the second direction.5. Second component of the second direction.6. Third component of the second direction.</td></tr><tr><td>1584(S)</td><td>Area of the defined section Output variable: SOAREA</td><td>1. Magnitude.</td></tr></table>

<!-- source-page: 864 -->

Record Record type Attributes key   
For stress/displacement analyses 

<table><tr><td> $1585^{(S)}$ </td><td>Total force in the section in the selected systemOutput variable: SOF</td><td>1. Magnitude.2. First force component.3. Etc.</td></tr><tr><td> $1586^{(S)}$ </td><td>Total moment in the section about the origin of the selected systemOutput variable: SOM</td><td>1. Magnitude.2. First moment component.3. Etc.</td></tr><tr><td> $1587^{(S)}$ </td><td>Global coordinates of the center of the total force in the sectionOutput variable: SOCF</td><td>1. First coordinate.2. Etc.</td></tr></table>

For heat transfer analyses 

<table><tr><td>1588(S)</td><td>Total heat flux across the section</td><td>1. Magnitude.</td></tr><tr><td></td><td>Output variable: SOH</td><td></td></tr></table>

For electrical analyses 

<table><tr><td>1589(S)</td><td>Total current across the section</td><td>1. Magnitude.</td></tr><tr><td></td><td>Output variable: SOE</td><td></td></tr></table>

For mass diffusion analyses 

<table><tr><td>1590(S)</td><td>Total mass flow across the section</td><td>1. Magnitude.</td></tr><tr><td></td><td>Output variable: SOD</td><td></td></tr></table>

For coupled pore fluid diffusion-stress analyses 

<table><tr><td>1591(S)</td><td>Total pore fluid volume flux across the sectionOutput variable: SOP</td><td>1. Magnitude.</td></tr></table>

For coupled analyses the appropriate combination of records is available. For example, in a thermal-electrical analysis both SOH and SOE are valid output requests.

Procedure type keys   
Table 5.1.2–1 Keys to procedure types. 

<table><tr><td>Key</td><td>Description</td></tr><tr><td>1</td><td>Static, automatic incrementation</td></tr><tr><td>2</td><td>Static, direct incrementation</td></tr></table>

<!-- source-page: 865 -->

# Key Description

4 Direct cyclic, automatic time incrementation   
5 Direct cyclic, fixed time incrementation   
11 Implicit dynamic, half-increment residual tolerance given   
12 Implicit dynamic, fixed time increments   
13 Implicit dynamic, subspace projection   
17 Explicit dynamic   
21 Quasi-static, explicit time integration   
22 Quasi-static, implicit integration   
31 Heat transfer, steady-state   
32 Heat transfer, transient, fixed time increments   
33 Heat transfer, transient, maximum allowable nodal temperature change given   
34 Mass diffusion, steady-state   
35 Mass diffusion, transient, fixed time increments   
36 Mass diffusion, transient, maximum allowable normalized concentration change given   
41 Eigenvalue frequency extraction   
42 Eigenvalue buckling prediction   
51 Substructure generation   
61 Geostatic stress field   
62 Coupled pore fluid diffusion/stress, steady-state, fixed time incrementation   
63 Coupled pore fluid diffusion/stress, steady-state, automatic time incrementation   
64 Coupled pore fluid diffusion/stress, transient, fixed time incrementation   
65 Coupled pore fluid diffusion/stress, transient, automatic time incrementation   
71 Coupled thermal-stress, steady-state   
72 Coupled thermal-stress, transient, fixed time increments   
73 Coupled thermal-stress, transient, maximum allowable nodal temperature change and/or accuracy tolerance parameter given   
74 Explicit dynamic coupled thermal-stress   
75 Coupled thermal-electrical, steady-state   
76 Coupled thermal-electrical, transient analysis, fixed time increments

<!-- source-page: 866 -->

# Key Description

77 Coupled thermal-electrical, transient analysis, maximum allowable nodal temperature change given   
85 Steady-state transport, automatic incrementation   
86 Steady-state transport, direct incrementation   
91 Response spectrum   
92 Modal dynamic   
93 Steady-state dynamic   
94 Random response   
95 Direct-solution steady-state dynamic   
98 Annealing   
101 Time harmonic electromagnetic   
102 Coupled electrical-temperature-displacement, steady-state   
103 Coupled electrical-temperature-displacement, transient, fixed time increments   
104 Coupled electrical-temperature-displacement, transient, automatic incrementation

<!-- source-page: 867 -->

# 5.1.3 ACCESSING THE RESULTS FILE INFORMATION

Products: Abaqus/Standard Abaqus/Explicit

# References

• “Accessing the results file: overview,” Section 5.1.1   
• “Results file output format,” Section 5.1.2   
• “Utility routines for accessing the results file,” Section 5.1.4

# Overview

The Abaqus results (.fil) file is written using internal data management routines to minimize I/O cost. A postprocessing program must use these same Abaqus data management routines to read the results file. The following utility routines must be called to obtain data from the Abaqus results file:

• INITPF   
• DBRNU   
• DBFILE   
• POSFIL

You can also write a file in the format of the Abaqus results file by using the following utility subroutines:

• INITPF   
• DBFILW

The syntax of these utility subroutines is described in “Utility routines for accessing the results file,” Section 5.1.4.

# Reading floating point and integer variables

To read both floating point and integer variables in the records, the following coding can be used in the postprocessing program:

```txt
INCLUDE 'aba_param.inc'
DIMENSION ARRAY(513), JRRAY(NPRECD,513)
EQUIVALENCE (ARRAY(1),JRRAY(1,1)) 
```

With this technique, for example, the record key is available after each call to DBFILE with LOP=0 as

```vba
KEY = JRRAY (1,2) 
```

The use of aba\_param.inc eliminates the need to have different versions of the code for single and double precision. The file aba\_param.inc defines an appropriate IMPLICIT REAL statement and sets the value of NPRECD to 1 or 2, depending upon whether the machine uses single or double precision.

<!-- source-page: 868 -->

The file aba\_param.inc is referenced from the site subdirectory of the Abaqus installation when the postprocessing program is compiled and linked using the abaqus make utility (explained below).

# Linking the postprocessing program

The postprocessing program must be linked using the make parameter when running the Abaqus execution procedure (see “Making user-defined executables and subroutines,” Section 3.2.18). To link properly, the postprocessing program cannot contain a Fortran PROGRAM statement. Instead, the program must begin with a Fortran SUBROUTINE with the name ABQMAIN.

Compiling, linking, and running a postprocessing program consists of two steps. For example, if the name of the postprocessing program is postproc.f, use the following command to compile and link postproc.f:

abaqus make job=postproc

The program must then be run using the command:

abaqus postproc

# Calling the utility subroutines for reading the results file

Subroutine INITPF must be called before any results file is accessed. This subroutine contains Fortran OPEN statements for all Fortran units assigned to results files through the call to INITPF; therefore, your code must not contain any OPEN statements for these units. Abaqus constructs a file name for a given unit based on information supplied as LRUNIT(1,K1) and FNAME, as discussed in “Utility routines for accessing the results file,” Section 5.1.4.

Subroutine DBRNU must also be called before reading the first results file and then again each time you need to change to reading another results file. This subroutine simply establishes the Fortran unit number of the results file being read; no information is returned. DBRNU can be called before or after INITPF but must be called before DBFILE.

Subroutine DBFILE is used to read each record from the results file. This subroutine will return one record at a time in the format described in “Results file output format,” Section 5.1.2.

# Example

The following program reads all the von Mises stresses in the results file and obtains the maximum value. Then, it prints this value along with the element, section point, and integration point numbers where it occurred.

In this example Fortran unit 8 is used to read the results file, and the name of the results file is assumed to be TEST.fil. The results file is assumed to be a binary file, and only one results file will be read. Thus, LRUNIT is dimensioned as LRUNIT(2,1); and in the call to the INITPF routine NRU is set to 1, LRUNIT(1,1) is set to 8, and LRUNIT(2,1) is set to 2. A new results file will not be written, so LOUTF is set to zero.

<!-- source-page: 869 -->

```csv
SUBROUTINE ABQMAIN
C Calculate the maximum von Mises stress and its location
C
INCLUDE 'aba_param.inc'
CHARACTER*80 FNAME
DIMENSION ARRAY(513),JRRAY(NPRECD,513),LRUNIT(2,1)
EQUIVALENCE (ARRAY(1),JRRAY(1,1))
C
C File initialization
C
FNAME='TEST'
NRU=1
LRUNIT(1,1)=8
LRUNIT(2,1)=2
LOUTF=0
CALL INITPF(FNAME,NRU,LRUNIT,LOUTF)
JUNIT=8
CALL DBRNU(JUNIT)
C
C Loop on all records in results file
C
STRESS=0.
DO 100 K1=1,99999
C
CALL DBFILE(0,ARRAY,JRCD)
IF(JRCD.NE.0)GO TO 110
KEY=JRRAY(1,2)
C
IF(KEY.EQ.1) THEN
C
C Element header record:
C extract element, sec pt, int pt numbers
C
JEL=JRRAY(1,3)
JPNT=JRRAY(1,4)
JSPNT=JRRAY(1,5)
C
C Stress invariant record for Abaqus/Standard
ELSE IF(KEY.EQ.12) THEN
C Stress invariant record for Abaqus/Explicit
ELSE IF(KEY.EQ.75) THEN
C 
```

<!-- source-page: 870 -->

```csv
C Extract von Mises stress
C
IF (ARRAY(3).GT.STRESS) THEN
STRESS=ARRAY(3)
KEL=JEL
KPNT=JPNT
KSPNT=JSPNT
END IF
END IF
C
100 CONTINUE
110 CONTINUE
C
WRITE(6,120) KEL,KPNT,KSPNT,STRESS
120 FORMAT(5X,'ELEMENT',I5,5X,'POINT',I4,5X,'SECTION POINT',
1 I4,5X,'STRESS',1PG12.3)
STOP
END 
```

See Chapter 15, “Postprocessing of Abaqus Results,” of the Abaqus Example Problems Guide for additional examples.

# Writing a file in the results file format

Subroutine DBFILW can be used to write a file in the format of the Abaqus results file to modify the file information or to add additional information before postprocessing. Subroutine INITPF must be called before DBFILW.

The file will be written to Fortran unit 9 with the extension .fin. Unit 9 is opened by Abaqus when DBFILW is first called; your coding must not open or redefine unit 9, but you must ensure that Fortran unit 9 is saved following the job.

“Joining data from multiple results files and converting file format: FJOIN,” Section 15.1.2 of the Abaqus Example Problems Guide, contains an example of the use of subroutine DBFILW to merge specific records of discontinuous results files. Continuous results files are required for postprocessing purposes; if you have written a results file during an analysis and a new results file on the restart of the analysis without making the files continuous, they must be made continuous before postprocessing. “Analysis of a cantilever subject to earthquake motion,” Section 1.4.13 of the Abaqus Benchmarks Guide, also shows the use of DBFILW for merging results files. Alternatively, results files can be merged using the abaqus append utility as described in “Joining results (.fil) files,” Section 3.2.15.

The DBFILW subroutine can also be used to convert the Abaqus results file from binary to ASCII format to transfer it from one computer system to another. Alternatively, this conversion can be done automatically by using the abaqus ascfil execution procedure, as described in “ASCII translation of results (.fil) files,” Section 3.2.14.
