Who Should Read this Guide
Introducing Aspen Plus
Related Documentation
Technical Support
1 Writing and Using User Models
Fortran User Models
Moving to the Intel Fortran Compiler
Configuring Aspen Plus for Your Fortran Compiler
Writing Fortran User Models
Dynamic Linking Overview
Compiling Fortran User Models
Supplying Fortran User Models to Aspen Plus
Creating Fortran Shared Libraries Using Asplink
Writing DLOPT Files
Specifying DLOPT Files for Aspen Plus Runs
Modifying Asplink
2 Calling the Flash Utility
Flash Utility FLSH_FLASH
Flash Types
RETN
IRETN
Flash Results Stored in COMMON
3 Calling Physical Property Monitors
Calling Sequences for Thermodynamic Property Monitors
Calling Sequences for Transport Property Monitors
Calling Sequences for Nonconventional Property Monitors
Calling Sequences for Thermodynamic and Transport Property Monitors with Derivatives
Argument Descriptions for Physical Property Monitors
IDX
IDXNC
Y, X, X1, X2, Z, CS
CAT
KDIAG
Calculation Codes
Phases
CALPRP Results
Derivative Limit
Calling Sequences for PROP-SET Property Monitors
Argument Descriptions for PROP-SET Property Monitors
PROPS
PHASES
KWDBS
XPCLV
KULAB
CALUPP Results
4 Calling Utility Subroutines
Packing Utilities
Report Header Utility
ISECT
Aspen Plus Error Handler
Terminal File Writer Utility
Utilities to Determine Component Index
Component Index Example
Plex Offset Utility
Other Utility
The Fortran WRITE Statement
5 User Unit Operation Models
User and User2 Fortran Models
Stream Structure and Calculation Sequence
NBOPST
Size
Integer and Real Parameters
Local Work Arrays
Simulation Control Guidelines
History File
Terminal File
Report File
Control Panel
Incorporating Excel Worksheets into User2
Extending the User2 Concept
Excel File Name
Fortran Routine
The Excel Template
Tables
The Helper Functions
The Hook Functions
The Sample Workbook
Creating or Converting Your Own Excel Models
Converting an Existing Excel Model
Customizing the Fortran Code
Accessing User2 Parameters
Accessing parameters by position
Accessing parameters by name
Other Helper Functions
User3 Fortran Models
Stream Structure and Calculation Sequence
NBOPST
USER3 Data Classifications
Size
Variable Types and Mapping Concepts
Scaling and Units Conversion in USER3
K Codes
Sparsity Example
Creating a USER3 Model
Additional User3 Subroutines
Physical Property Call Primitives
Low-Level Physical Property Subroutines
Other Useful USER3 Utilities
Component Object Models (COM)
6 User Physical Property Models
User Models for Conventional Properties
Principal User Model Subroutines for Conventional Properties
IDX
Partial Component Index Vectors
X, Y, Z
Real and Integer Work Areas
KOP
KDIAG
Calculation Codes
Range of Applicability
Units of Measurement
Global Physical Property Constants
User K-Value
Electrolyte Calculations
Model-Specific Parameters for Conventional Properties
Universal Constant Names and Definitions
Naming Model-Specific Parameters
Multiple Data Sets
Parameter Retrieval
User Models for Nonconventional Properties
Using Component Attributes
Principal User Model Subroutines for Nonconventional Properties
IDXNC
Real and Integer Work Areas
KOP
KDIAG
Range of Applicability
Model-Specific Parameters for Nonconventional Properties
Naming Model-Specific Parameters
Accessing Component Attributes
7 User Properties for Property Sets
Subroutine to Define a User Property
IDX
NBOPST, KDIAG, and KPDIAG
Phase Codes
Passing Phase Fraction and Composition Information
Component Order Independence
8 User Stream Report
Stream Report Subroutine
Stream Classes
PRPVAL
NRPT
Component IDs
9 User Blending Subroutines for Petroleum Properties
Petroleum Blending Subroutine
IDX
10 User Subroutines for Sizing and Costing
Sizing Model Subroutine
Integer and Real Parameters
ICSIZ
IRSLT
Costing Model Subroutine
11 User Kinetics Subroutines
Kinetics Subroutine for USER Reaction Type
Integer and Real Parameters
NBOPST
Local Work Arrays
Calling Model Type
STOIC
Reaction Rates
Component Attributes and Substream PSD
Component Fluxes in RPlug
COMMON RPLG_RPLUGI
COMMON RPLG_RPLUGR
COMMON RBTC_RBATI
COMMON RBTC_RBATR
COMMON RCST_RCSTRI
COMMON RXN_RCSTRR
COMMON PRSR_PRESRI
COMMON PRSR_PRESRR
COMMON RXN_DISTI
COMMON RXN_DISTR
COMMON RXN_RPROPS
User Kinetics Subroutine for REAC-DIST Reaction Type
NBOPST
STOIC
12 User Pressure Drop Subroutine for RPlug
RPlug Pressure Drop Subroutine
NBOPST
Integer and Real Parameters
Pressure
Local Work Arrays
COMMON RPLG_RPLUGI
COMMON RPLG_RPLUGR
13 User Heat Transfer Subroutine for RPlug
RPlug Heat Transfer Subroutine
NBOPST
Integer and Real Parameters
Local Work Arrays
COMMON RPLG_RPLUGI
COMMON RPLG_RPLUGR
Heat Flux Terms
14 User Heat Transfer Subroutine for RBatch
RBatch Heat Transfer Subroutine
Stream Structure
NBOPST
Integer and Real Parameters
Local Work Arrays
15 User Subroutines for RYield
RYield User Subroutines
NBOPST
Integer and Real Parameters
Local Work Arrays
16 User KLL Subroutines
User KLL Subroutine
IDX
X1, X2
NBOPST, KDIAG
Component Sequence Number
Integer and Real Parameters
17 User Pressure Drop Subroutine for Pipes and HeatX
User Pressure Drop Subroutine
User Liquid Holdup Subroutine
Integer and Real Parameters
NBOPST
Local Work Arrays
KFLASH
18 User Heat Transfer Subroutine for HeatX
HeatX Heat Transfer Subroutine
NBOPST
Integer and Real Parameters
Local Work Arrays
Equipment Specification Arrays
19 User LMTD Correction Factor Subroutine for HeatX
HeatX LMTD Correction Factor Subroutine
NBOPST
Integer and Real Parameters
Local Work Arrays
Equipment Specification Arrays
20 User Subroutines for RateSep
RateSep Binary Mass Transfer Coefficient Subroutine
Integer and Real Parameters
RateSep Heat Transfer Coefficient Subroutine
Integer and Real Parameters
RateSep Interfacial Area Subroutine
Integer and Real Parameters
RateSep Holdup Subroutine
Integer and Real Parameters
Packing Parameters
Packing Type Specification
Packing Vendor Specification
Packing Material Specification
Packing Size Specification
21 User Tray and Packing Subroutines
User Tray Sizing/Rating Subroutine
RTPAR
RTRSLT
User Packing Sizing/Rating Subroutine
Integer and Real Parameters
22 User Performance Curves Subroutine for Compr/MCompr
Performance Curve Subroutine
Integer and Real Parameters
Local Work Arrays
23 User Solubility Subroutine for Crystallizer
Crystallizer Solubility Subroutine
IDX
Integer and Real Parameters
Local Work Arrays
24 User Performance Curves Subroutine for Pump
Pump Performance Curve Subroutine
Integer and Real Parameters
Local Work Arrays
25 User Subroutines for Petroleum Property Methods
26 COM Unit Operation Interfaces
Components and Interfaces
Unit Interfaces
ICapeUnit Interface Methods
ICapeUtilities Interface Method
Port Interfaces
ICapeUnitPort Interface Methods
Parameter Interfaces
ICapeParameter
ICapeParameterSpec
ICapeRealParameterSpec Interface Methods
ICapeIntegerParameterSpec Interface Methods
ICapeOptionParameterSpec Interface Methods
Collection Interfaces
ICapeCollection Interface Methods
ICapeIdentification Interface Methods
ComponentDescription
ComponentName
Aspen Plus Interfaces
IATCapeXDiagnostic Interface Methods
IATCapeXRealParameterSpec
Methods for Equation-Oriented Simulation
ICapeNumericESO
ICapeNumericUnstructuredMatrix
ICapeNumericMatrix
ICapeUnitPortVariables
Installation of COM Unit Operations
Distributing COM Models to Users
Adding Compiled COM Models to the Aspen Plus Model Library
Version Compatibility for Visual Basic COM Models
Uninstalling COM Models
27 CAPE-OPEN COM Thermodynamic Interfaces
Material Templates
Material Objects
ICapeThermoMaterialObject Interface Methods
Physical Property System
ICapeThermoSystem Interface Methods
Property Package
Importing and Exporting
ICapeThermoPropertyPackage Interface Methods
Registration of CAPE-OPEN Components
28 COM Interface for Updating Oil Characterizations and Petroleum Properties
IAssayUpdate Interface Methods
Modifying Petroleum Properties During a Simulation
Recalculate Characterization Parameters
Additional IAssayUpdate Interface Methods
A Common Blocks and Accessing Component Data
Aspen Plus Common Blocks
COMMON DMS_ERROUT
COMMON DMS_FLSCOM
COMMON DMS_NCOMP
COMMON DMS_PLEX
COMMON PPUTL_PPGLOB
COMMON DMS_RGLOB
COMMON DMS_RPTGLB
COMMON DMS_STWKWK
COMMON SHS_STWORK
COMMON PPEXEC_USER
Accessing Component Data Using the Plex
FRMULA
IDSCC
IDSNCC
IDXNCC
Paramname
Using IPOFF3
Accessing Component Data using PPUTL_GETPARAM
B User Subroutine Templates and Examples
C Stream Structure
Substream MIXED
Substream CISOLID
Substream NC