msc.access user's manual version 2005.1

222
MSC.Access User's Manual Version 2005.1

Upload: msc-nastran-beginner

Post on 08-Nov-2014

171 views

Category:

Documents


16 download

DESCRIPTION

MSC.Access is a complete set of FORTRAN callable utility subroutines delivered as an object library. These routines enable pre- and post- processor software developers to write communications subroutines that enhance the interaction between their applications and the results generated by MSC.Nastran.

TRANSCRIPT

Page 1: MSC.Access User's Manual Version 2005.1

MSC.Access User's Manual

Version 2005.1

Page 2: MSC.Access User's Manual Version 2005.1

Worldwide Webwww.mscsoftware.com

DisclaimerMSC.Software Corporation reserves the right to make changes in specifications and other information contained in this document without prior notice.

The concepts, methods, and examples presented in this text are for illustrative and educational purposes only, and are not intended to be exhaustive or to apply to any particular engineering problem or design. MSC.Software Corporation assumes no liability or responsibility to any person or company for direct or indirect damages resulting from the use of any information contained herein.

User Documentation: Copyright 2011 MSC.Software Corporation. Printed in U.S.A. All Rights Reserved.

This notice shall be marked on any reproduction of this documentation, in whole or in part. Any reproduction or distribution of this document, in whole or in part, without the prior written consent of MSC.Software Corporation is prohibited.

This software may contain certain third-party software that is protected by copyright and licensed from MSC.Software suppliers. PCGLSS 6.0, Copyright © 1992-2005, Computational Applications and System Integration Inc. All rights reserved. PCGLSS 6.0 is licensed from Computational Applications and System Integration Inc. METIS is copyrighted by the regents of the University of Minnesota. A copy of the METIS product documentation is included with this installation. Please see “A Fast and High Quality Multilevel Scheme for Partitioning Irregular Graphs”. George Karypis and Vipin Kumar. SIAM Journal on Scientific Computing, Vol. 20, No. 1, pp. 359-392, 1999.

MSC, MD, Dytran, Marc, MSC Nastran, MD Nastran, Patran, the MSC.Software corporate logo, OpenFSI and Simulating Reality are trademarks or registered trademarks of the MSC.Software Corporation in the United States and/or other countries.

NASTRAN is a registered trademark of NASA. LS-DYNA is a trademark or registered trademark of Livermore Software Technology Corporation. All other trademarks are the property of their respective owners.

Revision 0. November 8, 2011NA:2012:Z:Z:Z:DC-REL

CorporateMSC.Software Corporation2 MacArthur PlaceSanta Ana, CA 92707Telephone: (800) 345-2078FAX: (714) 784-4056

EuropeMSC.Software GmbHAm Moosfeld 1381829 MunichGERMANYTelephone: (49) (89) 43 19 87 0Fax: (49) (89) 43 61 71 6

Asia PacificMSC.Software Japan Ltd.Shinjuku First West 8F23-7 Nishi Shinjuku1-Chome, Shinjuku-Ku Tokyo 160-0023, JAPANTelephone: 0120-924-832 (toll free, Japan only)Mobile phone: 03-6911-1222Fax: (81) (3)-6911-1201

Page 3: MSC.Access User's Manual Version 2005.1

C H A P T E R 1 ............................................................................................................. 7

MSC ACCESS ........................................................................................................................ 71.1 Definitions and Acronyms ........................................................................................ 81.2 Compatibility with Previous Versions of MSC.Access .......................................... 101.3 DBC Module Differences ....................................................................................... 101.4 Data base Input/Output (DBIO) Differences .......................................................... 111.5 Timeline for MSC.Access and MSC.Nastran Releases .......................................... 121.6 Interrelationships of MSC.Access with Other MSC Products ................................ 141.6.1 MSC.Nastran Version 66 and Subsequent Versions ............................................... 15

C H A P T E R 2 ................................................................................................................. 17DATA BASE CONVERTER MODULE (DBC) ............................................................. 172.1 DBC Functions ........................................................................................................ 172.1.1 DBC Default Values ............................................................................................... 172.1.1.1 MSC.Patran and MSC/XL Data Base Type ............................................................ 182.1.1.2 No DBCDIAG Output ............................................................................................ 182.1.1.3 Updating of Pre-Existing Data Blocks .................................................................... 182.1.1.4 Single Data Base ..................................................................................................... 182.1.2 Overriding DBC Default Values ............................................................................. 192.1.2.1 MSC/GRASP Data base Type ................................................................................ 192.1.2.2 DBCDIAG Output .................................................................................................. 192.1.2.3 No Overwrites on Pre-Existing Data Blocks .......................................................... 202.1.2.4 Multiple Data Bases ................................................................................................ 202.1.2.5 Data Bases with Increased Block Size .................................................................... 21

C H A P T E R 3 ....................................................................................................................... 23CREATION OF MSC.Access DATA BASES .................................................................... 233.1 Conversion Using MSC.Nastran Version 66 and Subsequent Versions .................. 233.2 Conversion Using Pre-MSC.Nastran Version 66 .................................................... 24

C H A P T E R 4 ....................................................................................................................... 25CONTENTS OF MSC.ACCESS DATA BASE ................................................................... 254.1 Data Base Dictionary Entry Description .................................................................. 264.1.1 Object Name Field ................................................................................................... 274.1.2 Project Attribute Field .............................................................................................. 294.1.3 Superelement/Part Attribute Field .......................................................................... 294.1.4 Path Attribute Field .................................................................................................. 304.1.5 SUBCASE Attribute Field ....................................................................................... 314.1.6 Set Attribute Field .................................................................................................... 314.1.7 Approach Attribute Field ......................................................................................... 324.1.8 Design Cycle Attribute Field ................................................................................... 334.1.9 P-element Iteration Attribute Field .......................................................................... 334.1.10 Undefined Fields ...................................................................................................... 344.1.11 Determination of Object Attribute Usage ................................................................ 344.2 Data Block Description ............................................................................................ 344.2.1 Keyed Entries ........................................................................................................... 354.2.2 Sequential Object ..................................................................................................... 35

Page 4: MSC.Access User's Manual Version 2005.1

C H A P T E R 5 ....................................................................................................................... 37ACCESSING THE DATA BASE ............................................................................................ 375.1 General Access Data Base Processing ......................................................................... 375.1.1 Data Base Validation ................................................................................................... 385.1.2 Access Block (Page) Allocation .................................................................................. 385.1.3 OPEN/CLOSE of an Access Data Base ....................................................................... 415.1.3.1 Opening the Access Data Base .................................................................................... 415.1.3.2 Closing the Access Data Base ...................................................................................... 415.1.4 Access Data Base Dictionary Inquiry .......................................................................... 415.1.4.1 DICENT ....................................................................................................................... 425.1.4.2 DICPRT ....................................................................................................................... 435.1.4.3 DICRDR ...................................................................................................................... 435.1.5 Allocating/Freeing Access Objects .............................................................................. 445.1.5.1 Opening Access Objects .............................................................................................. 445.1.5.2 Closing Access Objects ................................................................................................ 445.1.6 Working Access Object Entries ................................................................................... 445.1.6.1 Object Entry Read Procedures ..................................................................................... 445.1.6.2 Object Entry Write Procedures .................................................................................... 465.1.6.3 Object Entry Deletion .................................................................................................. 465.1.7 Access Purge Object .................................................................................................... 465.2 Access Data Base Usage Hints .................................................................................... 465.2.1 Memory Allocation ...................................................................................................... 465.2.2 MSC.Nastran Type Definition ..................................................................................... 485.2.3 Element Data Recovery Naming Conventions ............................................................ 485.2.4 External versus Internal Object Access Keys .............................................................. 495.2.5 Access Object Capacity Limit Derivations .................................................................. 505.2.6 Special Key Usage ....................................................................................................... 525.2.7 Special Number Usage ................................................................................................. 525.3.2 The CBAR, CBEAM, and CGAP Objects ................................................................... 53

C H A P T E R 6 ................................................................................................................ 54INTERFACING TO THE DATA DEFINITION LANGUAGE (DDL) ................................... 546.1 The Data Definition Language ..................................................................................... 546.1.1 The MSC.Access Data Definition Language ............................................................... 546.2 Starting the Data Definition Language Interface ......................................................... 556.2.1 Labeled Commons Populated by Function MSCLDD ................................................. 566.2.2 Usage of Word Index Functions .................................................................................. 576.3 Version Matching DDL to Analysis Data Base ........................................................... 576.4 Using Attribute Definition Functions .......................................................................... 596.5 DDL Control Entry Description ................................................................................... 596.5.1 Working with the DDL control entry ........................................................................... 606.5.1 Working with an Object Entry DDL ............................................................................ 606.5 Working with the DDL and an Object/Entry ............................................................... 62

C H A P T E R 7 ................................................................................................................ 64MSC.ACCESS UTILITIES AND DEMONSTRATION PROGRAMS .................................. 647.1 The MSC.Access Sampler Demonstration Program (SMPLR) ................................... 64

Page 5: MSC.Access User's Manual Version 2005.1

7.2 The Demonstration Program DEMO1 ......................................................................... 657.3 The Demonstration Program DEMO2 ......................................................................... 657.4 The Data Definition Language Program DDLADD .................................................... 667.5 The Data Definition Language Demonstration Program DDLPRT ............................. 667.6 The Data Definition Language Demonstration Program DDLQRY ............................ 677.7 Utility Program QAPRT .............................................................................................. 687.8 Utility Program RECEIVE ........................................................................................... 697.9 Utility Program TRANS .............................................................................................. 70

C H A P T E R 8 ......................................................................................................... 75MSC.Access PROTOTYPE PROGRAM ................................................................................. 758.1 Flow Diagram of the MSC.Access Prototype Program SMPLR ................................. 758.2 Subroutine Components of the SMPLR Program ........................................................ 818.3 Common Blocks used by the SMPLR Program ........................................................... 82

C H A P T E R 9 ......................................................................................................... 83ADDITIONAL MSC.ACCESS EXAMPLE PROGRAMS (DEMO1 and DEMO2) ............... 839.1 General Description of the Two Demo Programs ........................................................ 839.2 DEMO1 Example Program .......................................................................................... 859.2.1 Driver Program for Example 1 (DEMO1) ................................................................... 869.2.2 Data base Inquiry for Example 1 (DATINT) ............................................................... 889.2.3 Grid Point Data in Example 1 (PRTGRD) .................................................................. 929.2.4 Element Connectivity in Example 1 (PRTCON) ......................................................... 949.2.5 Displacement Data in Example 1 (PRTDIS) ............................................................... 959.2.6 Grid Point Stress Data in Example 1 (PRTGPS) ......................................................... 979.3 DEMO2 Example Program .......................................................................................... 999.3.1 Driver Program for Example 2 (DEMO2) ................................................................. 1009.3.2 Data base Inquiry and Grid Point Data for Example 2 (PRTGRD) ........................... 1029.3.3 Data base Inquiry and Connectivity Data for Example 2 (PRTCON) ....................... 1049.3.4 Data base Inquiry and Displacement Data for Example 2 (PRTDIS) ........................ 1069.3.5 Data base Inquiry and Grid Point Stress Data for Example 2 (PRTGPS) ................. 108

C H A P T E R 10 ....................................................................................................... 111USAGE OF DATA DEFINITION LANGUAGE INTERFACE ............................................ 11110.1 High Level Interactive Driver .................................................................................... 11110.2 Support Subroutine to Process DDL Schema ............................................................ 119

C H A P T E R 11 ....................................................................................................... 127INSTALLATION .................................................................................................................... 12711.1 Building DDLPRT ..................................................................................................... 12711.2 Building DDLQRY .................................................................................................... 12811.3 Building DEMO1 ....................................................................................................... 12811.4 Building DEMO2 ....................................................................................................... 12811.5 Building SMPLR ....................................................................................................... 129

APPENDIX A ............................................................................................................................ 130MSC.Access DBIO SUBROUTINE DESCRIPTIONS .......................................................... 130DBIO Subroutine Descriptions ............................................................................................... 130Subroutine Name: CLOSGR .................................................................................................. 130Subroutine Name: DBCLOS .................................................................................................. 131

Page 6: MSC.Access User's Manual Version 2005.1

Subroutine Name: DBOPEN ................................................................................................. 132Subroutine Name: DBFLOC .................................................................................................. 134Subroutine Name: DBVALD ................................................................................................. 135Subroutine Name: DELREC .................................................................................................. 136Subroutine Name: DICENT ................................................................................................... 137Subroutine Name: DICPRT ................................................................................................... 138Subroutine Name: DICRDR .................................................................................................. 139Subroutine Name: GRPURG ................................................................................................. 140Subroutine Name: OPENC .................................................................................................... 142Subroutine Name: OPENR .................................................................................................... 143Subroutine Name: OPENS ..................................................................................................... 144Subroutine Name: OPENSQ .................................................................................................. 145Subroutine Name: PAGCFGX PAGCFG ............................................................................. 146Subroutine Name: PAGCLR .................................................................................................. 148Subroutine Name: READBS .................................................................................................. 149Subroutine Name: READR .................................................................................................... 150Subroutine Name: READS .................................................................................................... 151Subroutine Name: READSQ ................................................................................................. 153Subroutine Name: WRITEI ................................................................................................... 155Subroutine Name: WRITES .................................................................................................. 156BLOCK DATA DESCRIPTIONS .......................................................................................... 157Block Data: DBCTBD ........................................................................................................... 157Differences from MSC.Nastran .............................................................................................. 158Block Data: GRSPBD ............................................................................................................. 161ADDITIONAL DBIO INFORMATION ................................................................................. 162Additional DBIO Subroutines ................................................................................................. 162Labeled Common Blocks ........................................................................................................ 163

APPENDIX B ............................................................................................................................ 164MSC.Access DATA DEFINTION LANAGUAGE INTERFACE ROUTINES .................... 164Subroutine Name: MSCASM ................................................................................................ 165Function Name: MSCDLC .................................................................................................... 166Function Name: MSCKTY .................................................................................................... 167Function Name: MSCLDD ..................................................................................................... 168Function Name: MSCLRA .................................................................................................... 169Function Name: MSCLRT ...................................................................................................... 170Subroutine Name: MSCPIV .................................................................................................. 171Subroutine Name: MSCPPT .................................................................................................. 172Subroutine Name: MSCPTX ................................................................................................. 173Function Name: MSCRTI ....................................................................................................... 174Function Name: MSCTFA ..................................................................................................... 175Function Name: MSCVDR .................................................................................................... 176Function Name: MSCXII ....................................................................................................... 177Function Name: MSCXTI ...................................................................................................... 178Static COMMON Specifications ............................................................................................ 179Additional Support Routines .................................................................................................. 179

Page 7: MSC.Access User's Manual Version 2005.1

APPENDIX C ............................................................................................................................ 180INPUT/OUTPUT EXAMPLES .......................................................................................... 180

C.1 MSC.Nastran Input Data ................................................................................................. 180C.2 MSC.Nastran Output ....................................................................................................... 184C.3 MSC.Access SMPLR Program Output ........................................................................... 202

Page 8: MSC.Access User's Manual Version 2005.1

C H A P T E R 1

MSC ACCESS

MSC.Access is a complete set of FORTRAN callable utility subroutines delivered as an object library. These routines enable pre- and post- processor software developers to write communications subroutines that enhance the interaction between their applications and the results generated by MSC.Nastran. The finite element database generated by MSC.Nastran cannot, until recently, be read directly by an application program. Without MSC.Access, application programs must either read through one or more of the sequential files generated or create their own database. Either process can be very slow. Starting with 2001 of MSC.Nastran an offering known as the MSC.Nastran Toolkit is available as an alternative method. MSC.Access provides a way for interfacing pre- and post- processing applications with MSC.Nastran. End users of either a packaged Computer Aided Design (CAD) systems or a system developed in-house application can quickly and efficiently search and query the finite element analysis information from MSC.Nastran. The inter-relationship of MSC.Access with other MSC products is given in Section 1.6. This release of MSC.Access includes major enhancements to the original product. These enhancements are:

1. Improved performance of the data base input/output access capability 2. Improved data base dictionary content descriptions 3. Increased types of analysis results data available 4. Increased number of MSC.Nastran elements supported 5. Larger data base size, number of databases and logical files allowed 6. Heterogeneous data access between big and little endian machines

Not all of these changes are invisible to the user. Consequently, some modification to existing application codes may be necessary to take full advantage of these improvements.

Page 9: MSC.Access User's Manual Version 2005.1

1.1 Definitions and Acronyms This section shall specify definitions and acronyms applicable to this document Other definition of terms will occur when first utilized. Attribute A dictionary entry qualifier for a data base object BBBT Binary Blocked Balanced Tree Method of entry key storage Database The MSC.Access database unless otherwise stated DBC Database Conversion module used by MSC.Nastran to create MSC.Access database DBIO MSC.Access Database Input/Output subroutine library DDL Data Definition Language used by MSC.Access DDLADD Utility Program used to add/replace DDL to an existing Access database DDLPRT Utility Program used to format the DDL into a printable file DDLQRY Utility Program used to interactive recover information from DDL DEMO1,2 Demonstration programs illustrating programming conventions DMAP Direct Matrix Abstraction Program or process language for MSC.Nastran DRA Direct Results Access that represents the MSC.Patran interface FMS File Management Section of MSC.Nastran Data Deck HK Hiearchial Key Method of entry key storage MSC/GRASP MSC interactive product during the 1981-1986 timeframe MSC.Patran MSC current interactive product MSC/XL MSC interactive product during the 1985-1992 timeframe NDDL MSC.Nastran Data Definition Language Object A data component of the MSC.Access database OUTPUT2 An alternate means for exporting information from MSC.Nastran in binary format QAPRT Utility Program used to format objects contained in database RECEIVE Utility Program used for translate neutral format to binary database SMPLR Demonstration program illustrating programming conventions

Page 10: MSC.Access User's Manual Version 2005.1

TRANS Utility Program used to translate database to machine neutral format

Page 11: MSC.Access User's Manual Version 2005.1

1.2 Compatibility with Previous Versions of MSC.Access This document is intended for use with MSC.Nastran Version 2001.5 and later. Applications written with previous versions of MSC.Access should continue to function provided that they are not re-linked with the new object library. The database created by the DBC module using the PROGRAM='GRASP' option is the same as those created by stand-alone DBCs of pre- MSC.Nastran 66 versions. To re-link old applications with the new object library, it is necessary to incorporate the new paging pool control subroutines PAGCFGX and the database and data definition validation function DBVALD into the application. Old databases can be read and processed by the re-linked system. To utilize the machine heterogeneous features, refer to the DDLADD program in the utility chapter. The MSC/DBC executable program for converting MSC.Nastran databases is no longer being delivered. Starting with Version 66, the database converter (DBC) has become a module of MSC.Nastran and has been included within all MSC.Nastran solution sequences. DMAP writers should review the DBC module and its capabilities in Section 5.4 of the MSC.Nastran Users Manual and the DMAP Module Dictionary. The Data Base Input/Output (DBIO) subroutines have added buffer pooling techniques to relieve memory management. The write facilities of DBIO from Version 2 have been restored since Version 6. 1.3 DBC Module Differences As a module, DBC does not require any output blocks to be permanently stored in the MSC.Nastran database. The conversion occurs as MSC.Nastran executes. As a result, the MSC.Nastran database contains fewer data blocks and may be smaller. Post-processing activity can begin as soon as MSC.Nastran execution is completed and the conversion is verified (i.e., there are no FATAL messages from the DBC module or other MSC.Nastran modules). DBC was added to MSC.Nastran using the same philosophy of output data recovery as other output modules. It does not stop MSC.Nastran execution when an error is detected. Instead an error message is printed and control returned to the Executive System. When a fatal DBC error occurs, further Executive System calls to the DBC module are not executed. The module allows modification of old data and appendage of new information to the database. In previous releases of the stand-alone data base converter, the database, once created, could not be modified. The only error occurs when inconsistent model structure is detected. Care should be exercised when updating old databases that modifications do not compromise the existing data model. It is normally safe to update databases for additional solution results.

Page 12: MSC.Access User's Manual Version 2005.1

The DBC module is capable of translating the MSC.Nastran information using three different sets of criteria. The default conversion is the modern and expanded MSC/XL structure, but an alternate form for p-elements is designated XLPLUS. Optionally, the MSC/GRASP structure corresponding to prior field systems is available but is not compatible with the BBBT Method of storage of keyed objects. These structures should not be mixed in the same database. MSC.Patran, via the DRA tool, uses the MSC/XL conversion format. To take advantage of the expanded object structure, current applications of the product need to be modified. Additional information about the DBC module will be found in Chapter 2 of this manual. 1.4 Data base Input/Output (DBIO) Differences The Data Base Input/Output (DBIO) Facility has been enhanced. For most existing applications, only minor changes are necessary to use the new DBIO library routines. Database buffer pooling or caching has been introduced into the DBIO routines. This relieves the application of some memory management issues and decisions that arise when using the DBIO open routines. When the pages are faulted to the device, heterogeneous device characteristics are noted and the page information is translated to the targets native mode. It is up to the MSC.Access user to determine if the database is locally present or accessed across the network. The argument lists of the open subroutines were retained from the previous versions for compatibility. The positional requirements are the same in all MSC.Access releases. However, in this release, the application's input for the buffer areas is ignored. The former buffer areas can be reduced to arrays containing one element to save space or replaced with a constant zero since the input location is unused. In the 2005.1 release, either one or two positions have been re-activated to allow for the BBBT Method of storage of keyed entries. The application concern is related to the open APIs since values will be returned to the argument locations. A new database validation function has been provided. The DBVALD subroutine attempt to verify that the physical file is truly and MSC.Access database. It returns to the application the block size that was used to create the database, the Data Definition Language (DDL) version and control information, and whether the database is native to the current machine. Only databases that contain DDL can be processed between heterogeneous machine environments. It should be noted that information can be exchanged between big and little endian machine of 32-bit word lengths. A new subroutine PAGCFGX has been introduced which replaces the older PAGCFG. This subroutine must be called before any other DBIO processing routine is called other than DBVALD as previously mentioned. This call, used to establish the buffer pooling area, should be done only once during an application program's execution. When all databases have been

Page 13: MSC.Access User's Manual Version 2005.1

closed, the application can re-execute the routine to change the memory configurations, however, ALL databases MUST BE CLOSED

1.5 Timeline for MSC.Access and MSC.Nastran Releases

. See application interface section for further discussion.

Both MSC.Nastran and MSC.Access have been released over multiple decades and have serviced numerous application products. Unlike MSC.Nastran, the database produced by MSC.Access have little sensitivity to timeline or release synchronization if both the MSC.Nastran defaults were utilized and application programs were developed using the conventions specified within this manual. Briefly, the timeline, version synchronization and product correlation follows: Year MSC.Access

Release MSC.Nastran

Release Product / Object or Approach Availability

1982 1 62 MSC/GRASP introduced Basic geometry, loads, results such as displacements, stresses & forces Supported Linear Statics, Real Eigenvalues, Transient & Frequency solutions

1983 2 63 Support of Nonlinear Solutions 1985 3 65 Support of scalar and mass elements 1989 4 66 MSC/XL and MSC/EMAS introduced

Added multi-project/path database model Installed access factor into database objects Added Design Optimization object attribute Support of Complex Eigenvalues Solutions Support of QUADR and TRIAR objects

1991 6 67 Introduced Acoustic elements and results Added Grid and Element Discontinuity objects Supported Buckling Analysis Approach

1994 68 68 Aries formats incorporated using MSC/XL object definition Changed Element Discontinuity Object Definitions Added QUAD4 corner technology Added support for Heat Transfer and p-element technology More Design Optimization Response data supported

1996 69 69 Support for Part Superelements Added BUSH and Absorber elements p-element supported expanded to include Beam & Shell elements

1997 70 70 MSC.Patran integrated via DRA interface Added support for Enthalpy and MPC forces objects

1998 70.5 70.5 Added BUSH1D element support 1998 70.6 70.6 MSC/EMAS support discontinued

Added support for Aeroelastic Model Added Hyperelastic elements and Plain Strain Surface Recovery

1999 70.7 70.7 Minor corrections to object attributes 2001 2001.0 2001.0 Added Element Kinetic Energy and Energy Loss per Cycle objects

WELD element supported 2001 2001.0.5 2001.0.5 Allow database to have variable block sizes

Allow databases to operate hetrogeneously between platforms 2004 2004 2004 DMIG/GENEL limited element support

Composite output for QUADR/TRIAR elements MAXMIN (grid) responses (MAXMIN (element) missing)

Page 14: MSC.Access User's Manual Version 2005.1

Superelement Map object support identical/mirrors Scaled Response Spectra Analysis

2005 2005 2005 BBBT Storage Method Added to Keyed Objects FASTNER element supported SEAM weld element supported Cyclic Symmetry Attribute added to object definitions

Page 15: MSC.Access User's Manual Version 2005.1

1.6 Interrelationships of MSC.Access with Other MSC Products The relationship between the various MSC products is illustrated in section 1.6.1. Please note that the CAD/CAM systems have legal permission to redistribute the sections of MSC.Access used. There is no additional cost to mutual clients.

Page 16: MSC.Access User's Manual Version 2005.1

1.6.1 MSC.Nastran Version 66 and Subsequent Versions

Machine 1 Environment

Bulk Data

MSC.Nastran

DBC Module

MSC.Nastran Data Base

MSC.Access Database

MSC.Trans Transmitter

Neutral File

MSC.Patran

MSC Utilities QAPRT DDLQRY DDLADD

MSC.Access CAD/CAM Systems

User Developed Applications

Machine 2 Environment Neutral File

MSC.Trans Receiver

Inter-Machine Transport

MSC.Access Database

MSC.Patran

MSC.Access

User Developed Applications

CAD/CAM Systems

Path indicates inter-machine access of information between big and little endian platforms of 32-bit word lengths. (2001+)

MSC.Nastran Toolkit

Page 17: MSC.Access User's Manual Version 2005.1
Page 18: MSC.Access User's Manual Version 2005.1

C H A P T E R 2

DATABASE CONVERTER MODULE (DBC) The purpose of the database converter is to transform data stored in MSC.Nastran internal formats into a relationally keyed database for use with MSC.Patran, MSC/XL, MSC.Access or user written applications. Prior to MSC.Nastran Version 66, DBC was a stand-alone program delivered with several MSC products. Since Version 66, DBC has been incorporated as a DMAP module within MSC.Nastran. The DBC module is partially described in the MSC.Nastran Quick Reference Guide Version 2005, Section 6 and the MSC.Nastan DMAP Module Dictionary. It is also described in the MSC.Nastran Programmers Manual. 2.1 DBC Functions Beginning with MSC.Nastran Version 62, conditional DMAP statements were executed whenever an MSC.Nastran Bulk Data Section contained a PARAM,POST,0 entry. Prior to Version 66, this entry made the DBSTORE module place key input and output data blocks on the MSC.Nastran database. Beginning in Version 66, this entry controls the execution of the DBC DMAP module. The DBC module is conceptually similar to the OUTPUT2 module. The major difference is the data structure created. The description of the data structure associated with this manual are more complete than that found in the MSC.Nastran Users Manual. Like OUTPUT2, DBC has many defaults to simplify its usage. DMAP Alters are not required to position the DBC module. Its locations have been pre-determined within all supported solution sequences. However, the usage of DMAP alters to place or eliminate module calls are not prohibited, and, when used, can save additional information not normally processed to the database. 2.1.1 DBC Default Values The DBC module has four user class parameters for users to control conversion and output. Default values are supplied and may be overwritten by the user. The defaults for the DBC module are described in the following sections.

Page 19: MSC.Access User's Manual Version 2005.1

2.1.1.1 MSC.Patran and MSC/XL Data Base Type MSC.Patran as well as Aries share a MSC/XL translation for the MSC.Nastran data blocks. The DBC module will automatically switch to an XLPLUS format when p-elements are detected in the problem. The MSC/XL format is compatible with many third party vendors. The default value can also be explicitly set by the parameter entry:

PARAM,DBCCONV,XL An additional way to change the parameter value for an installation rather than for a local user is to reset the parameter in the Nastran Data Definition Language (NDDL) and re-compile the delivery databases for the solution sequences. This method can be also used to place site dependant DMAP changes for the DBC module execution as well as to add user parameters to the DBC translation parameter qualifiers. 2.1.1.2 No DBCDIAG Output No diagnostic information about the conversion is output unless error conditions are encountered. DBCDIAGs are discussed in greater detail in Section 2.1.2.2. The default value is explicitly set by the parameter entry:

PARAM,DBCDIAG,0 2.1.1.3 Updating of Pre-Existing Data Blocks Pre-existing data objects are updated with each DBC module call. The default value is explicitly set by the parameter entry:

PARAM,DBCOVWRT,YES 2.1.1.4 Single Data Base All translated MSC.Nastran geometric, load, and post information is stored on one physical database, which defaults to the logical reference 40. Starting with Version 2001.0.5, the physical I/O has been replaced by C language implementations and these enumerated values serve as reference values only. The default value is explicitly set by the parameter entry:

PARAM,GEOMU,40 The other parameters used to control data base output POSTU and LOADU default to the value used by GEOMU.

Page 20: MSC.Access User's Manual Version 2005.1

2.1.1.5 Keyed Object Translation When Keyed Objects are created the default storage concept is the older HK Method to best meet legacy issues in the field. When the object capacity is estimated to exceed the HK Method of storage, the method is automatically swithed to the BBBT Method of storage. The setting to this default is established by: NASTRAN DBCFACT=2 2.1.2 Overriding DBC Default Values The DBC default values may be overridden by the proper PARAM entries. They can be used as Case Control or Bulk Data parameters, as required. 2.1.2.1 MSC/GRASP Data base Type The older MSC/GRASP format is requested by the parameter entry:

PARAM,DBCCONV,GRASP Other valid translation names are XLPLUS and ARIES and are automatically switched when p-element presence is detected. 2.1.2.2 DBCDIAG Output DBCDIAG output is requested by assigning a value or sum of values from the following table to the parameter entry.

PARAM,DBCDIAG,value

Value

DBCDIAG Description

0

No diagnostics

1

Grid object entries

2

Element connection object entries

4

Internal module begin messages

8

Internal module statistics

16

Internal module CPU time, and begin message in performance summary table

32

DBC database dictionary entries

Page 21: MSC.Access User's Manual Version 2005.1

64

Messages for null MSC.Nastran logical file connections

128

Store diagnostics when geometry updates occur

256

Store grid point factor objects for data recovery

512

Suppress grid point stress objects for data recovery

534288

Block manager information

1048576

Dictionary splitting information

2097152

Dump cache for fatal conditions

Combinations of DBCDIAGs are created by summing the corresponding values. A DBCDIAG of value of 5 will echo both grid object entries and the internal module begin message on the standard output device. 2.1.2.3 No Overwrites on Pre-Existing Data Blocks Existing data base objects are not overwritten when the following parameter entry is used.

PARAM,DBCOVWRT,NO This usage increments the PROJECT object of the database. New data is then accumulated using the new version (project) as a dictionary attributes as described in Section 4.1. 2.1.2.4 Multiple Data Bases The database information can be partitioned into several physical data bases by adding PARAM and FMS entries. The DBC module supports three separate output parameters per module execution. They are controlled by the following parameter entries.

PARAM,GEOMU,gunit Geometric information Default gunit = 40 PARAM,LOADU,lunit Static load information Default lunit = GEOMU PARAM,POSTU,punit Data Recovery information Default punit = GEOMU

The use of multiple output databases from the DBC module requires the definition of additional files assignments by the ASSIGN command in the MSC.Nastran File Management Section (FMS). The most basic file concept provided partitions MSC.Nastran information into three physical databases. These logical partitions are for pre-processing data, external loads environment data and post-processing information.

Page 22: MSC.Access User's Manual Version 2005.1

As an example, post-processing data can be separated from the primary database by adding the following:

1. In the FMS Section:

ASSIGN DBC = ‘MODEL.PDB’, STATUS=NEW, UNIT=41

The name assigned to the DBC output file is machine dependent.

2. In the Bulk Data Section:

PARAM,POSTU,41 If the PARAM,POSTU,xx command is placed in the Case Control Section, then it can be used to put individual superelement information in different physical databases. The STATUS keyword on the ASSIGN statement can be OLD for any DBC-generated database. This allows modification to and overwriting of existing data base objects. The old versus new databases will be detected and verified by the DBVALD and DBOPEN routines of the MSC.Access DBIO library. 2.1.2.5 Databases with Increased Block Size

Starting with MSC.Nastran 2001.0.5, the MSC.Access database can now employ block sizes larger than 1024 words. The theoretical capacity established in MSC.Nastran V62 was to allow for databases of 68GB and object sizes of 1GB. These limits have lasted over twenty years without modification. However, during the V70 release series, it has been observed that models and computer capacity have gotten significantly larger. Therefore, the variable block size feature has been activated, along with the DBVALD function to assist the application in determining the current database blocking. Functional usage will be explained later along with block size implications concerning the database and object sizing. The MSC.Nastran 2001.0.5 release allows for a default block size minimum of 1024 words (database block size of previous releases), to minimize impact on field systems, and can be expanded to 65,536 words. The upper limit allows for database sizes of 568TB and object sizes of 281GB. As an example of setting a 4096 word block size is the following:

In the FMS Section:

ASSIGN DBC = ‘MODEL.XDB’ STATUS=NEW UNIT=40 RECL=4096 It should be noted that each database assignment can utilize a different block size and that block size assignments are ignored when the database is old. An example of multiple assignments appears as:

Page 23: MSC.Access User's Manual Version 2005.1

In the FMS Section:

ASSIGN DBC = ‘MODEL.GDB’ STATUS=NEW UNIT=40 RECL=1024 ASSIGN DBC = ‘MODEL.LDB’ STATUS=NEW UNIT=41 RECL=2048 ASSIGN DBC = ‘MODEL.PDB’ STATUS=NEW UNIT=42 RECL=4096

With the additional PARAM entries in the Case Control or Bulk Data Sections. 2.1.2.6 Selecting HK or BBBT Storage Methods The storage method selection has been defined in a more global manner than the parameter utilization illustrated in the previous sections. The selection is specified on the NASTRAN entry and applies to all DBC module executions during the problem solution. The placement on the NASTRAN entry allows for either site or user RC file settings that may be most appropriate for the installation. The BBBT Method conceptually has no limit to the number of entries within an object other than the size of the key which is currently assumed to be a 32 bit integer value. The default, as mentioned before is to use the older HK Method both for legacy and the space associated with the key relocation tables. The values for DBCFACT are presented in the following table.

DBCFACT Description 0 HK Method, XL Dynamic Factors 1 HK Method, GRASP Static Factors 2 HK Default, BBBT Auto, XL Dynamic Factors 3 HK Default, BBBT Auto, GRASP Static Factors 4 BBBT Method Only

Page 24: MSC.Access User's Manual Version 2005.1

C H A P T E R 3

CREATION OF MSC.Access DATABASES The key to the efficient access provided by MSC.Nastran analysis data is the creation of a direct access database. Beginning with MSC.Nastran Version 66, this database is created and/or updated with calls to the DBC DMAP module. Earlier versions of MSC.Nastran used a stand-alone database converter (DBC) program delivered as part of the MSC/ACCESS delivery tape. 3.1 Conversion Using MSC.Nastran Version 66 and Subsequent Versions The database conversion is performed by the DBC module. The DBC module has been incorporated into all solution sequences of MSC.Nastran. Consequently, more information is available for pre- and post-processing. The activation of the DBC module requires the PARAM POST be added to your MSC.Nastran run.

PARAM,POST,0 $ Activates DBC calls and stores data on the direct-access database

The next PARAM to consider is the entry controlling translation that can be entered once and is unchangeable during the MSC.Nastran execution.

PARAM,DBCCONV,{x} $ Program Conversion Request $ Default value, if not specified is XL (MSC/XL) $ Allowable values are XL , GRASP, and XLPLUS

The DBCCONV parameter is unnecessary for MSC.Patran conversions. On request, the DBC module can also output geometric information, static load information, and post-processing information to separate database files. In addition, superelement information can be stored with one or more superelement identifications per database. For MSC.Nastran release prior to Version 66, the Rigid Format Solution Sequences 3, 24, and 25, the Alters RF3D66, RF24D66, and RF25D66, respectively, are required.

Page 25: MSC.Access User's Manual Version 2005.1

3.2 Conversion Using Pre-MSC.Nastran Version 66 The database conversion is performed by a stand-alone DBC program. Only the data necessary to support MSC/GRASP Version 3 is accessible. The MSC.Nastran run requires the addition of one PARAM Bulk Data entry,

PARAM,POST,0 $ Stores data on MSC.Nastran data base or in the case of Rigid Format Solution Sequences 3, 24, and 25, the Alters RF3D66, RF24D66, and RF25D66, respectively, are required.

Page 26: MSC.Access User's Manual Version 2005.1

C H A P T E R 4

CONTENTS OF MSC.ACCESS DATABASE

Generally, the databases created for MSC.Access are smaller than those corresponding MSC.Nastran. This occurs because matrices and other special MSC.Nastran data blocks are not included. The types of objects that are contained in the database are: Model Geometry Data

1. Grid Locations and Coordinate Systems 2. Element Descriptions (Connection, Material, and Property) 3. Rigid Elements 4. DMIG Matrix Descriptions less the coefficients

Model Loads and Restraint Data

1. Loads Information (Forces, Moments, Pressures) 2. Restraint Data (Single Point Restraints and Enforced Displacements)

Solution Results

1. Nodal Data a. Deformations b. Velocities c. Accelerations d. Applied Loads e. Constraint Forces ( Single and Multi ) f. Grid Point (Stresses, Force, Strain) g. Temperatures

2. Element Data

a. Linear, Nonlinear, Hyperelastic and Composite Stresses b. Linear, Nonlinear and Composite Strains c. Linear Forces d. Acoustic Pressures e. Strain and Kinetic Energy f. Energy Loss per Cycle g. Gradients and Fluxes h. Discontinuities

Problem Summary

1. Model Control Information

Page 27: MSC.Access User's Manual Version 2005.1

2. Superelement enumeration 3. SUBCASE Identifications 4. Modal Information 5. Time List 6. Frequency List 7. Eigenvalue Tables 8. Buckling Table 9. P-element Error Values 10. Design History and Response Information 11. Transformational Matrices for either grids or superelements

The databases are intended to contain only relevant processing data. If the MSC.Nastran model is a large model with hundreds of SUBCASEs or thousands of transient time steps, the MSC.Access database will also be large. Since these databases are intended for interactive use, the results may be extremely costly in the area of performance. Therefore, output should be judiciously selected for data recovery of the MSC.Nastran execution. For a given SUBCASE or time step, the best operational procedure is the selection of the ALL output option in MSC.Nastran. If this is not done, there may be difficulty in understanding the results. Based on needs and budget, it must be determined how much data should be saved for interactive usage. One strategy is to request a minimal set on the first execution to determine if a plausible solution has been produced. If it is plausible, the restart capability of MSC.Nastran can then be used to obtain a larger output set at a reduced cost compared to re-analyzing the total model. 4.1 Database Dictionary Entry Description All objects are accessed using the same concepts. The objects are named and referenced using the following 12-field dictionary entry format. The first two words of the dictionary entry are referred to as the object name and the remaining fields are the attributes that make the object a distinct quantity on the database when merged across all possible variations.

Field

Word Descriptor

Format

1-2

Object Name

2A4

3

Project Number

I

4

Superelement Identification

I

5

Path Number

I

6

SUBCASE Identification

I

7

Set Identification

I

Page 28: MSC.Access User's Manual Version 2005.1

8 Solution Approach Code I

9 Design Cycle

I

10

p-Iteration Cycle

I

11

Cyclic Symmetry Segment

I

12

Unused

I

The data description of all objects can be obtained via the utility programs DDLQRY and DDLPRT as described in the MSC.Nastran Release Guide or Chapter 7, MSC.Access Utility and Demonstration Programs. 4.1.1 Object Name Field The first two fields of the dictionary entry comprising the object name are stored in MSC.Nastran BCD format. BCD format is defined as four Hollerith characters that must be left justified, blank-filled, and then stored in a machine word. BCD format is not equivalent to character format as defined by FORTRAN 77 and later standards. Examples of these constructions can be found in the NAMEBD block data routine delivered as part of the MSC.Access SMPLR prototype program. The object name fields for each database dictionary entry are either derived from MSC.Nastran Case Control or Bulk Data mnemonics or constructed from logical combinations of block data control routines delivered with the MSC.Access system. For example, the object names PSHELL, PSOLID, GRID, and FORCE were derived from Bulk Data entries. These objects contain information from the Bulk Data user input. These objects generally, but not always, appear in a different order than the Bulk Data input or the MSC.Nastran data block. In some cases, the information is supplemented. For example, the GRIDX object contains both input and basic geometric locations. In contrast, for the SPCl object, each constrained grid point has its own entry. Examples of Case Control derived names are displacements (DISP), loads (LOAD), and velocities (VELO). The first four characters of the output request are used to derive the first word of the database dictionary entry. The second word of the dictionary entry is derived from the type of data recovered; that is, real (R), complex in real/imaginary form (RI), or complex in magnitude/phase form (MP). Examples of possible objects derived from displacements are:

DISPR DISPRI DISPMP The block data method is used to control element objects. The labeled common /DBCTAl/

Page 29: MSC.Access User's Manual Version 2005.1

(block data DBCTBD) serves the same purpose as and has a similar construction to the /GPTAl/ common found in MSC.Nastran. Information about each element is found in this block. The information stored includes, but is not limited to:

1. Element generic names, like QUAD4. 2. Number of vertices supported by the element. 3. Length of various objects entries. 4. Three characters used to support element output recovery.

The initial character of an object output recovery is determined by the specific information being recovered. The initial character is drawn from the following list:

C Connectivity Information E Element Strain Data Recovery F Element Force Data Recovery G Composite Element Laminate Strain Data Recovery H Hyperelastic Element Stress Recovery N Element Nonlinear Data Recovery S Element Stress Data Recovery T Composite Element Laminate Stress Data Recovery U Element Strain Energy Data Recovery B Element Energy Loss per Cycle K Element Kinetic Energy

Then the three characters for the specific element are appended to the starting character. The object name is also appended with the type of data recovery in the same way as objects created from Case Control mnemonics. For example, the following objects contain connectivity and data recovery information for the QUAD4 element. The identifier for the QUAD4 element is QD4, as per the DBCTA1 block data.

Generic Output Category

Object Name(s)

Connectivity Data

CQD4

Strain Recovery Data

EQD4MP EQD4R EQD4RI

Composite Strain Recovery Data

GQD4R

Force Recovery Data

FQD4MP FQD4R FQD4RI

Nonlinear Recovery Data

NQD4R

Stress Recovery Data

SQD4MP SQD4R SQD4RI

Composite Stress Recovery Data

TQD4R

Strain Energy Recovery Data

UQD4R

Page 30: MSC.Access User's Manual Version 2005.1

The order items in the element output data recovery entry is the same as the recovery order from OUTPUT2 or listed in the MSC.Nastran standard output. 4.1.2 Project Attribute Field This is the third field and is an integer variable. For use with the MSC/GRASP program, the project enumeration must be set to zero. This field addresses project or multiple model instances on the database. In prior releases this capability, although available to several MSC products, was not fully implemented by the DBC software. This resulted in single model databases with the project enumeration equal to zero. Since MSC.Nastran Version 66, the multiple project capability is fully functional. The current definition of the project attribute has been tied to the MSC.Nastran concepts of project and version since the Version 66 release. All valid project enumerated values are contained in the PROJECT object, which is accessed like any other keyed object. The last ten fields of the PROJECT dictionary entry are all zeros since global database characteristics are derived from it’s content. The second word of the PROJECT object entry when accessed by the key “-1", indicates the number of valid projects on the database. The remaining entries can be read using the read-sequential (READSQ) or keyed (READR) methods to recover the valid project keys, MSC.Nastran version number, and MSC.Nastran project description are derived from the PROJ entry of the FMS section. An application interface could be used to prompt the user for selection to establish the domain of model/project version selection. The MSC.Access prototype program SMPLR currently extracts all valid project attributes and uses the list to control the outer processing loop. 4.1.3 Superelement/Part Attribute Field This is the fourth field and is an integer variable. This field corresponds to the MSC.Nastran superelement or part enumeration. For residual structures, or models not using superelement or part technology, the identification is set to zero. The valid list of superelement/part enumeration for a project can be recovered from the SUPERS object. To access the SUPERS sequential object, a valid PROJECT identification must be placed

Page 31: MSC.Access User's Manual Version 2005.1

in field 3 and zeros for the remaining nine fields of its dictionary entry is required. When the SUPERS object does not exist, a value of zero, representing the residual structure can be safely assumed for the dictionary superelement/part attribute. 4.1.4 Path Attribute Field This is the fifth field and is an integer variable. For use with the MSC/GRASP format, the path attribute must be set to zero. The MSC.Access format uses a different definition of data blocks than MSC.Nastran Version 66. Each MSC.Nastran data block has an open-ended list of qualifiers defined in the MSC.Nastran Data Definition Language (NDDL). Instead of using this qualifier list that leads to a rapid increase in the number of data blocks, a qualifier related to a DBC module parameter DBCPATH has been defined. The DBCPATH parameter is user modifiable within the NDDL definition since Version 66 of MSC.Nastran. The default path qualifiers for the DBCPATH parameter are MODEL, SOLID, and HIGHQUAL. The SEID qualifier, also defined in MSC.Nastran, is eliminated from the path qualifiers and merged into the superelement list (SUPERS) object during database conversion. The data base PATHQUAL keyed object is used to obtain the valid list of qualifiers for the database. The special key “-1" returns the maximum key value used. The remaining records can be recovered using the read-sequential method to extract the list of valid qualifiers. The PATHQUAL object is an example of an open-ended list of information. The entries in the PATHQUAL object contain, as a key, the valid path enumerated values used to further qualify database objects. The remaining items are keys into the PATHLINK, the object that contains a singly linked list of MSC.Nastran qualifier names. To determine the qualifier names associated with each path attribute key, the PATHLINK object must be processed. The initial PATHLINK entry key is followed by a possible key for the next entry in the chained PATHLINK object. This field (key), like the initial PATHQUAL value (key), links to the next qualifier in the PATHLlNK object until the value of zero is encountered. The zero value (key) terminates the chain. The remaining values of a PATHLINK entry are the MSC.Nastran BCD qualifier name (formatted by the BCD technique), the qualifier data type, the number of values associated with the qualifier, and a pointer to the appropriate path value object. At present, a qualifier can have a maximum of twenty associated values. The correct path value object is determined by the qualifier data type and selected from the PATHBCD (BCD), PATHINT (integer), PATHLOG (logical), PATHRD (real double), and PATHRS (real single) objects. The appropriate object(s) is opened and its value(s) are extracted as required.

Page 32: MSC.Access User's Manual Version 2005.1

This technique is illustrated in the MSC.Access prototype software SMPLR. This elaborate structure is required to maintain an open-ended list and to produce consistent data structures for the MSC.TRANS product. 4.1.5 SUBCASE Attribute Field This is the sixth field and is an integer variable. This field corresponds to the MSC.Nastran Case Control Section definition of SUBCASE structure. Since SUBCASE is normally associated with output data recovery, some objects such as element connectivity and grid location objects, do not use this attribute to qualify their dictionary entries. To access such objects, this dictionary entry field must be set to zero. The output data recovery objects have been grouped into two general classes, for grids and elements. A grid object presence has indicators stored in the SUBGRID object. The element recovery object indicators are stored in the SUBELEM object. These two object entries are keyed by the SUBCASE identification and contain items indicating possible data presence. The item value, when non-zero, indicates data presence for the output class and indicates the format for data recovery. The sign of the item indicates the SORT requested by MSC.Nastran Case Control, where positive is SORT 1 and negative indicates SORT 2. For example, SUBGRID entry field two indicates a displacement data recovery request. A zero value indicates no output data was requested. Negative values indicate user-requested SORT2 output. The format of the output request for nonzero entries is its absolute value modulo 3. That is, the values are as follows:

1. One corresponds to real data recovery 2. Two corresponds to complex, real/imaginary data recovery 3. Three corresponds to complex, magnitude/phase data recovery formats

These values help define the BCD value of word two of the object dictionary entry. Magnitudes greater than three, specifically four through six, indicate modal data recovery historically used by MSC/GRASP. Any of the output formats requested from the DBC module produces a parallel object SUBCTITL having the same SUBCASE key. The entries contain the information from the TITLE, SUBTITLE and LABEL statements found in the Case Control Section. This objects merges SUBCASE request from both the grid and element request sections. 4.1.6 Set Attribute Field

This is the seventh field and is an integer variable.

Page 33: MSC.Access User's Manual Version 2005.1

This field in the database dictionary entry corresponds to the set definitions for the model structure. The Set identification attribute is required whenever grid point stress or strain surface or volume data recovery is requested. For example, the GPSOLID and GPSTRESS objects of MSC/GRASP require a Volume Set Identification and Surface Set Identification, respectively. Other valid Set identifications are found for the SlD object, which controls the formation of the loading environment. Some objects requiring field seven are FORCE, MOMENT, SPC, and SPC1. Objects, such as SURFSET or VOLSET, are used during post-processing of grid point stress / strain data recovery to determine applicable Set enumerated values. 4.1.7 Approach Attribute Field This is the eighth field and is an integer variable. For use with the MSC/GRASP translation, the approach attribute must be set to zero. This field defines the MSC.Nastran analysis solution for data recovery and is created only during other MSC.Access conversions. There is no global database object indicating valid approach enumerated values for a given project/path. A sample technique using the DICENT routine was incorporated into the MSC.Access prototype program SMPLR to extract this information. The prototype program extracts all approach values. User applications can be written to filter approach values at project or path levels. The valid approach enumerated values are:

Approach

Corresponding MSC.Nastran Solution Class

0

Old data recovery (refer to prototype for "best guess" logic)

1

Static Data Recovery

2

Transient Response Data Recovery

3

Frequency Response Data Recovery

4

Real Eigenvalue Data Recovery

5

Nonlinear Statics Data Recovery

6

Buckling Data Recovery

7

Complex Eigenvalue Data Recovery

8 Aerodynamic Analysis 21

Scaled Response Spectra Analysis - ABS

Page 34: MSC.Access User's Manual Version 2005.1

22

Scaled Response Spectra Analysis - SRSS

23 Scaled Response Spectra Analysis – NRL

24 Scaled Response Spectra Analysis –NRL0

In pre-version 66 MSC.Nastran releases, the approach codes 7 thru 24 were not defined. Nonlinear transient data recovery (i.e., Solution 99/129) is typed transient and the nonlinear element data recovery formats are used for element data recovery. 4.1.8 Design Cycle Attribute Field This is the ninth field and is an integer variable. This field in the database dictionary entry corresponds to the design optimization index within MSC.Nastran. For use with the MSC/GRASP format, the design cycle attribute must be set to zero. The enumerated values for the Design Cycle Attribute can be obtained from the DHIST object once the path/project attributes have been determined. When the DHIST object does not exist on the database, the attribute value must be zero for the dictionary entry field. 4.1.9 P-element Iteration Attribute Field This is the tenth field and is an integer variable. This field in the database dictionary entry corresponds to the p-element iteration cycle within MSC.Nastran where data recovery is possible. For use with the MSC/GRASP format, the p-element attribute must be set to zero. The enumerated values for the p-element Iteration Attribute can be obtained from the PINFO object once the project, path and design cycle attribute values have been set. When the PINFO object does not exist on the database, the attribute value must be zero for the dictionary entry field. 4.1.10 Cyclic Symmetry Segment Field

This is the eleventh field and is an integer variable. This field in the database dictionary entry corresponds to the segment number in Cyclic Symmetry Analysis. For use with the MSC/GRASP format, the segment attribute must be set to zero.

Page 35: MSC.Access User's Manual Version 2005.1

The number of segments can be recovered from the CYCLIC object when combined with the type of Cyclic Symmetry Analysis employed in the solution. The CYSEGM object entry key also can be used to delineate the range and values for this attribute. 4.1.11 Undefined Field

The twelfth field is an integer value. It is currently unused by MSC.Access and are reserved by MSC for future development. This field must be set to zero. 4.1.12 Determination of Object Attribute Usage

Before MSC.Access 2001.0.5, the assignment of correct attribute to an object dictionary entry was the responsibility of the application developer. Utility programs such as DDLQRY and DDLPRT provide listings of the object’s control information as well as the MSC.Nastran data block(s) the content was derived from. Since the data model is constantly evolving based upon development into new analysis regions, the setting of these attributes is subject to change. Starting with version 2001.0.5, new DBIO library routines have been provided to interface and return to the application developer the information concerning the object characteristic, similar to the techniques employed by DDLQRY and DDLPRT. These interfaces rely on the presence of the Data Definition Language database, which in itself, is also a MSC/Access database. This DDL database has been part of the MSC.Nastran delivery since Version 68 release. Refer to Chapter 6, Interfacing to the Data Definition Language, for details concerning it usage in an application. 4.2 Data Block Description The direct-access database contains two types of objects. The first is a keyed object and the second is a sequential object. Both types of objects contain information stored in “tabular” format. Each row in a table is called an ENTRY and each column is called an ITEM. The first item is called a KEY. For example, consider the object GRIDX derived from the sample input description and described in the following table.

EXTID

INTID

Basic Coordinates

Coordinate Systems

Constraint

Flags

Input Systems

X

Y

Z

Input

Output

T1

T2

T3

120

1

5.0

2.5

0.0

0

0

23456

5.0

2.5

0.0

121

2

2.5

5.0

0.0

0

0

13456

2.5

5.0

0.0

Page 36: MSC.Access User's Manual Version 2005.1

10000 3 1.0 0.0 0.0 1 1 3456 1.0 0.0 0.0 10001

4

1.1

0.0

0.0

1

1

3456

1.1

0.0

0.0

The previous object has four entries and eleven items. The EXTID is the key for each entry. 4.2.1 Keyed Entries The keyed entries may also be referred to as random, random-access, relational, or keyed records. A key allows access to entries by referencing the key item within the object entry. The format for a keyed object is:

KEY1 ITEM1 . . . . . . ITEMm . . . KEYn ITEM1 . . . . . . ITEM

1. Open data block - DBFLOC, OPENC, OPENR, or OPENSQ 2. Read from data block - READBS, READR, or READSQ 3. Write to data block - WRITEI 4. Close data block - CLOSGR

m where m = the record length of the given entry

n = the number of entries in the object The GRIDX object discussed in Section 4.2 is an example of a keyed object. Combinations of the following routines, which are documented in Appendix A, must be used to process all keyed objects.

4.2.2 Sequential Object Sequential objects may also be referred to as sequential or sequential-access objects within this document. All terms are equivalent. A sequential object contains a simple list of data. Access to this data is by sequential techniques. The general format of a sequential object is:

ITEMl ... ITEM

The following routines documented in Appendix A must be used to process all sequential

n where n = the number of items in the object. The SUPERS object is an example of a sequential object.

Page 37: MSC.Access User's Manual Version 2005.1

objects.

1. Open data block - DBFLOC, OPENS 2. Read from data block - READS 3. Write to data block - WRITES 4. Close data block - CLOSGR

Page 38: MSC.Access User's Manual Version 2005.1

C H A P T E R 5

ACCESSING THE DATABASE

Communication with the database is through the set of access utility subroutines found in the delivered DBIO object library and described in Appendix A. These utilities support the following functions:

1. Database Validation 2. Block Management 3. Open/Close of a Database 4. Database Inquiry 5. Allocate/Free Database Objects 6. Read/Write Operations 7. Purge Objects

These functions are structured as illustrated by the following diagram. 5.1 General Access Database Processing Processing of the Access database generally follows the steps described below. These functions are described in greater detail later in this section. The routines are described in greater detail in Appendix A.

Data Base ValidationBlock ( Page ) Management

OPEN Data Base

CLOSE Data Base

Data Base Inquiry

Purge Object

Allocate Object

Free Object

READ ObjectWRITE Object

Data Base ValidationBlock ( Page ) Management

OPEN Data Base

CLOSE Data Base

Data Base Inquiry

Purge Object

Allocate Object

Free Object

READ ObjectWRITE Object

Page 39: MSC.Access User's Manual Version 2005.1

1. Database is validated by DBVALD and the maximum block size determined. 2. The block (paging) pool is established by a call to PAGCFGX (PAGCFG). 3. Open the database(s) using DBOPEN. WHILE (information is available) 4. Allocate the object(s) to be processed using OPENC, OPENR, OPENS, or OPENSQ. 5. Process information. 6. Free the object(s) using CLOSGR. END WHILE 7. Close the database(s) with a call to DBCLOS. The processing of information in Step five denotes application data processing. This includes (but is not limited to) the following: 1. Reading object entry information with READBS, READR, READS, and READSQ 2. Deleting entries from keyed objects using DELREC 3. Dictionary processing with DICENT, DICPRT, and DICRDR 4. Purging of objects with GRPURG 5. Writing object entry information with WRITEI and WRITES 5.1.1 Database Validation New with the 2001 version of MSC.Access is a database validation routine. Given the database name and length, the routine determines if the database exists from an operating system perspective from the path provided. When the name exists, the file is opened and information is checked to validate that the file reference is indeed a MSC.Access database. When confirmed, the routine returns to the invoking function the database block size in words, the Data Definition version and size stamp, and an indication whether the database is native to the application computer platform. It is now the application responsibility to accumulate and determine the maximum block size and data definition size stamp prior to calling the Block Allocation function. Databases created before the 2001.0.5 MSC.Nastran release were created with a block size of 1024 words and no Data Definition Language is contained within the MSC.Access database. Old MSC.Access databases are completely functional with this release of the DBIO library, provided they are resident upon the native platform. Also, existing applications should be able to function with the default setting of MSC.Nastran, provided that extremely large data base are not encountered. 5.1.2 Access Block (Page) Allocation Two routines PAGCFGX ( PAGCFG V4 –2001.0.3 ) and PAGCLR are provided for memory management. Both of these routines were added to the DBIO library for the Version 4 release of MSC.Access and have been available since Version 66 of MSC.Nastran. Prior to Version 4 of MSC.Access, block management was the responsibility of the application programmer. Several problems were encountered by application programmer block management. Among these were:

Page 40: MSC.Access User's Manual Version 2005.1

1. Difficulty in tracking memory assignments between subroutines 2. Poor utilization of memory 3. Poor performance in database dictionary processing because every object processed

required dictionary access 4. Random entry usage caused unnecessary physical I/O.

5. Higher physical I/O leading to increased cpu time spent in function. To alleviate these problems, a memory management scheme was added to the DBIO library using block pooling and dictionary caching. Both are initiated with an application's call to the routine PAGCFGX (PAGCFG). As a result, all DBIO routines have been changed to communicate through the labeled common DBCXXX. Other controls have been added in the SYSFIL labeled common. These, however, should not be used or changed by an application program. The only exception allowed is the first variable of the block when the PAGCFG routine is used. This variable is the FORTRAN unit number used for output error messages. A different value, if a unit other than six is required, must be assigned before calling PAGCFG. The value of six is assigned by the inclusion of the block data routine GRSPBD (V4 –2001.0.3). The PAGCFGX replaces the PAGCFG subroutine starting with Version 2001.0.5. The argument list is similar to the old routine PAGCFG, and indicates the usage algorithm for the memory resource area. The new function also removes the requirement for the application to modify the SYSFIL labeled common and requires additional parameters for the data definition language interface. The example in the call below illustrates the old PAGCFG environment:

CALL PAGCFGX (6,1 ,100000,1024,0,0,0,IRET) the first argument (with a value of 6) indicates the FORTRAN unit for error messages. The second, (with a value of 1) gives the starting position in the memory area allocated by the DBCXXX labeled common area. The value must be a positive, nonzero value. For values greater than one, block management is established at the offset value, and the memory space between one and the offset minus one is reserved for application program use. Conversely, if the size of DBCXXX is larger than 100,000 words, the page pool will not exceed that specification, and space above that index is available for the application. The third argument gives the number of words available beyond the starting value. In this example there are 100,000 words available. This is also the dimension of the array in the DBCXXX labeled common. The minimum value recommended for this argument is 15,000 words when the block size is 1024 words. Refer to 5.2.1, Memory Allocation, for sizing issues of the area for block size greater than 1024 words or when DDL is present. The 15,000 word memory allocation can lead to excessive physical I/O when true random processing of objects is performed and should only be used to process a single database in a linear unloading operation.

Page 41: MSC.Access User's Manual Version 2005.1

This area should be as large as possible especially when multiple databases are processed or when many objects are open simultaneously. The fourth argument is the maximum block size in words for all of the databases. In previous releases it could not exceed the 1024 value. Starting with Version 2001.0.5, the maximum size recommended and enforced by MSC.Nastran is 65,536 words. Past MSC.Access databases created by the DBC module of MSC.Nastran used the 1024 word value for their block space requirements. The use of this value is still strongly advised for legacy issues, but when larger models are processed, the larger block size is necessary. The fifth argument (value 0), indicates that no Data Definition Language (DDL) process area is needed. Databases created before MSC.Nastran 2001.0.5 did not embed DDL into the MSC.Access database, however, the utility program, DDLADD, can embed the version specific DDL and allow for heterogeneous platform processing. The sixth argument (value 0) specifies the use of default values to reserve part of the available block management area for dictionary caching. The current method selected indicates 10% of the pool, or three blocks, is reserved for dictionary caching. This is satisfactory for single database processing. Normally, three or four blocks are required for an effective dictionary cache. For multiple database processing, the application can increase this value beyond ten percent. Two methods are available. The first specifies the number of databases to be processed as a positive argument value. The other specifies the number of blocks to reserve as a negative value. It is the responsibility of the application to determine that the requested space exists within the DBCXXX array bounds. The seventh parameter is an indicator whether any of the database encountered were not native to the current computer platform. Additional memory is allocated for translation operations when the database is not machine native. The last argument IRET is an error return from PAGCFGX. A zero value indicates successful establishment of the block management area. The return of nonzero values, documented in the subroutine descriptions in Appendix A, should cause the application to abort because the block management area could not be established. MSC.Access block management establishes a linked list of information in the control areas defined in DBCXXX. Priorities assigned to blocks before physical I/O has occurred are based on both a last reference criteria and the need to reuse the area. It is important to note that the write and close routines do not cause physical I/O to the database immediately. However, immediate physical I/O can be forced by an application in one of two ways. The first is a call to the DBCLOS routine to close the database from an operating system perspective. The closure of the database requires the completion of all outstanding output requests before the database can be closed. The second option is to use the PAGCLR routine. The PAGCLR call requests the completion of all outstanding output requests to all open databases. This option allows continuation of the application from the point of the PAGCLR

Page 42: MSC.Access User's Manual Version 2005.1

call. 5.1.3 OPEN/CLOSE of an Access Database This action must occur before object activity commences. The DBOPEN function also performs individual DBVALD operations to ensure that the block manager configuration has been properly specified and the database open designation is correct. The DBCLOS operation ensures that the database control information is valid on the physical file before a system release operation is performed. 5.1.3.1 Opening the Access Database The open function is performed by the DBOPEN procedure. An additional argument was added to the DBOPEN routine at the Version 4 release. It is used to pass a character variable representing the database name using the operating system file naming conventions. This information is passed as the FILE= parameter to the OPEN statement of FORTRAN 77. This simplifies the connection between physical database and logical database references for operating systems that do not support indirect file assignment in their job control languages. The number of simultaneously open logical databases allowed has been increased to thirty at the Version 2001.0.5 release from the twenty allowed in prior releases. The basic I/O operations are now performed by C Language interfaces to allow for large addressing on all platforms. 5.1.3.2 Closing the Access Database It is the responsibility of the application program to close the database when it is no longer required. Although FORTRAN closes all open files before terminating, the contents of a database that is closed as a result of the execution of a FORTRAN STOP or END statement is incomplete and unpredictable. The database dictionary is not updated and all outstanding output requests are lost. The close function is performed by the DBCLOS procedure. The functions of DBCLOS are as follows:

1. Process all outstanding output requests to the database(s) with a PAGCLR call. 2. Update the database dictionary. 3. Return scratch blocks assigned to the database for reuse. 4. Close the database. 5. De-link the database from the block manager and re-establish any block linkages.

5.1.4 Access Database Dictionary Inquiry Three procedures are provided to query the contents of the database: DICENT, DICPRT, and

Page 43: MSC.Access User's Manual Version 2005.1

DICRDR. 5.1.4.1 DICENT DICENT recovers the information stored in the database dictionary sorted in ascending order for each entry. DICENT returns optional database global information in the following format for versions before 2001.0.5.

DATA BASE BLOCK SIZE ================== 1024 NUMBER OF ALLOCATED DISK BLOCKS====== 100000 NUMBER OF UNUSED BLOCKS ============== 99853 NUMBER OF USED BLOCKS ================ 147 START OF DEAD BLOCK CHAIN ============= 0 BLOCK NUMBER OF DICTIONARY PI ========= 2 NUMBER OF FILES ON THE DATA BASE ====== 48 LAST ASSIGNED INTERNAL FILE NUMBER ==== 48 BLOCK NUMBER OF FIRST DICTIONARY DB === 3 NUMBER OF DICTIONARY DATA BLOCKS ===== 2 NUMBER OF DICTIONARY PI BLOCKS ======== 1 BLOCK NUMBER OF FIRST DICTIONARY SI === 4 FORTRAN UNIT ASSOCIATED TO DATA BASE == 40 DATA BASE OPEN MODE FLAG ============== 2 LENGTH OF DATA BLOCK NAMES =========== 12 LENGTH OF DICTIONARY ENTRY (IN WORDS) = 12 TOTAL DICTIONARY ENTRY LENGTH ======== 24 OFFSET POINTER FOR DICTIONARY BUFFERS = 1

After version 2001.0.5, additional information concerning the Data Definition Language used and the location of the data base has been included.

DATA BASE BLOCK SIZE ================== 1024 NUMBER OF ALLOCATED DISK BLOCKS ======= 16777215 NUMBER OF UNUSED BLOCKS =============== 16777119 NUMBER OF USED BLOCKS ================= 96 START OF DEAD BLOCK CHAIN ============= 0 BLOCK NUMBER OF DICTIONARY PI ========= 2 NUMBER OF FILES ON THE DATA BASE ====== 32 LAST ASSIGNED INTERNAL FILE NUMBER ==== 32 BLOCK NUMBER OF FIRST DICTIONARY DB === 3 NUMBER OF DICTIONARY DATA BLOCKS ====== 1 NUMBER OF DICTIONARY SI BLOCKS ======== 1 BLOCK NUMBER OF FIRST DICTIONARY SI === 4 FORTRAN UNIT ASSOCIATED TO DATA BASE == 40 DATA DEFINITION LANGUAGE VERSION ====== 0 DATA DEFINITION LANGUAGE CODES ======== 0 DATA BASE OPEN MODE FLAG ============== 1 BLOCK CONVERSION FLAG ================= 0 LENGTH OF DATA BLOCK NAMES ============ 12 LENGTH OF DICTIONARY ENTRY (IN WORDS) = 12 TOTAL DICTIONARY ENTRY LENGTH ========= 24

Page 44: MSC.Access User's Manual Version 2005.1

5.1.4.2 DICPRT DICPRT prints the database control values as DICENT does above as well as the individual dictionary entries on the default output file. DICPRT prints the dictionary entries in the format shown below.

CQD4 1 0 1 0 0 0 0 0 0 0 13 1 39 40 12 85 1 42 1 1 42 40

EDGE 0 0 0 0 0 0 0 0 0 0

16 2 0 48 0 0 0 198 199 0 0 48

The first line in each entry represents the twelve-word name as discussed in the data block naming conventions in Section 4.1. For the HK Method: The second line contains the following information:

1. Internal block number 2. Data block format 3. Block number of the primary map for the object 4. Block number of the first data area of the object 5. Number of words per entry, keyed objects only 6. Maximum number of records per block, keyed objects only

The third line contains the following information:

1. Minimum key value, keyed objects only 2. Either number of entries for keyed objects or number of words for sequential objects 3. Number of data blocks 4. Number of secondary index blocks 5. Maximum key value, keyed objects only 6. Block number of the last data block

For the BBBT Method: The second and third lines can be optionally suppressed by the application. 5.1.4.3 DICRDR DICRDR returns the control information for a dictionary entry when the entry exists on the

Page 45: MSC.Access User's Manual Version 2005.1

logical database. 5.1.5 Allocating/Freeing Access Objects 5.1.5.1 Opening Access Objects All objects must be allocated or opened before they can be accessed. Allocations are performed with one of the open procedures. Objects must be allocated with one of the following routines:

OPENC Creates a keyed object OPENR Opens an existing keyed object for update OPENS Opens a sequential object for reading or writing OPENSQ Opens a keyed object for sequential processing

Sequential objects are only opened by the OPENS routine. All data block capabilities are available to sequential objects allocated by OPENS. New keyed objects are created using the OPENC routine. Objects allocated by OPENC may also perform reads from and writes to the object. Existing keyed objects are opened only by the OPENR or OPENSQ routines. All data block capabilities except creation are available. The number of objects that may be open simultaneously has been expanded to thirty at Version 2001.0.5 from the twenty logical files in previous releases. 5.1.5.2 Closing Access Objects When the object is no longer needed, it must be freed in order to reuse its assigned block space. Objects are closed and logical files are freed with the CLOSGR procedure. 5.1.6 Working Access Object Entries The objects found on the Access database occur in two distinct types, keyed objects or sequential objects. Both types may be read from or written to the database. All input/output operations are performed with the read/write procedures. 5.1.6.1 Object Entry Read Procedures The following read procedures are available:

READBS Reads the previous entry based on the current object cursor position. READR Reads an entry based on the key value from a keyed object

Page 46: MSC.Access User's Manual Version 2005.1

READS Reads information from current cursor in a sequential object READSQ Reads the next entry based on the current object cursor position

Page 47: MSC.Access User's Manual Version 2005.1

Sequential objects can only be read by the READS routine. Keyed objects must be read with the READBS, READR, and READSQ routines. 5.1.6.2 Object Entry Write Procedures The following write procedures are available:

WRITEI Inserts or updates entries in a keyed object WRITES Writes to a sequential object from last cursor position.

Sequential objects can only be written with the WRITES routine. Keyed objects can only be written with the WRITEI 5.1.6.3 Object Entry Deletion An entry from a keyed object can be removed by the DELREC procedure. 5.1.7 Access Purge Object An object can be deleted from the database with the GRPURG procedure. Objects being purged cannot be allocated when the purge is attempted. 5.2 Access Database Usage Hints This section contains useful information about the database. Some of it may appear in other sections of this manual. 5.2.1 Memory Allocation With the release of Version 2001.0.5 of MSC.Access the allocation of memory for the DBCXXX labeled common has become more sensitive to application activities and the issues of variable block size and Data Definition Language presence. The heterogeneous machine issues, along with re-conceptualizations of data control handling also cause additional memory considerations. It is now the application responsibility to pass to the configuration procedure PAGCFGX information concerning the database block size and DDL being utilized. Since the application may call this procedure once during the execution, the database(s) being used must be checked prior to the call by using the DBVALD routine when they are perceived to exist. The application accumulates the maximum characteristics and passes theses as input to the PAGCFGX routine. Since FORTRAN is assumed to be the application development environment, the memory allocated to the DBCXXX array area is presumed to be static, or application compile time specified. The area indicated by parameters of PAGCFGX must be large enough to hold control tables, block management segments and DDL information.

Page 48: MSC.Access User's Manual Version 2005.1

The following FORTRAN statements illustrate a conceptual assignment: Integer wrkara,maxbuf,numbuf Parameter ( maxbuf=65535, numbuf=15 ) Parameter ( wrkara=(maxbuf+5)*(numbuf+1)+(5*3)+450) Integer ddlara,noddl,lenddl Parameter ( noddl=2000, lenddl=10000 ) Parameter ( ddlara=noddl*5 + lenddl ) Integer lopenc Parameter ( lopenc=wrkara+ddlara) Integer openc Common /DBCXXX/ openc(lopenc) Since the block size for an MSC.Access database enforced by MSC.Nastran is a minimum of 1024 words to a maximum of 65,636 words, the allocation is based upon the maximum. The remaining unknown for the block work area is the number of blocks to manage. The 15 blocks of the illustration is the minimum for one database operation. One can adjust the number of blocks during the application development using the following considerations. A minimum of three blocks must be available for the database dictionary. When multiple databases are concurrently opened, it is recommended that three blocks be assigned to each dat base to minimized block pooling, however, three is the absolute minimum. The next consideration is the number of objects to be opened concurrently. A safe requirement is again three blocks per object, but a larger number is again recommended when random entry access is being performed. In the above calculation, the numbuf variable is increased by one, to allow for non-native platform operations. The Data Definition Language area is composed of two components. The number of entries and length of the control area. This allocation keeps the entire DDL controls for a database in memory. These controls may switch based upon objects access between databases produced by different MSC.Nastran releases. It is still necessary to allocate space for this area even if the database is native to the platform since write operations embed data controls at the block level. The numbers in the above example, 2,000 entries and 10,000 words for control, exceed all released DDL descriptions and should be adequate for the near future. The DBOPEN routine also validates the specific database needs against the configuration assignment and will issues an error return when insufficient resources are available. It should be also noted in the above example, that the total DBCXXX allocation is to be used by the DBIO service routines. Since the above statements indicate the maximum allocation considerations, the actual memory usage can be adjusted after the call to DBVALD is performed. The same considerations concerning the number of blocks apply, however, the block size and DDL size and platform implications are now known. Assuming one database and existing conditions, the proto code would look like: Call DBVALD (iret,dbname,dbnlen,blksiz,ddlsiz,native) If ( iret.ne.0 ) goto error

Page 49: MSC.Access User's Manual Version 2005.1

Lenw = (blksiz+5)*(numbuf+native) + (MAX(numbuf+native)/10,5)*3 + 450 If ( ddlsiz.ne.0 ) lenw = lenw + ddlara + 200 If ( lenw.gt.lopenc ) goto error Call PAGCFGX (6,1,lenw,blksiz,ddlsiz,0,native,iret) If (iret.ne.0 ) goto error Where dbname is the database name in a character array and dbnlen is the length of the string. Additional assumptions are that numbuf represents the number of blocks desired, as shown above, and that the error message FORTRAN unit is 6. 5.2.2 MSC.Nastran Type Definition The Path/Qualifier object structure requires the type code to be present. The data type is used in the prototype program SMPLR. The type definitions are:

Integer Code

Path Extension

Data Type

1

INT

Integer

2

RS

Real Single Precision

3

BCD

MSC.Nastran BCD

4

RD

Real Double Precision

5

LOG

Logical

The Path Extension is the second field in the dictionary name. Complex single precision maps real single precision numbers into PATHRS and complex double precision maps real double precision numbers into PATHRD. 5.2.3 Element Data Recovery Naming Conventions As discussed earlier, the first word in a database dictionary entry for element output data recovery is a combination of a single character and the information specifying the element type. The following table summarizes the current set of first characters used. They occur in the order used to determine recovery data existence by the SUBELEM object.

Character

Output Recovery Class

S

Element Stress Data Recovery

F

Element Force Data Recovery

Page 50: MSC.Access User's Manual Version 2005.1

N Element Nonlinear Data Recovery

H Element Hyperelastic Stress Data Recovery

E

Element Strain Data Recovery

T

Composite Element Laminate Stress Data Recovery

G

Composite Element Laminate Strain Data Recovery

D

Element Discontinuity Data Recovery

Q

Element Gradient and Flux Data Recovery

U

Element Strain Energy Data Recovery

K

Element Kinetic Energy Data Recovery

B

Element Energy Loss per Cycle Data Recovery

Over fifty percent of the object names in the database are formed with this convention. 5.2.4 External versus Internal Object Access Keys The object data structure can be viewed either as a one key table for theHK Method ( pre 2005.1 ) or one to three keys for the BBBT Method. An arbitrary number of rows (entries) is limited by the method selected during the OPENC operation and columns are limited in size by the block length on the PAGCFGX request. Unique keys have been formed to allow easy access of external identifications for either grid or element data qualified by time, frequency, load factor or mode number, as represented by DISPR and SHEXR. This is accomplished by searching either the EQEXING object for external grid identifications or the EQEXINE object for external element identifications. The second word of these objects is an internal key used to access output object content. The remaining information is a list of values such as time for transient analysis corresponding to the requested output specifications. For a list object the first word is a tolerance value. This value can be used to test against a specific value since real values are seldom exact. The tolerance value is the minimum value between any two adjacent steps divided by ten. Once the relative position is determined, the values are combined to form the output object access key for the HK Method. The derived access key is valid for all output tables of the same type. For example, a grid access key formed for displacement can be used to recover gird point forces and grid point stresses. The combination rules are a function of output recovery. When the object was formed using the BBBT Method, the object key can be from one to three words. The above values are passed as an array in the key parameter location. The first word of the key will always be the internal index derived from either EQEXING or EQEXINE in the normal manner. The last term, when necessary, will always be the list position value. The

Page 51: MSC.Access User's Manual Version 2005.1

intermediate key when present is termed an associated value. An example would be the ply identification for a composite element. When using the DISPR, displacement recovery object, as an example, the key designated by GKEY is a single value for statics analysis and two terms for transient analysis. When two terms, all remaining entry items are displaced by one word with the existence of the list position value now part of the entry. The following table identifies analysis solutions with their corresponding tables and factors.

Analysis

MSC/GRASP

MSC.Access

Object

Factor

Object

Factor

Statics

10000

SUBCASE

1

Transient

OLB1

10000

TOL

10000

Frequency

OLB1

10000

FOL

10000

Modal

OLB1

10000

MODE

10000

Nonlinear

OLB1

10000

NLLF

10000

Buckling

OLB1

10000

SHAPE

10000

The name changes between MSC/GRASP and MSC.Access formats allow multiple data recovery formats to coexist in the same data base. The statics factor permits increased storage capacity for the object. All objects above except MODE and SHAPE are real values. MODE and SHAPE are integer values. For the associated modal information, examine the LAMA object for real eigenvalue recovery, LAMC for complex eigenvalue recovery, and LAMB for buckling solutions. The access key factor is stored within each object as the 0 key entry. Starting with MSC.Nastran Version 67.0, the Sort 2 storage for linear statics is available with a default factor of 1000. Starting with MSC.Nastran Version 70.5, the access factor became a dynamic value and is related to the number of entries of the output control list. The reason for this activation was to increase the number of entries per output object. One should always attempt to recovery the object access factor, and when not present, then utilize the values in the above table. The BBBT Method of object storage does not use the object factor. 5.2.5 Access Object Capacity Limit Derivations The amount of information that can be stored in an object is a function of the block size specified on the PAGCFGX call and the length of an object entry. All HK Method keyed objects use a three-block hierarchical mapping technique. The first block is called the Primary, then next the Secondary and the place the entries are maintained in ascending collated sequence is called the Data Area. The control overhead is listed in the table below.

Block Type Overhead

Page 52: MSC.Access User's Manual Version 2005.1

Primary 25 Secondary 3 Data Area 4

To calculate an object capacity, one first subtracts the Block overhead from the block size. The remaining words in the Primary or Secondary block types are then divided by two. The remainder for the Data Area is divided by the size of the object entry. Note object entry length can be determined from the output of either the DDLQRY or DDLPRT utility programs. Assuming the old default block size of 1024 words, the Primary block can map into 495 Secondary locks. Each Secondary Block can map into 510 Data Areas. This results in a maximum of 252,450 Data Areas capable of being mapped. The overhead for each Data Area is four words. For the example, this leaves 1020 words available for entry information. Since entries cannot span Data Areas, only an integer number of entries are possible. For example, the DISPR object, representing displacements in real data recovery, consists of seven words per entry. Therefore, 145 entries can fit into one data block. The maximum number of DISPR entries for one superelement is (145)*(252,450) = 36,605,250. Since each object contains a different length data entry, the maximum limits differ for each object. One can also observe that objects using list associated poaitions reduce the limit to the number of access keys available. Another condition influencing capacity is the entry insertion order. For information stored in ascending sequence, the capacity limit is achievable. However, a random insertion sequence reduces the limit by up to twenty-five percent. The above discussion is dependent on the use of the default block size of 1024 words. For all MSC applications, the block size has remained constant until Version 2001.0.5. For non-MSC applications, the default block size was the maximum size allowed. Smaller block sizes were allowed. However, interaction with older MSC products may not be possible with different block lengths. The Version 2001.0.5 products automatically adjust themselves to the database block size and will function properly if the size is less than or equal to the PAGCFGX specification. The current release, Version 2001.0.5, has raised the limits to the number of blocks and the maximum block size allowed. The maximum of 65,535 words per block is current enforced by the MSC.Nastran system, however, for the DBIO system there is no longer an upper limit other than that specified as the maximum in the PAGCFGX function. The previous database size was a limit of 68gb per database and a maximum object limit of 1gb per object. By changing the block size a 8.5tb data base is achievable at the 1024 words per block. The 65,536 words per block allows for a conceptual object of 68gb and a database of 560tb to be formed. Note, that the 32-bit limit of the access key for the object using the HK Method is now the limiting feature Performing the object entry calculations again for the 65,536 block size, and again using the DISPR object as the example, yields the following capacity. ((65,535-25)/2)*((65,535-3)/2)*((65,535-4)/7) = 10,046,696,339,130 entries This is limited by the maximum 31 bit integer of 2,147,483,647. Note since some objects utilize

Page 53: MSC.Access User's Manual Version 2005.1

negative access keys, the total number of possible entries can be doubled. When the BBBT Method is used for object formulation, the list is normally a 31 bit limit to each of the key values. The capacity of the DISPR object now has been increased by this method to 2,147,483,647 grids per superelement and 2,147,483,647 list position values. The same range is available for the associated key. 5.2.6 Special Key Usage The DBIO subroutines do not require entry keys to be positive values. Under normal conditions, the access keys are changed to positive values by an application program. However, some HK Method objects, like SBRXR use zero and negative access keys to control internal linked lists. SBRXR uses negative access keys to maintain the open-ended structure for Bar Station Stress Data Recovery. Use of negative access keys is described in the DBC module description in the MSC.Nastran Programmers Manual. Negative access keys aid the translation from the MSC.Nastran internal file structure to the table structure used by MSC.Access. When an object requires additional information for processing, an entry with a special access key is provided to hold this information. These entries use the same data definition as any other entry in the object. All real and integer fields are maintained. However, the entry item is defined differently. For example, the -1 key used in the EQEXINE object returns an entry containing the maximum number of elements of a specific enumerated class. This value is used to develop and maintain the element internal access key. The zero key entry for the EQEXINE object using the HK Method of storage contains the factor for encoded element types. Another example is the GPFP (Grid Point Force Pointer) object only formed during the HK Method of storage. Positive entry keys define internal grid access keys that associate reference keys in the GPFV (Grid Point Force Value) object containing the linked list of component values associated with the grid. The -1 key within the GPFP object returns the maximum reference key used in the GPFV object. This usage allows for updates between the coupled tables. A critical use of the special -1 key is found in the Stress Data Recovery objects for two- and three-dimensional elements. Here, word five of the special key entry contains a flag value indicating the type of shear assigned to the element. A zero value indicates octahedral shear, while a value of one indicates either von Mises shear or maximum shear depending on the element. Add info concerning strain, matid, etc. 5.2.7 Special Number Usage The value of -1 has another special usage. Objects output from the pre-processor phase of the analysis use the integer -1 value in both real and integer entry items to indicate null data. These objects include element connections, loads and constraints. For example, when only the eight corner grids are present in the CHEX object, all mid-side item locations are flagged with -1. For the CQDR object, if the corner thickness is not present, they are also flagged by -1.

Page 54: MSC.Access User's Manual Version 2005.1

This usage attempts to differentiate between calculated values of zero and values not present or available. This requires an application to test all relevant fields for -1 and take appropriate action based on content instead of performing computations immediately on the content. 5.3.2 The CBAR, CBEAM, and CGAP Objects In processing these objects, the orientation sequential or grid areas are of interest to the application. The Data Definition Language uses EITHER/OR clauses based on real or integer values stores to describe these areas. A machine-dependent logical function ISINT was written to determine if the specified field is integer or real. During product testing, it was determined that this function was impossible to implement as designed with some machine architectures. An alternate method is being designed. In the meantime, the correct structure can be determined by examining the second and third words in the orientation area of the entry. If both words have a value of -1 (minus one integer), then the orientation grid definition is used to determine the plane of the neutral axis. if the condition is not met, then an orientation sequential of real values is defined. For example, the CBAR object described in Appendix B describes words five through seven as follows: Note: Items 5 to 7 are defined as either: 5 GO ORIENTATION GRID 6 UNDEF 7 UNDEF or 5 Xl ORIENTATION Sequential DIRECTION 1 6 X2 ORIENTATION Sequential DIRECTION 2 7 X3 ORIENTATION Sequential DIRECTION 3 based upon an integer value test of these fields. Words 6 and 7 are tested for the integer value -1. If both items contain -1, then word 5 contains the integer orientation grid (GO). For all other cases, words 5 through 7 contain the real orientation sequential directions.

Page 55: MSC.Access User's Manual Version 2005.1

C H A P T E R 6

INTERFACING TO THE DATA DEFINITION LANGUAGE (DDL)

Starting with MSC.Access Version 2001.0.5, additional application routines have been provided for client written applications to interface to the Data Definition Language imposed upon the objects during the DBC module translation of the MSC.Nastran analysis model. These subroutines allow applications to be written to dynamically conform to the object construction for a specific MSC.Nastran release. The DDL database has been provided as part of the MSC.Nastran delivery since Version 68.0. The primary reason to utilize these functions is to reduce application maintenance between MSC.Nastran releases. The interfaces provide: 1. Construction of object dictionary entries from name and environment 2. Determination of object entry token via keyword rather than enumerated position 3. The binary typing of a token within an object entry for formatting 4. The mapping between object names and surrogate keys 5. The abstract typing of an object key Note that these interfaces utilize the DBIO layer previously described as a basis and that the Data Definition Language database has a MSC.Access format, which implies that all utility programs can conformably handle the database content. 6.1 The Data Definition Language The Data Definition Language used by MSC.Access is used to abstract the MSC.Nastran data model and to facilitate the usage of utility programs to format and transfer the database information. Further extensions allow for schema mapping to arrange the object entry tokens into mathematical groups that allow transformation of coordinate systems of the vectors and symmetrical tensors. When using keywords, then applications are not tied to specific enumerated positions within the object entries and can better react to changes between version releases of the software and changes to the data model. 6.1.1 The MSC.Access Data Definition Language The basic format of the Data Definition Language File is that the file starts with the version designation structured as primary.secondary version. The sections of control information are defined. Considering MSC.Access, the DEFINE(section) would be the attribute mapping for the dictionary entry. Then the specific objects are described. There are two classes. The “RECORD” which indicated that the entries are keyed and “ARRAY” which indicates a repeating primitive group of token. Each class is terminated by the keyword “EOR”. The “RECORD” class allows for additional syntax to define how the token descriptions are

Page 56: MSC.Access User's Manual Version 2005.1

processed. A token description takes the form: Name,Type,Description, Where Name is termed the keyword associated with the token at the entry location. Note that a token keyword can be located at multiple positions in an entry due to layering or recovery point repetition. The Type is the binary class, such as Integer or Real. The Description is the words in the dictionary used to describe the token or keyword. Other syntax controlling repetition is the ENTRY/ENDENTRY clause. This clause either repeats COUNT times or terminates with an ENDKEY=position,value. Another clause is EITHER/OR groups which use best match or specific value tests. The Data Definition Language file and the compilers are currently not delivered as part of the MSC.Access delivery since proper formatting and consistent product builds are necessary for cohesive MSC.Nastran data model distributions between the various software components. Formatted copies of the delivery DDL can be obtained using the DDLQRY and DDLPRT utility programs. For illustration purposes, the DDL for the Title, Subtitle and Label object called SUBCTITL is presented.

VERSION 2001.0 DEFINE (ATTR)

PROJECT(M)=1, PATH(SS)=3,

… EOR RECORD=SUBCTITL,ATTR(M,SS,APP),

TITLE(CASE CONTROL TITLE SUBTITLE AND LABEL INFORMATION), NDB(OES1,OES2,…) SUBCASE,I,SUBCASE NUMBER,

ENTRY, STITLE,A,SUBCASE TITLE INFORMATION,

ENDENTRY,COUNT,32, ENTRY,

SUBTIT,A,SUBCASE SUBTITLE INFORMATION, ENDENTRY,COUNT,32,

ENTRY, LABEL,A,SUBCASE LABEL INFORMATION,

ENDENTRY,COUNT,32, EOR

6.2 Starting the Data Definition Language Interface Before starting the interface, the standard MSC.Access operations for an application layer must be performed. These consist of possible DBVALD calls followed by the required PAGCFGX call to establish the memory management area for MSC.Access. The next determination by the application program is which logical database to assign and open before the DDL interface is initiated. It is recommended that a “high” logical data base number be used, for example30, thereby leaving 1:29 available for application usage and to eliminate the DDL reference for the

Page 57: MSC.Access User's Manual Version 2005.1

priority searching ( See DBFLOC). Once the logical database is opened, the function MSCLDD will establish the memory model for the database and return a logical file handle to the DDL control entry object. Note that the database and logical file should remain open during the duration of the application and that both should be closed upon termination of the application. When an application needs to change definitions, first the logical file is closed, then database is closed and released, then a new DDL data base can be opened and activated. There is a current restriction that the DDL interface is singular, that is, only one definition is active at a time and data definition mixing is not currently possible. The following algorithm shows the basic logic diagram for each of the examples in this section. 6.2.1 Labeled Commons Populated by Function MSCLDD When the MSCLDD returns a successful completion code, seven labeled common areas will have been populated to be utilized by the remaining DDL application interface functions. These common specifications are presented in Appendix B. These common names and contents are:

Name Variables Type Content Description MSCDLP DDLDB

DDLMAP RELNUM KEYNUM WRDNUM

Integer “ ” “ ” “ ” “ ”

Logical Data Base for DDL information Logical file associated with DDL control information Number of objects in the DDL Number of token keywords used Number of words in the dictionary

MSCDPR MSCDCR

RELPTR RELDIC

Integer Character

Indices to the object words Object names in character packed format

MSCDPK MSCDCK

KEYPTR KEYDIC

Integer Character

Indices to the keyword words Keyword names in character packed format

MSCDPW MSCDCW

WRDPTR WRDDIC

Integer Character

Indices to the dictionary words Dictionary words in character packed format

There are three logical groups of information. These are “REL” relating to the object names, “KEY” relating to the keyword names; and the rest, “DIC” which is the dictionary of the remaining words. The “NUM” part indicates the number of items in the group. The “PTR”

Data Base Validation Block ( Paging ) Management Configuration Data Base OPEN <- for DDL Close DDL mapping object Data Base CLOSE <- for DDL

Determine Version and Date Determine attributes used by objects Inquire DDL for objects

Page 58: MSC.Access User's Manual Version 2005.1

represents the index to the start of the word. The difference between the indicated position and the next entry in the list is the length in characters of the word. The "DIC” areas are where the characters for the words are located. These represent minimum tables to accumulate and differentiate the categories of word classes. The database form is further abstracted to allow for MSC.TRANS/RECEIVE operations on the DDL database, which represents the normal delivery form. There are additional functions that can be used to recover indices related to a topic, such as the object description and then translate the indices into a text line for printing. 6.2.2 Usage of Word Index Functions There are application interface functions which are available to manipulate the word index structures of the MSC.Access Data Definition Language. These are defined in detail in Appendix B. Briefly these are: MSCDLC Concerts a character string of a class into an enumerated value

MSCASM Assemble a text string with words delimited by a character and filled to end of string by an additional character

MSCPPT Recover the word enumerated list associated with a topic MSCPTX Converts a class enumerated value into a character string Some of the topic areas are defined in the DDL control entry. Examples are the title and MSC.Nastran data blocks used during the DBC translation. Examples of their usage are presented in Chapter 10. 6.3 Version Matching DDL to Analysis Database Since the Data Definition Language and analysis databases are two different physical files as a minimum, it is the responsibility of the application to verify compatibility with respect to versioning. Normally, the object description remains stable from release to release, with just the number of available objects, increasing content, being the primary changes. The past philosophy has been to append new tokens to the end of existing entries whenever changes of that nature occur. The most volatile aspect in maintaining the Nastran data model has been the attributes necessary to differentiate objects. From the first release, three basis extensions have been instituted. These additions consist of the Approach attribute, V66 or MSC/GRASP to MSC/XL circa 1989; the design cycle attribute for optimization, V67 circa 1991; and finally the p-element iteration level, V68 circa 1994. Starting with 2005.0 a segment attribute was assigned to model information related to cyclic symmetry analysis. When these analysis techniques are not used, the default value for the attributes is zero, see Sections 4.1.8 and 4.1.9. There is no default for the approach attribute since MSC/GRASP translation is conceptually unsupported. When internal object description is desired, then versioning “might” be ignored, and the latest

Page 59: MSC.Access User's Manual Version 2005.1

release used since it encompasses the most robust object descriptive content. When attributes are desired, then attempting to match the release level become more important. To determine the Data Definition Language release level and date of the release, the function MSCVDR ( see Appendix B ) has been provided. It will return the DDL version in two integer variables, the primary version and the sub-version of the release. Since MSC/NASTRAN release V68.0, the DDL versioning has followed the Nastran release enumeration. For V68.0, the primary version would be 68 and the sub-version would be 0. When MSC.Nastran created an analysis database via the DBC module, the PRODUCT object is created. In the past, multiple MSC products used the MSC.Access database to maintain and pass information. These were MSC/EMAS and MSC/DYTRAN. The support for these products has been discontinued for a number or years due to sales of the capability or alternate path developments. Therefore the PRODUCT NAME area of the PRODUCT object should contain the BCD values of NASTRAN. Example of the PRODUCT Object recovered via DDLQRY for Version 2001.0.5 Description: PRODUCT DEFINITION Qualifiers: None DB Used: None Record Structure 1 PNAM1 A PRODUCT NAME 2 PNAM2 A PRODUCT NAME 3 PVER A PRODUCT 4 MONTH I MONTH 5 DAY I DAY 6 YEAR I YEAR 7 MCOD I MACHINE CODE 8 VENDOR A MACHINE VENDOR 9 VENDOR A MACHINE VENDOR 10 VENDOR A MACHINE VENDOR 11 VENDOR A MACHINE VENDOR 12 VENDOR A MACHINE VENDOR 13 MODEL A MACHINE MODEL 14 MODEL A MACHINE MODEL 15 MODEL A MACHINE MODEL 16 MODEL A MACHINE MODEL 17 MODEL A MACHINE MODEL 18 OPSYS A MACHINE OPERATING SYSTEM 19 OPSYS A MACHINE OPERATING SYSTEM 20 OPSYS A MACHINE OPERATING SYSTEM 21 OPSYS A MACHINE OPERATING SYSTEM 22 OPSYS A MACHINE OPERATING SYSTEM 23 SVER A PRODUCT SECONDARY VERSION It should be noted in the above definition that the PRODUCT VERSION and PRODUCT SECONDARY VERSION are defined as A or BCD values. The SVER was added in version 2001.0 for MSC.Nastran due to the construction of BCD as four characters, left justified, blank filled as the type definition. In earlier releases, the PVER was sufficient to maintain the literal of “70.5”, for example. The technique an application should employ were interpreting this object between release levels is to first use the DICRDR function to determine length, that is 23 words

Page 60: MSC.Access User's Manual Version 2005.1

or less. When 23 words, then SVER exists, otherwise on PVER is available. To make comparisons, the PVER needs to be interpreted, so that a primary and secondary values of comparable format are constructed. 6.4 Using Attribute Definition Functions Two functions are available for working with object attributes. They both employ the concept of an attribute environment vector. The definition appears in the following table

Vector Position

Attribute Location

Attribute Definition

1 3 Project 2 4 Superelement 3 5 Path 4 6 Subcase 5 7 Set Identification 6 7 Surface Identification 7 7 Volume Identification 8 8 Approach 9 9 Design Cycle

10 10 P Iteration 11 6 Aero Mach, Q and Symmetry enumeration 12 7 Aero configuration 13 7 List Identification 14 4 Component Identification 15 11 Segment

Since positional order is important, this should be either an array or variables ordered in a common block to maintain relative displacements. Once the environment vector has been initialized, the function MSCLRA can be used to complete the database dictionary entry for an object. An additional function MSCTFA has been provided to test if an object uses a specific attribute to qualify the database dictionary entry. 6.5 DDL Control Entry Description The DDL control entry is twelve words in length and is defined below.

Word Description 1 Surrogate Object Key 2 Pool location for the DDL process codes 3 Encrypted attribute code and object class information 4 Pool location for the Title 5 Pool location for the Nastran Data Blocks used 6 Number of words in DDL control area 7 Number of token for keyword descriptors 8 Number of test values used 9 Number of tokens used for the title

10 Number of tokens used for the Nastran Data Blocks

Page 61: MSC.Access User's Manual Version 2005.1

11 Not used 12 Not used

6.5.1 Working with the DDL control entry An Object Surrogate Key is the translation of the object name, for example DISPR to an enumerated value via the MSCDLC function. The “REL” tables would be used during the conversion: SKEY = MSCDLC (‘DISPR’,5,RELPTR,RELNUM,RELDIC) A standard READR execution against the logical file DDLMAP would then recover the DDL control entry for the object: CALL READR (DDLMAP,CREC,SKEY,IRET) where CREC represents the twelve word entry described above. Once this entry is obtained various topics can be examined. If the object title is of interest, then the function MSCPPT would be used to recover the list. Entry position four represent the starting data pool position while position nine indicate the number of words used for the title and the receiving array size in the application space should at least that many entries. The example call would be: CALL MSCPPT (DDLMAP,CREC(4),IA,NL) Where IA is the receiving target array for the title words enumerated values and NL is the number returned which should equal CREC(9). If a standard print line of 132 characters in length was the next operation to perform, the MSCASM function can provide this service. The example: STR = 0 10 CONTINUE CALL MSCASM (LINE,132,’ ‘,’ ‘,STR,IA,NL) IF (STR.LT.NL ) GOTO10 would construct a line of characters with the words separated with a blank character and the line filled to the end-of-line with blank characters when the next word in the list will not fit. The loop structure indicated above represents the possibility that the number of words in the topic may not all fit on one line and more that one line would be necessary to complete the total definition. 6.5.1 Working with an Object Entry DDL The MSCPIV subroutine can be used to recovery a memory structure defining all tokens of an object entry. One should monitor the sizes indicated in the DDL object control entry that sufficient space is available for the three possible structures. Note that the token descriptions can

Page 62: MSC.Access User's Manual Version 2005.1

be optionally skipped. The three return areas are the binary schema for the entry, a match values area for embedded tests used by EITHER/OR or END,WITH clauses, and the enumerated values of the dictionary indices for the token description. The schema area must be sequential processed to correctly correlate the tokens to their support information. When a positive value is encountered at the current instruction index it represents a token group of four words. They are:

Word Content 1 Index into the Keyword (KEYPTR) array 2 Binary format code 1->integer 2->real 3->BCD 4->logical 5->double 3 Starting index into dictionary index array 4 Number of dictionary words used to describe the current token

When the value “-1” is located at the current instruction index, then a group of tokens are within a repeating structure. This group control is five words in length. The format is:

Word Content 1 -1 2 Relative Starting Index of group 3 Relative Ending index of group 4 The number of repeats of the group 5 Index into values area or zero if not used

The SUBCTITL object was selected to illustrate how the various information is interrelated. The sample output was obtained from the DDLQRY utility program. Dictionary WRDPTR -> WRDDIC Indices (WRDPTR) Record Structure Group Ctrl Token Ctrl 1 -> 1 SUBCASE I SUBCASE NUMBER 1519,1,1,2 1 926 2 -> 2 STITLE A SUBCASE TITLE INFORMATION -1,2,2,32,0 1507,3,3,3 3 926

2 654

4 973 Item 2 is repeated 32 times.

7 929 Item 34 is repeated 32 times.

5 514 3 -> 34 SUBTIT A SUBCASE SUBTITLE INFORMATION -1,3,3,32,0 1520,3,6,3 6 926

4 -> 66 LABEL A SUBCASE LABEL INFORMATION -1,4,4,32,0 991,3,9,3 9 926 8 514

10 544 Item 66 is repeated 32 times.

In the above example, there are four unique tokens necessary to describe the entry, this is the left most enumeration. The next numeric value to the right is a position index into the entry where the token first occurs. This value is a calculated value due to the possibility of a repeated group control structure. The next word in the line is denoted a keyword, mapped through the KEYPTR-KEYDIC arrays, where one observes that KEYPTR(1519) indicates the word

11 514 Note: Total Instance length is 97 words. KEYPTR -> KEYDIC

Page 63: MSC.Access User's Manual Version 2005.1

“SUBCASE”. The next is the binary format indicator, where for relative location “1”, the I maps to the enumerated value 1. Since there are two dictionary words used, the token control indicates start in the dictionary index array at position one and use two values. These were 926->SUBCASE and 654->NUMBER via the WRDPTR->WRDDIC arrays. One should observe that since to pointer-word arrays are used, that the enumeration for SUBCASE is not the same in both arrays. When the value “-2” is located at the current instruction index, then a group of tokens are grouped as an EITHER/OR clause. This group control is five words in length and proceeds each group of tokens. The number of tokens in a EITHER/OR clause is identical. The format is:

Word Content 1 -2 2 Relative Starting Index of group 3 Relative Ending index of group 4 The number of token in the clause 5 Index into values area or zero if not used

When the index into the values table is zero, then a best match of the binary types is used to distinguish which token group should be used for defining the entry. When a value index exists, then the token before the first group is used to select the match. Note that the value of the token defines the information referenced by the index. This implies that the values area is a masked data array with the various binary forms “equivalenced” over the memory area. An example is: INTEGER IVAL(10) REAL RVAL(10) LOGICAL LVAL(10) EQUIVALENCE (IVAL(1),RVAL(1),LVAL(1)) Note that “A” or “BCD” can be tested with the “IVAL” or integer mask. 6.5 Working with the DDL and an Object/Entry When working with entry tokens of an object, the associated DDL has two distinct forms. It can be either fixed or variable. Over 95% of the objects have fixed distinct definitions. The variable form is when EITHER/OR clauses are used to describe variable sections within the entry. Therefore two different interfaces exists for the object entries; one requiring the entry and the other not. These are: MSCLRT Load interface for fixed DDL object and locate token by keyword MSCXTI Extract token information by relative position MSCRTI Load interface for variable DDL object, with entry, and locate token by keyword MSCXII Extract token information by relative position MSCKTY Determine the key type of an object The MSCLRT function should be executed first and it’s return examined to check if the alternate

Page 64: MSC.Access User's Manual Version 2005.1

function needs to be utilized due to variable embedded clauses. The MSCLRT function, when successful, populates an internal storage area with the schema that is replaced only when a different object is referenced. Thus additional keyword locates for the object only traverse the saved schema to locate the token format information. While the object definition is active, the corollary function MSCXTI can be used to extract information by relative position. One could simply loop the position from first to last and print the values of the token with their respective keywords. These functions could be considered symmetrical, that is, one locates keywords by name and returns position, while the other, by position, returns the keyword. The MSCLR function returns two additional pieces of information besides the first starting position. These are the count and stride where additional tokens that share the keyword definition exists. Since these multiple values normally occur in an ENTRY clause, the stride tends to be of constant length between terms. An example of such an object is the Stress for the QUAD8 element, which recovers the center and four vertex positions of stress tensor information. The MSCRTI and MSCXII are similar functions except that the object entry is required to correctly activate the correct definition for the current entry. Their usage concept is identical. The MSCKTY function can be used after either MSCLRT or MSCRTI loads the object entry definition. The function returns the type of key the object entry utilizes so that support tables can be references. An example would be a return of “1” would indicate a GKEY usage. This implies that a Access Key formulated by the EQEXING and a qualifying object, such a TOL for transient solution approach, would be used to form the entry key for the current processing environment.

Page 65: MSC.Access User's Manual Version 2005.1

C H A P T E R 7

MSC.ACCESS UTILITIES AND DEMONSTRATION PROGRAMS The MSC.Access delivery contains multiple files which vary from a sample MSC.Nastran data deck which can be used to create the Access Database, sample programs, including source code, which illustrates how applications can be developed, executable programs which can format the database content, and program pairs which allows the database to move between dissimilar computer architectures. The following table attempts to delineate the various components, which are further discussed in this chapter, following chapters, and the MSC.Nastran Installation and Release Guides. MSC.Access Sample Program Source Files

File Type Description a101x.dat data MSC.Nastran Data File access script Script to Build MSC.Access Sample Programs libdbio.a library Object Library for Application Development ddladd executable Program used to add DDL to old Data Bases ddlprt.F source Demonstration Database Dictionary Print Program. ddlqry.F source Demonstration Database Dictionary Query Program. demo1.F source Source for Sample MSC.Access Data Base Reader. demo2.F source Source for Sample MSC.Access Data base Reader. makefile make Makefile to Build MSC.Access Sample Programs. qaprt executable Program which Formats Content of MSC.Access Data Base receive executable Program which Converts Neutral File to Data Base smplr.F source Source for Sample MSC.Nastran Database Reader. trans executable Program which Converts Data Base to Neutral File

Before executing any of the sample programs after the programs have been installed and built, MSC.Nastran must be run using the a101x.dat input file. The a101x.dat can be located in Appendix C. 7.1 The MSC.Access Sampler Demonstration Program (SMPLR) The Sample Demonstration Program (SMPLR) attempts to format the popular post-processing data objects such as displacements and element stresses and forces using formats similar to what might be found in a MSC.Nastran output file produced by DISPLACEMENT or STRESS output entries in the Case Control Section. Further discussion of the program process flow can be located in Chapter 8. SMPLR can be executed using the "smplr" command. The installed version of the program is run with the command: msc2005 smplr

Page 66: MSC.Access User's Manual Version 2005.1

You will be prompted for the MSC.Access database filename. Enter the database name to process: a101x.xdb 7.2 The Demonstration Program DEMO1 The demonstration program DEMO1 formats information contained in a MSC.Access database (XDB) produced by MSC.Nastran. Since input model information is available in addition to the results by default, the grid locations and element connections are formatted for selected elements. The sample program source code is only provided as a simple example illustrating basic concepts. It is not intended to be a complete or usable program. Further discussion of the program flow and logic can be located in Chapter 9. DEMO1 can be executed using the "demo1" command. The installed version of the program is run with the command: msc2005 demo1 You will be prompted for the MSC.Access database filename. Enter the database path name: a101x.xdb 7.3 The Demonstration Program DEMO2 The demonstration program DEMO2 formats information contained in a MSC.Access database (XDB) produced by MSC.Nastran. Since input model information is available in addition to the results by default, the grid locations and element connections are formatted for selected elements. The sample program source code is only provided as a simple example illustrating basic concepts. It is not intended to be a complete or usable program. Further discussion of the program flow and logic can be located in Chapter 9. DEMO2 can be executed using the "demo2" command. The installed version of the program is run with the command: msc2005 demo2 You will be prompted for the MSC.Access database filename. Enter the database path name: a101x.xdb

Page 67: MSC.Access User's Manual Version 2005.1

7.4 The Data Definition Language Program DDLADD The program DDLADD has been provided to update existing MSC.Access databases for the Data Definition Language of the creating MSC.Nastran release. The process will allow for applications using the 2001.0.5 release of the DBIO library to work with database not created by the native platform. The update must be performed using the DDLADD that matches the current database binary format. That is, when the database is on windows, then use the windows version of the application. Once the update has been completed, the application on Unix may reference the database without the TRANS/RECEIVE utilities converting the database to native of the Unix system. See TRANS for discussion of machine compatibilities. The DDLADD program will open the data base in update mode to insert the DDL object as part of the content. Although a preliminary pass through the data base is performed before any re-writes commences, earlier data base versions were not available to verify complete functionality. It is recommended that a copy of the original be maintained until the processing application has verified that the content appears correct. For applications which create their own objects intermixed with the defined MSC.Access objects, the DDLADD program will not update the data base. The DDLADD program can be executed with the "ddladd" command. The format of the "ddladd" command is: msc2001 ddladd [target_xdb_file] [keyword] The optional keyword is: ddl=version mode= insert/replace Where version is the specific MSC.Nastran version to be embedded. The normal mode is auto-detection from the internal version stamps and data base characteristics. The valid values for the version number are: 660 670 675 680 681 690 700 705 706 707 20010 20040 The version 660 can be used for data bases created earlier than MSC/NASTRAN 66.0, that is MSC/NASTRAN Version 62 through Version 65. The mode keyword is used to override the insert default. When the xdb contains the Data Definition Object, no further operations are performed. The mode=replace will continue operations as long as the objects do not violate the Data Definition descriptions. 7.5 The Data Definition Language Demonstration Program DDLPRT The demonstration program DDLPRT serves two purposes. First, it provides the MSC.Access client release descriptions of the objects produced by the MSC.Nastran Data Base Conversion process. It also illustrates how retrieval of the object definitions from the MSC.Access Data Definition Language (DDL) data base can be performed by an application program. By using the DDL, an application can “insulate” itself from change to object definition and qualifications as well as understanding the binary type of and item from an object entry.

Page 68: MSC.Access User's Manual Version 2005.1

The DDLPRT program can be executed with the "ddlprt" command. The format of the "ddlprt" command is msc2001 ddlprt [ddl_xdb_file] [keywords] If the DDL XDB file is not specified, the program uses the default MSC.Access DDL file, install_dir/msc2001/arch/dbc.xdb on UNIX and install_dir\msc2001\arch\dbc.xdb on Windows. The optional keywords are: print=print_file Default: ddl_xdb_file.prt This keyword specifies the name of the print file documenting the format of every MSC.Access object. By default, the print file uses the base name of the input DDL XDB file with the new file type ".prt". Note, the size of this file is approximately one megabyte. toc=table_of_contents_file Default: ddl_xdb_file.toc This keyword specifies the name of the print file's table of contents. By default, the toc file uses the base name of the input XDB file with the new file type ".toc". To execute the program, enter the command msc2001 ddlprt The program displays the filename, version, and compilation date of the DDL file as well as the names of the print and table of contents files. Once these files are generated, the program exits. The print and table of contents files may then be printed once DDLPRT program has completed. 7.6 The Data Definition Language Demonstration Program DDLQRY The demonstration program DDLQRY serves two purposes. First, it provides the MSC.Access client release descriptions of the objects produced by the MSC.Nastran Data Base Conversion process. It also illustrates how retrieval of the object definitions from the MSC.Access Data Definition Language (DDL) data base can be performed by an application program The DDLQRY program can be executed with the "ddlqry" command. The format of the "ddlqry" command is msc2001 ddlqry [ddl_xdb_file] If the DDL XDB is not specified, the program uses the default MSC.Access DDL file, install_dir/msc2001/arch/dbc.xdb on UNIX and install_dir\msc2001\arch\dbc.xdb on Windows.

Page 69: MSC.Access User's Manual Version 2005.1

The program displays the filename, version, and compilation date of the DDL data base file and prompts the user for a supported task. The prompt line appears as: Enter Task (OBJECT,TOKEN,HELP,QUIT) : The OBJECT task allows for recovery and formatting of the object attributes and entry descriptions, comprising on item name, binary format and a brief definition. The TOKEN task allows for the identification of which objects match generic description tokens such as STRESSES & QUAD4. The HELP task provides a brief illustration of the capabilities and QUIT will terminate the program. Since the task names are unique, only the first character is necessary at the prompt. When the OBJECT task is selected, the prompt becomes: Enter Object Name (null to quit) After you enter the name of each object, the format of the object is displayed. The program repeats the prompt until a blank (or null) entry is entered. Valid object names can be recovered from the Table of Contents of the DDLPRT program. When the TOKEN task is selected, the prompt becomed: Enter Token clause ( null to quit ) : Note that the Tokens are derived from the description area of an object definition. These tokens are separated by the boolean symbols “&” for AND and “|” for OR. The left to right processing of the token and operator allows for joins or intersections of the description tokens. The token can be shorted by a wild character “*”, either starting or ending the token. For example, STRESS* would match both STRESS or STRESSES. When the search is completed, the list of object matching the join is presented. A single match allows for the complete object definition to be recovered. When more than one match is detected, the descriptions along with the object name can be formatted to the output device. 7.7 Utility Program QAPRT The utility program QAPRT converts the content of an MSC.Access data base (XDB) into a formatted file by object/entry collections. The basic format of the “qaprt” command is: msc2001 qaprt binary_xdb_file [keywords] where binary_xdb_file is the name of the XDB file. Keywords output output=pathname Default: binary_xdb_file.qout

Page 70: MSC.Access User's Manual Version 2005.1

This option specifies the name of the output formatted file

stride stride=skip Default: 0 All entries are formatted window window=entries 15 Number of entries in window This option specifies how the object entries are to be processed. The default is “stride” with all entries of the object formatted. When “skip” values is one, then every other entry is processes. The keyword of “window” operates upon the beginning, middle and end entries, when the “entries” indicates the number to be formatted in each of the regions. The keywords are mutually exclusive and can both can not be entered on a command line. Content content=min,full Default min DDL objects skipped This command, by default suppresses the formatting of the Data Definition Language objects. ddl ddl=bd,xdb Default xdb XDB DDL used. The default Data Definition Language which will be used to format the objects will be the one contained in the data base. When none is present, the internal block data area will be used to obtained the format for the version release. Examples To execute the program, enter the following command: msc2001 qaprt example.xdb The name of the output file is example.qout 7.8 Utility Program RECEIVE The utility program RECEIVE converts a neutral MSC.Access data base file (NDB) into a binary results data base file (XDB) of the target machine. The basic format of the "receive" command is msc2001 receive neutral_xdb_file [keywords] where neutral_xdb_file is the name of the NDB file. If "-" is specified as the neutral format data base file, the file is read from stdin. If the file type of the NDB file is ".ndb", it may be omitted from the command line. Prior to MSC.Nastran V70, the file type was ".ntrl"; V70 changed this to the more portable ".ndb".

Page 71: MSC.Access User's Manual Version 2005.1

Keywords output output=pathname Default: neutrl_xdb_file.xdb This option specifies the name of the binary MSC.Access data base file. By default, the output file is the name of the input file with the new type ".xdb". If the neutral format data base file was read from stdin, the default output filename is "receive.xdb". A binary XDB file cannot be written to stdout. verbose verbose=yes,no Default: Yes Output is a disk file

No Output is stdout.

This option specifies whether processing messages are to be written. Examples To execute the program, enter the following command: msc2001 receive example The name of the output file is example.xdb On UNIX systems, an XDB file can be transferred directly from a remote system with the following command: HP-UX UNICOS $ remsh node msc2001 trans binary_xdb_file out=- \ | msc2001 receive - out=binary_xdb_file SUPER-UX $ /usr/ucb/rsh node msc2001 trans binary_xdb_file out=- \ | msc2001 receive - out=binary_xdb_file All Others $ rsh node msc2001 trans binary_xdb_file out=- \ | msc2001 receive - out=binary_xdb_file See the rsh(1) man page for further information. 7.9 Utility Program TRANS A MSC.Access data base file (XDB) may be exchanged between computer systems that have binary file compatibility as displayed in following Table. Otherwise, the TRANS utility is required. TRANS converts an XDB file that is generated by MSC.Nastran to an equivalent character file that can be sent across a network to another computer. RECEIVE converts the character file back into an XDB file for application processing.

Page 72: MSC.Access User's Manual Version 2005.1

Binary File Compatibility The following table lists the compatibility of binary files between various computer systems supported by current or previous versions of MSC products. Note that not all of these combinations have been tested by MSC. Please report any compatibility problems encountered to your MSC representative.

Page 73: MSC.Access User's Manual Version 2005.1

MSC.Nastran Architecture Postprocessor Platform IEEE Byte

Order Word Size

Compaq Alpha

Compaq VAX

HP IBM RS/ 6000

SGI Sun SPARC

Intel

Cray UNICOS

No Big 64 TR TR TR TR TR TR TR

Cray IEEE T90 UNICOS

Yes Big 64 TR TR TR TR TR TR TR

Compaq Alpha UNIX

Yes Little 32 Copy TR TR Copy

TR Copy1

TR Copy1 1

TR Copy

Copy 1

Compaq Alpha OpenVMS

Yes Little 32 Copy TR TR Copy

TR Copy1

TR Copy1

TR Copy1

TR Copy1 1

Compaq VAX OpenVMS

No Little 32 TR Copy TR TR TR TR TR

Fujitsu VPP, VX UXP/V

Yes Big 32 TR Copy

TR 1

Copy Copy Copy Copy TR Copy1

HP HP-UX, SPP-UX

Yes Big 32 TR Copy

TR 1

Copy Copy Copy Copy TR Copy1

HP C-Series ConvexOS

Yes Big 32 TR Copy

TR 1

Copy Copy Copy Copy TR Copy1

Hitachi S-Series HI-OSF/1-MJ

No Big 32 TR TR TR TR TR TR TR

IBM S-390 MVS/XA, VM

No No 32 TR TR TR TR TR TR TR

IBM RS/6000 AIX

Yes Big 32 TR Copy

TR 1

Copy Copy Copy Copy TR Copy1

NEC SUPER-UX

Yes Yes

Big Big

64 32

TR TR Copy

TR TR

1

TR Copy

TR Copy

TR Copy

TR Copy

TR TR Copy1

SGI IRIX, IRIX64

Yes Big 32 TR Copy

TR 1

Copy Copy Copy Copy TR Copy1

Sun SPARC Solaris

Yes Big 32 TR Copy

TR 1

Copy Copy Copy Copy TR Copy1

Intel Linux, Windows

Yes Little 32 Copy TR

TR Copy

TR Copy1

TR Copy1

TR Copy1

Copy 1

1. Copy indicates that XDB files can be transferred between the systems without using

TRANS and RECEIVE programs. 2. Copy1

3. TR indicates that XDB files must be transferred between the systems using TRANS and RECEIVE programs.

4. With MSC.Nastran 2001, SUPER-UX switched from an ILP-64 build to a LP-64 build. This changed the data type from 64-bits to 32-bits, making it binary compatible with other 32-bit, big-endian, IEEE systems, and incompatible with earlier SUPER-UX versions.

indicates that using the 2001.1 released version of the DBIO library, the XDB files produced by MSC.Nastran can be transferred between the systems without using the TRANS and RECEIVE programs.

The first column on the left of the table lists various platforms that run MSC.Nastran. The second and third columns list basic architectural features of the computer, specifically whether the computer conforms to ANSI/IEEE Standard 754-1985 (the IEEE Standard for Binary Floating-

Page 74: MSC.Access User's Manual Version 2005.1

Point Arithmetic) and byte ordering (big endian or little endian) used by the computer. The remaining columns list postprocessor platforms. Running TRANS TRANS converts a binary MSC.Access data base file (XDB) into a neutral data base file (NDB) that may be copied to any other computer. The basic format of the "trans" command is msc2001 trans binary_xdb_file [keywords] where binary_xdb_file is the name of the XDB file. An XDB file cannot be read from stdin. If the file type of the XDB file is ".xdb", it may be omitted from the command line. Keywords alphabet alphabet=number Default: 64 Choose the 48- or 64-character conversion table. output output=pathname Default: binary_xdb_file.ndb This option specifies the name of the neutral format data base file. If "out=-" is specified, the neutral-format data base file will be written to stdout. By default, the output file name is the input file name with the new type ".ndb". (Prior to MSC.Nastran V70 the type ".ntrl" was used; V70 changed this to the more transportable ".ndb".)

verbose verbose=yes,no Default: Yes Output is a disk file

No Output is stdout.

This option specifies whether processing messages are to be written. Examples To execute the program, enter the following command: msc2001 trans example The name of the output file is example.ndb On UNIX systems, an XDB file can be transferred directly to a remote system with the following commands: HP-UX UNICOS msc2001 trans binary_xdb_file out=- \

Page 75: MSC.Access User's Manual Version 2005.1

| remsh node [-l user] msc2001 receive - out=binary_xdb_file SUPER-UX msc2001 trans binary_xdb_file out=- \ | /usr/ucb/rsh node [-l user] msc2001 receive - \ out=binary_xdb_file All others msc2001 trans binary_xdb_file out=- \ rsh node [-l user] msc2001 receive - out=binary_xdb_file See the remsh(1) or rsh(1) man pages for further information.

Page 76: MSC.Access User's Manual Version 2005.1

C H A P T E R 8

MSC.Access PROTOTYPE PROGRAM The MSC.Access prototype program SMPLR was developed for two main reasons.

1. An example of how to extract data from MSC/XL and MSC.Access data bases 2. A starting point in the construction of post-processing programs

Major modifications, up to and including complete rewrite, to this code should be expected when writing your own post-processing applications. The MSC.Access prototype program does not process all objects of the data base. Objects were selected to illustrate all potential access methods available to retrieve data from the data base. The prototype program, although very long, is relatively straightforward and thoroughly commented. A flow diagram for the prototype program appears in Section 8.1. This program was developed on IBM/RS6000 using ANSI standard FORTRAN 77. It is included on the MSC.Access delivery tape and are intended solely as references for writing MSC.Access programs. No guarantees exist for compilation and/or execution on any other machine. 8.1 Flow Diagram of the MSC.Access Prototype Program SMPLR The following flow diagram of the prototype program SMPLR illustrates the major functions and logic used by the program. This program is used to illustrate how application developers using the FORTRAN language could implement their concepts via the MSC.Access DBIO routines and the modeling concept used for MSC.Nastran. This again is and example, and not all possible output class objects are processed. Also to limit output, only the last Design Cycle and p-element iteration are used as attributes for values of the output object dictionary entries. Later examples are provided illustrating how the interfaces to the Data Definition language routines can assist application developers in automatically determining which objects use what attributes for qualification of their dictionary entries. In addition, when ever an object which contains a possible list of enumerations for attributes is missing, it is normally safe to assume a value of zero for the dictionary entry position.

Page 77: MSC.Access User's Manual Version 2005.1

A1

Initialize Input and Output Units

Configure Block Management Area

(PAGCFGX)

Get data base and Output file

Open Output file on FORTRAN Unit 11

Perform Data Base Validation (DBVALD)

Configure Memory Based on DBVALD returns

Open Data Base on Logical Data Base 1 (DBOPEN)

Output Listing of Data Base Dictionary (DICPRT)

Open a SCRATCH file on FORTRAN Unit=1 for element loop processing

Open PROJECT object to obtain the list of valid attributes for Dictionary entry word three. Output the content of the PROJECT object. When PROJECT object does not exist, the attribute list defaults to length one with value zero.

Page 78: MSC.Access User's Manual Version 2005.1

B

B

A1

A2

Open PATHQUAL object to obtain list of valid attributes for Dictionary entry word five. Output the qualifiers for the current path enumeration. When the PATHQUAL object does not exist, the list defaults to length of one with value zero.

Examine each entry of the data base dictionary using DICENT to accumulate a list of valid approach codes for the solution sequences. When no approach codes are detected, an MSC/GRASP translation is assumed and the output control tables are reset to MAC/GRASP conventions.

Start the Project Loop

Recover list of valid superelements for the Project via the SUPERS object. When object is missing, set default length to one and value to zero for residual structure.

Start the Approach Loop

Start the Path Loop

Start the Superelement Loop

Initialize controls to process entries of the SUBGRID object which contains indicators for grid point data recovery objects.

B C D E

Page 79: MSC.Access User's Manual Version 2005.1

Read the EQEXING object developing a map between internal data base keys and external user definition for grid point identifications.

Loop over entries of the SUBGRID object

For data recovery qualified y the approach attribute, recover the qualifying values, such as time, from the data base.

Process grid recovery controlled with a block data approach because the formats are identical. Output is appended to the output file by the OUTGRD routine. The data objects interpreted in processing order are displacements, velocities, accelerations, forces of constraint and applied loads. Presence in the data base is indicated by values in the SUBGRID entry.

Presence of the SURFSET object indicate grid point stress surface data is present in the data base and provides a list of identifications for use as dictionary entry attribute values. Output is appended to the output file by the OUTSRF routine. Processing procedure is dependant upon MSC/GRASP or MSC/XL translation selection.

B

C

D

E

A2

B

C

D

E

G

A3

F

SUBGRID Exist?

No

Element Processing Yes Grid Processing

Done? Yes

No

Page 80: MSC.Access User's Manual Version 2005.1

Presence of the VOLSET object indicates grid point stress solid data is available in the data base and provides a list of identifications for use as dictionary entry attribute values. Output is appended to the output file by the OUTVOL routine. Processing procedure is dependant upon MSC/GRASP or MSC/XL translations in the data base.

Presence of the GPFP object indicates that grid point force data is available in the data base. Output is appended to the output file by the OUTGPF routine. This is an example of coupled object processing.

Fetch next entry in the SUBGRID

Initialize controls for processing the SUBELEM object which controls element data recovery.

SUBELEM Exists?

No

Yes Process Element Next SuperElement

Read EQEXINE object and develop the mapping between internal data base keys and external user element identifications and types. Save each element type map on a FORTRAN scratch file.

Loop over entries of the SUBELEM object

Done??

Yes

No

A4 H

I E

D

C

B

E D

C

B G A3 F

Page 81: MSC.Access User's Manual Version 2005.1

B

C

D

E

I A4 H

For element data recovery objects qualified by the approach attribute, recover the appropriate list form the data base.

Loop over selected element types listed in the block data /DBCTA1/. Skip types previously determined by EQEXINE to be absent from the data base.

Recover only element stress and force data. Real or complex data formats will be selected within the OUTELM routine which appends data to the file.

End the element type

Fetch next entry in the SUBELEM

End of the superelement

End of the Path

End of the Approach Loop

End of the Project loop

Close all FORTRAN files and close the data base with DBCLOS

Page 82: MSC.Access User's Manual Version 2005.1

8.2 Subroutine Components of the SMPLR Program The following subroutines were written for the MSC.Access prototype program SMPLR and packaged with the delivered object library. These names may be reused if necessary. NAMEBD OUTELC OUTVOL OUTGPF CLEAR OUTSRF INSERT SMPLR OUTGRD FIXUP OUTELR FILTER OUTELM SETFLT

Page 83: MSC.Access User's Manual Version 2005.1

8.3 Common Blocks used by the SMPLR Program In addition, the following labeled common blocks are found only in theSMPLR prototype MSC.Access executable where they are described. Common block lengths are given in words except for PASSAP which is given in characters.

Common Block

Defined In

Length

EXTCOM

NAMEBD

3

GRDCOM

NAMEBD

6

NAMCON

NAMEBD

57

PASSAP

NAMEBD

50 (char.)

PASSIT

SMPLR

6

PASSNM

SMPLR

12

PASSQL

NAMEBD

5

SEINFO

SMPLR

300

TEMP

SMPLR

16

WRKSPC

SMPLR

10000

Note that all common blocks defined in the prototype program SMPLR reserve memory space for use in other sections of the code. The PASSAP common block contains an array of five elements defined with a FORTRAN CHARACTER*10 type statement.

Page 84: MSC.Access User's Manual Version 2005.1

C H A P T E R 9

ADDITIONAL MSC.ACCESS EXAMPLE PROGRAMS (DEMO1 and DEMO2)

These programs were developed on IBM/RS6000 using ANSI standard FORTRAN 77. They are included on the MSC.Access delivery tape and are intended solely as references for writing MSC.Access programs. No guarantees exist for compilation and/or execution on any other machine. 9.1 General Description of the Two Demo Programs This section demonstrates the use of MSC.Access utilities. The purpose of these utilities, as described in Section 5 of this manual, is the support of the logical functions of block management, open/closing of a data base, data base inquiry, allocating/freeing of data objects, read/write operations, and purging of objects. The first example is a set of procedures for printing the contents of selected objects within the data base. The second example, which prints the same type of data as the first example, contains a more generalized set of procedures. The following algorithm shows the basic logic diagram for each of the examples in this section. In particular, the basic difference between examples 1 and 2 is the technique used to retrieve information from the data base. In example 1, a set of procedures is used to interpret and demonstrate the relationships in the data base. In example 2, the procedures retrieve the qualifiers

Data Base Validation Block ( Paging ) Management Configuration Data Base OPEN Data Base CLOSE

Data Base Inquire Object Allocation Object De-allocation Object Purge

READ/WRITE Operations Data Entry Operations ( Printing )

Page 85: MSC.Access User's Manual Version 2005.1

of the selected objects. The objects retrieved are GRID, ELEMENT, DISPLACEMENT, and GRID POINT STRESS. A graphic illustration of the relationship between objects follows and can be interpreted according to the following convention. The most global objects are on the left margin, and as reads left to right, the more attributes are necessary to delineate the object. Objects collected vertically are of the same president, that is, require the same or same number of attributes to qualify their dictionary entry. The most global data base objects are PROJECT and PATHQUAL which utilize no attributes. The object references will be for the MSC/XL, or modern, translation of the MSC.Nastran data model. Accessing the Grid location object GRIDX. It currently uses the Project, Path, Superelement and Design Cycle attributes. Accessing other model constituent information such as element connections objects and be performed with the same hierarchy. These objects currently uses the Project, Path, Superelement and Design Cycle attributes. Accessing the MSC.Nastran results can be more difficult since these objects are highly qualified to allow for multiple instances on the data base. A popular data recovery object is the displacements in real data recovery. It should be noted again, that via the access key the entries can be recovered in either sort. The DISPR object currently uses the Project, Path, Superelement, SUBCASE, Approach, Design Cycle and p-Iteration attributes.

PROJECT Project

PATHQUAL Path

SUPERS Superelement

DHIST Design Cycle

GRIDX Grid location information

PROJECT Project

PATHQUAL Path

SUPERS Superelement

DHIST Design Cycle

CQD4 CQD8 CTR3 CTR6 CSHR Plate connection objects

Page 86: MSC.Access User's Manual Version 2005.1

9.2 DEMO1 Example Program The following procedures read the connectivity, displacement, and grid point stress data from an MSC/GRASP or MSC/XL data base. From the basic algorithm described earlier, the logic flow for the retrieval of data is described as follows:

Section A Perform Data Base Validation and memory configuration Section B Establishes the buffer (paging) pool for memory management. Section C Opens the data base. Section D Inquires about the contents of selected entities in the data base. Section E Reads and prints. Subsection E1 Grid point data. Subsection E2 Element connectivity. Subsection E3 Displacement data. Subsection E4 Grid point stress data. Section F Closes the data base

PROJECT Project

PATHQUAL Path

SUPERS Superelement

DHIST Design Cycle

DISPR Grid displacement in real data recovery

SUBGRID Subcase

PINFO p-Iteration

SOLVE Approach

Page 87: MSC.Access User's Manual Version 2005.1

9.2.1 Driver Program for Example 1 (DEMO1)

PROGRAM DEMO1 C

IMPLICIT INTEGER (A-Z) CHARACTER*120 DBNAME COMMON /UNITIF/ INPUT,OUTPUT,DBNUM

C C SET MAX BUFFER SIZE AS 65535 AND REQUEST 15 BUFFERS

INTEGER LOPENC, MAXBUF,NUMBUF, WRKARA,DDLARA PARAMETER ( MAXBUF=65535, NUMBUF=15 ) PARAMETER ( WRKARA=(MAXBUF+5)*(NUMBUF+1)+(5*3)+450 )

C DDL WORK SPACE REQUIREMENTS REQUIRED AFTER 2001 INTEGER PNODDL, PDLFLN PARAMETER ( PNODDL=2000, PDLFLN=5000 ) PARAMETER ( DDLARA=PNODDL*5 + PDLFLN + 3) PARAMETER ( LOPENC=WRKARA+DDLARA ) COMMON /DBCXXX/ SPACE(LOPENC)

C C* INITIALIZE THE OPERATING SYSTEM AND LOGICAL DATABASE UNITS

INPUT = 5 OUTPUT = 6 ____________ DBNUM = 1

C C OBTAIN DATABASE NAME FORM THE USER

WRITE (OUTPUT,1005) 1005 FORMAT (' ENTER THE DATABASE PATH NAME')

READ (INPUT,1010,END=97,ERR=97) DBNAME 1010 FORMAT(A) C C AT VERSION 2001, THE DBIO ACTIVITY ALLOWS FOR DATA BASE BLOCKINGOF 1024 TO 65535 C WORDS IN LENGTH. IT IS UP TO THE APPLICATION WRITER TO DETERMINE THE MAXIMUM BLOCK C SIZE BEFORE ESTABLISHINGTHE PAGING POOL. NOTE WHEN ALL DATA BASES ARE CLOSED, THE C PAGING POOL CAN BE RECONFIGURED, BUT THIS IS NOT ILLUSTRATED IN THIS SAMPLE C PROGRAM. THE ROUTINE DBVALD CAN BE USED TO VALIDATE DATA BASE EXISTANCE AND OF C XDB FORMAT, BESIDES RETURNINGTHE GENERATION BLOCK SIZE. NOTE ALL MSC.Access DATA C BASES SINCE VERSION 1 CAN RETURN THEIR GENERATION SIZE, WHICH WAS ALWAYS 1024 C WORDS IN PREVIOUS RELEASES. C

DO 5105 LENF=120,1,-1 A IF (DBNAME(LENF:LENF).NE.' ') GOTO 5107

5105 CONTINUE WRITE (OUTPUT,5106)

5106 FORMAT (' *** NULL INPUT DATA BASE NAME IS NOT ALLOWED') GOTO 97

5107 CONTINUE C

CALL DBVALD (IRET,DBNAME,LENF,BLKSIZ,DDLSIZ,MACHTP) IF ( IRET.NE.0 ) THEN WRITE (OUTPUT,5015) IRET

5015 FORMAT (' *** DATABASE VALIDATION ERROR = ',I3/ * 5x,'SEE DBVALD DESCRIPTION') GOTO 97

Page 88: MSC.Access User's Manual Version 2005.1

__________ ENDIF ___ C

C NOW VERIFY THE BUFFER SIZE AND THAT THE DATA DEFINITION WILL FIT C INTO THE ALLOCATED AREAS IF ( BLKSIZ.LE.0 ) BLKSIZ = 1024 C CALCULATE THE AMOUNT OF MEMORY FOR 15 + 1 BUFFERS

LENO = (BLKSIZ+5)*(15+MACHTP) + MAX((15+MACHTP)/10,5)*3 + 450 IF ( DDLSIZ.NE.0 ) THEN

DDL1 = DDLSIZ/100000 DDL2 = DDLSIZ - DDL1*100000

IF ( DDL1.GT.PNODDL .OR. DDL2.GT.PDLFLN ) THEN WRITE (OUTPUT,5016) DDL1,PNODDL, DDL2,PDLFLN

5016 FORMAT(' *** DATA DEFINITION SPACE ERROR, RESET PROGRAM ', B * 'PARAMETERS TO MAXIMUM OF INDICATED VALUES'/

* 5X,'PNODDL THE MAXUMUM OF ',2i10/ * 5X,'PDLFLN THE MAXIMUM OF ',2i10)

STOP ENDIF

LENO = LENO + DDLARA + 3 ENDIF IF ( LENO.GT.LOPENC ) LENO = LOPENC

C C* INITIALIZE MEMORY AND DATA BASE C CALL PAGCFGX (OUTPUT,1,LENO,BLKSIZ,DDLSIZ,0,MACHTP,IERR)

___________ IF (IERR.EQ.0) THEN C C* ALLOCATION OF DATABASE IN READONLY STATUS __________________ CALL DBOPEN (DBNUM,0,0,IERR,DBNAME)

C C* LOAD AND PRINT SELECTED DATA FROM THE DATABASE

D IF (IERR.EQ.0) THEN C* LOAD THE DATABASE INFO

__________________________ CALL DATINT (IERR) IF (IERR.NE.0) GOTO 1050 C* PRINT GRID POINT DATA

CALL PRTGRD C* PRINT ELEMENT CONNECTIVITY DATA

E CALL PRTCON C* PRINT DISPLACEMENT DATA

CALL PRTDIS C* PRINT GRID POINT STRESS DATA

__________________________ CALL PRTGPS ELSE WRITE (OUTPUT,1020) IERR

1020 FORMAT (' *** UNABLE TO ATTACH TO THE DATABASE, ', * ' ERROR = ',I3/5x,'SEE DBOPEN DESCRIPTION') F ENDIF

C C* CLOSE MAIN DATABASE

____ 1050 CALL DBCLOS (DBNUM,0,IRET) ELSE WRITE (OUTPUT,1060) IERR

1060 FORMAT (' *** UNABLE TO PERFORM PAGE CONFIGURATION, ', * 'ERROR = ',i3/5x,'SEE PAGCFGX DESCRIPTION') ENDIF

Page 89: MSC.Access User's Manual Version 2005.1

C 97 STOP

END 9.2.2 Data base Inquiry for Example 1 (DATINT) The following procedure inquires about the contents of selected entries in the data base (Section C in the driver routine). This procedure reads in the following selected objects. Section D1 Path Section D2 Project Section D3 Superelement Identifications Section D4 Approach Code Section D5 Subcase Section D6 Surface Identifications

SUBROUTINE DATINT (IERR) C C TEST SUBROUTINE DATINT C C ENTRY POINT: DATINT C C PURPOSE: C A TEST PROCEDURE TO INQUIRE THE CONTENTS OF SELECTED C SELECTED ENTITIES WITH THE DATABASE AND TO STORE C THE DATABASE INFORMATION C

IMPLICIT INTEGER (A-Z) C

PARAMETER (DBELEN=12, DATALN=200) PARAMETER (SUPMAX=200, SUBMAX=200, SUFMAX=20)

C INTEGER PROHDR(DBELEN),PATHDR(DBELEN),SUPHDR(DBELEN) INTEGER SUBHDR(DBELEN),SOLHDR(DBELEN),SUFHDR(DBELEN) INTEGER DATARA(DATALN)

C COMMON /UNITIF/ INPUT,OUTPUT,DBNUM COMMON /DBTBLS/ NUMSUP,SEID(200),NGRD,NELM,PROJEC,PATH,APPROH,

1 NUMSUB,SUBID(200),NUMSUF,SUFID(20) C

DATA PROHDR/4HPROJ,4HECT ,10*0/ DATA PATHDR/4HPATH,4HQUAL,10*0/ DATA SUPHDR/4HSUPE,4HRS ,10*0/ DATA SUBHDR/4HSUBG,4HRID ,10*0/ DATA SUFHDR/4HSURF,4HSET ,10*0/ DATA SOLHDR/4HSOLV,4HE ,10*0/

Page 90: MSC.Access User's Manual Version 2005.1

Attribute Name Attribute Object

Containing Key Qualification

Attributes PATH PATHQUAL None

______ C C ATTACH TO THE PATH RELATION

CALL OPENR (DBNUM,PATHDR,PATLEN,PATFIL,0,0,0,0,0,0,ERRCOD) IF (ERRCOD.EQ.0) THEN

IF (PATLEN.GT.DATALN) GOTO 900 C RECOVER THE MAXIMUM PATH INDEX USED

CALL READR (PATFIL,DATARA,-7,ERRCOD) IF (ERRCOD.NE.0) THEN

C UNABLE TO FIND PATH PATH = 0

D1 ELSE C PATH FOUND

PATH = DATARA(2) ENDIF

C RELEASE THE PATH RELATION CALL CLOSGR (PATFIL)

ELSE C UNABLE TO FIND PATH

PATH = 0 __________ ENDIF

Attribute Name Attribute Object Containing Key

Qualification Attributes

PROJEC PROJECT None ________

C C ATTACH TO THE PROJECT RELATION

CALL OPENR (DBNUM,PROHDR,PROLEN,PROFIL,0,0,0,0,0,0,ERRCOD) IF (ERRCOD.EQ.0) THEN

IF (PROLEN.GT.DATALN) GOTO 900 C RECOVER THE MAXIMUM PROJECT INDEX

CALL READR (PROFIL,DATARA,-1,ERRCOD) IF (ERRCOD.NE.0) THEN

C UNABLE TO FIND PROJECT PROJEC = 0

D2 ELSE C PROJECT FOUND

PROJEC = DATARA(2) ENDIF

C RELEASE THE PROJECT RELATION CALL CLOSGR (PROFIL)

ELSE C UNABLE TO FIND PROJECT

PROJEC = 0 __________ ENDIF

Page 91: MSC.Access User's Manual Version 2005.1

Program Table Containing Attributes

Attribute Object Containing Keys

Qualification Attributes

Qualification Position

SEID(1) id1 (2) Id2 … (3) idn

SUPERS PROJEC (3)

Note: n = NUMSUP (Number of superelements) __________

C C ATTACH TO THE SUPERELEMENT RELATION

SUPHDR(3) = PROJEC CALL OPENS (DBNUM,SUPHDR,0,SUPFIL,0,ERRCOD) IF (ERRCOD.NE.0)THEN

C UNABLE TO READ IN SUPERELEMENT LIST, ASSUME TO RESIDUAL NUMSUP = 1 SEID(1) = 0

D3 ELSE C RECOVER SUPMAX NUMBER OF SUPERELEMENT

CALL READS (SUPFIL,SEID,SUPMAX,NUMSUP,IEOR,ERRCOD) CALL CLOSGR (SUPFIL) IF (ERRCOD.NE.0) THEN

C ATTEMPT FURTHER PROCESSING WITH BAD READ INFORMATION NUMSUP = 1 SEID(1) = 0

ENDIF ____________ ENDIF

Attribute Name Attribute Object Containing Keys

Qualification Attributes

Qualification Position

APPROH SOLVE PROJEC (3) ________

C C CHECK FOR RESULTS DATA

SOLHDR(3) = PROJEC CALL OPENR (DBNUM,SOLHDR,SOLLEN,SOLFIL,0,0,0,0,0,0,ERRCOD) IF (ERRCOD.EQ.0) THEN

IF (SOLLEN.GT.DATALN) GOTO 900 C ATTEMPT TO FIND APPROCH ASSOCIATED WITH PATH

CALL READR (SOLFIL,DATARA,PATH,ERRCOD) IF (ERRCOD.NE.0)THEN

C UNABLE TO FIND PATH'S APPROACH APPROH= 0

D4 ELSE C APPROACH FOUND

APPROH = DATARA(2) ENDIF CALL CLOSGR(SOLFIL)

ELSE C UNABLE TO FIND SOLVE RELATION

APPROH = 0 ___________ ENDIF

Page 92: MSC.Access User's Manual Version 2005.1

Program Table

Containing Attributes Attribute Object Containing Keys

Qualification Attributes

Qualification Position

SUBID(1) id1 (2) id2

… (n) idn

SUBGRID PROJEC PATH

APPROH

(3) (5) (8)

Note: n = NUMSUB (Number of SUBCASEs) __________

C C CHECK FOR SUBCASES

SUBHDR(3) = PROJEC SUBHDR(5) = PATH SUBHDR(8) = APPROH CALL OPENR (DBNUM,SUBHDR,SUBLEN,SUBFIL,0,0,0,0,0,0,ERRCOD) NUMSUB = 0 IF (ERRCOD.EQ.0) THEN

IF (SUBLEN.GT.DATALN) GOTO 900 D5 100 NUMREC = 1

CALL READSQ (SUBFIL,DATARA,NUMREC,NUMREC,IEOR,ERRCOD) IF (ERRCOD.NE.0) GOTO 150

IF (DATARA(1).GT.0) THEN IF (NUMSUB+1.GT.SUBMAX) GOTO 150 NUMSUB = NUMSUB + 1 SUBID(NUMSUB) = DATARA(1)

ENDIF GOTO 100

150 CALL CLOSGR(SUBFIL) ___________ ENDIF

Program Table Containing Attributes

Attribute Object Containing Keys

Qualification Attributes

Qualification Position

SUFID(1) id1 (2) id2

… (n) idn

SURFSET PROJEC SEID PATH

APPROH DESIGN

(3) (4) (5) (8) (9)

Note: n = NUMSUF (Number of surfaces) Note: Surface Set for Residual (SEID=0) and no Design Cycles (DESIGN=0)

__________ C C SURFACE CHECK

SUFHDR(3) = PROJEC SUFHDR(5) = PATH SUFHDR(8) = APPROH NUMSUF = 0

D6 C LOOP THROUGH SUPERELEMENTS COLLECTING SET IDENTIFICATIONS DO 300 ISUP= 1,NUMSUP

SUFHDR(4) = SEID(ISUP) CALL OPENR (DBNUM,SUFHDR,SUFLEN,SUFFIL,0,0,0,0,0,0,ERRCOD) IF (ERRCOD.EQ.0) THEN

IF (SUFLEN.GT.DATALN) GOTO 900

Page 93: MSC.Access User's Manual Version 2005.1

200 NUMREC = 1 CALL READSQ (SUFFIL,DATARA,NUMREC,NUMREC,IEOR,ERRCOD) IF (ERRCOD.NE.0) GOTO 250 IF (NUMSUF+1.GT.SUFMAX) GOTO 250

D6 IF (NUMSUF.GT.0) THEN DO 210 I=1,NUMSUF

IF (DATARA(1).EQ.SUFID(I)) GOTO 200 210 CONTINUE

ENDIF NUMSUF = NUMSUF + 1 SUFID(NUMSUF) = DATARA(1)

GOTO 200 250 CALL CLOSGR (SUFFIL) IF (NUMSUF.EQ.SUFMAX) GOTO 350

____ ENDIF 300 CONTINUE 350 CONTINUE C IERR = 0 RETURN C 900 WRITE (OUTPUT,910) 910 FORMAT (' *** INSUFFICIENT ARRAY LENGTH TO HOLD DATA'/ * 5x,'INCREASE THE PARAMETER DATALN') IERR = 1 RETURN END

9.2.3 Grid Point Data in Example 1 (PRTGRD) The following procedure reads and prints grid point coordinate data (Section Dl in the driver routine). The functions of this routine are:

Section E11 Cycles over all the superelements in the model Section E12 Allocates the grid point coordinate object Section E13 Cycles over the grid point coordinate data for reading and printingSection E14 Frees the grid point coordinate object

Page 94: MSC.Access User's Manual Version 2005.1

SUBROUTINE PRTGRD C C TEST SUBROUTINE PRTGRD C C ENTRY POINT: PRTGRD C

C PURPOSE: A TEST OUTPUT PROCEDURE TO PRINT THE GRID POINT DATA FROM A C GRAPHICAL DATABASE.

C IMPLICIT INTEGER (A-Z) C PARAMETER (DBELEN=12) C INTEGER GRDHDR(DBELEN),GRDINT(12) C REAL GRDREL(12) C COMMON /UNITIF/ INPUT,OUTPUT,DBNUM COMMON /DBTBLS/ NUMSUP,SEID(200),NGRD,NELM,PROJEC,PATH,APPROH, 1 NUMSUB,SUBID(200),NUMSUF,SUFID(20) C EQUIVALENCE (GRDINT(1),GRDREL(1)) C DATA GRDHDR/4HGRID,4HX ,10*0/ C C CYCLE OVER THE GRID DATA FOR ALL SUPERELEMENTS C GRDHDR(3) = PROJEC GRDHDR(5) = PATH ______________ C DO 200 ISUP= 1,NUMSUP E12 C ALLOCATE THE GRID INTERNAL RECORD GRDHDR(4) = SEID(ISUP) _ _ _ _ ___________ CALL OPENR (DBNUM,GRDHDR,GRDLEN,GRDFIL,0,0,0,0,0,0,ERRCOD) IF (ERRCOD.EQ.0) THEN WRITE (OUTPUT,1000) (GRDHDR(I),I=1,5) 1000 FORMAT (1X,2A4,' PROJECT= ',I4,' SUPERELEMENT= ',I4,

* ' PATH=',I4/' EXTID',10X,'X',10X,'Y',10X,'Z') C E11 E13 C CYCLE OVER ALL GRIDS USING SEQUENTIAL READ TECHNIQUE 100 NREC= 1 CALL READSQ (GRDFIL,GRDINT,NREC,NREC,IEOR,ERRCOD) IF (ERRCOD.NE.0) GOTO 1050 WRITE (OUTPUT,1010) GRDINT(1),GRDREL(3),GRDREL(4),

* GRDREL(5) 1010 FORMAT (1X,I8,2X,3F11.3)

_ _ _ _ _____________ GOTO 100 C RELEASE THE GRID RECORD 1050 CALL CLOSGR(GRDFIL) E14 ENDIF ___________ 200 CONTINUE C RETURN END

Page 95: MSC.Access User's Manual Version 2005.1

9.2.4 Element Connectivity in Example 1 (PRTCON)

The following procedure reads and prints element connectivity data (Section D2 in the driver procedure). The functions of this procedure are:

Section E21 Cycles over all the superelements in the model

Section E22 Allocates selected element connectivity objects (QUAD4, QUAD8, TRIA3, TRlA6, and SHEAR)

Section E23 Cycles over the element connectivity data for reading and printing

Section E24 Frees the element connectivity object

SUBROUTINE PRTCON C C TEST SUBROUTINE PRTCON C C ENTRY POINT: PRTCON C C PURPOSE: A TEST OUTPUT PROCEDURE TO PRINT THE CONNECTIVITY FROM A C GRAPHICAL DATABASE. C IMPLICIT INTEGER (A-Z) C PARAMETER (DBELEN=12) C INTEGER ELMNAM(3,5),ELMHDR(DBELEN),ELMINT(50) C COMMON/UNITIF/ INPUT,OUTPUT,DBNUM COMMON/DBTBLS/ NUMSUP,SEID(200),NGRD,NELM,PROJEC,PATH,APPROH, 1 NUMSUB,SUBID(200),NUMSUF,SUFID(20) C DATA ELMHDR/12*0/ C ELEMENT NAME # OF GRIDS DATA ELMNAM/4HCQD4,4H , 4, 1 4HCQD8,4H , 8, 2 4HCTR3,4H , 3, 3 4HCTR6,4H , 6, 4 4HCSHR,4H , 4/ C DATA NUMELM /5/

Page 96: MSC.Access User's Manual Version 2005.1

C C* CYCLE OVER THE CONNECTIVITY FOR ALL SUPERELEMENTS

C ELMHDR(3) = PROJEC ELMHDR(5) = PATH __________C DO 300 ISUP= 1,NUMSUP C* ELEMENT CYCLE DO 200 IELM= 1,NUMELM ELMHDR(1) = ELMNAM(1,IELM) E22 ELMHDR(2) = ELMNAM(2,IELM) ELMHDR(4) = SEID(ISUP) ELMNOD = ELMNAM(3,IELM) C* ALLOCATE THE CONNECTIVITY FOR EACH OF THE ELEMENT TYPE CALL OPENR (DBNUM,ELMHDR,ELMLEN,ELMFIL,0,0,0,0,0,0,ERRCOD) E21 IF (ERRCOD.EQ.0) THEN _ _ _ ____________ WRITE (OUTPUT,1000) (ELMHDR(I),I=1,5) 1000 FORMAT (1X,2A4,' PROJECT= ',I4,' SUPERELEMENT= ',I4, * ' PATH=',I4/ ' EXTID CONNECTION GRIDS') C* CYCLE OVER ALL ELEMENTS WITHIN THE ALLOCATED TYPE 100 NREC = 1 E23 CALL READSQ (ELMFIL,ELMINT,NREC,NREC,IEOR,ERRCOD) IF (ERRCOD.NE.0) GOTO 1030 WRITE (OUTPUT,1020) ELMINT(1),(ELMINT(I+2),I=1,ELMNOD) 1020 FORMAT(1X,I8,1X,8I9) _ _ _ ____________ GOTO 100 C* RELEASE THE ELEMENT CONNECTIVITY RELATION E24 1030 CALL CLOSGR(ELMFIL) ENDIF 200 CONTINUE _________ 300 CONTINUE C RETURN END 9.2.5 Displacement Data in Example 1 (PRTDIS) The following procedure reads and prints displacement data (Section D3 in the driver procedure). The functions of this procedure are:

Section E31 Cycles over all the superelements subcases within the model Section E32 Allocates displacement objects Section E33 Cycles over the displacement data for reading and printing Section E34 Frees the displacement object

SUBROUTINE PRTDIS C C TEST SUBROUTINE PRTDIS C ENTRY POINT: PRTDIS C PURPOSE: A TEST OUTPUT PROCEDURE TO PRINT DISPLACEMENT DATA. C EXAMPLE IS FOR REAL DATA RECOVERY ONLY IE, STATICS, NORMAL MODES C TRANSIENT, NON-LINEAR BUT WILL NOT WORK FOR COMPLEX FORM

Page 97: MSC.Access User's Manual Version 2005.1

IMPLICIT INTEGER (A-Z) PARAMETER (DBELEN=12) INTEGER DISHDR(DBELEN) INTEGER IDDIS(20) REAL DISDAT(20) C COMMON/UNITIF/ INPUT,OUTPUT,DBNUM COMMON/DBTBLS/ NUMSUP,SEID(200),NGRD,NELM,PROJEC,PATH,APPROH, 1 NUMSUB,SUBID(200),NUMSUF,SUFID(20) C EQUIVALENCE (DISDAT(1),IDDIS(1)) C DATA DISHDR/4HDISP,4HR ,10*0/ C C* WHERE THERE ANY ANALYSIS RESULTS DETECTED IF (NUMSUB.EQ.0) RETURN C* DISHDR(3) = PROJEC DISHDR(5) = PATH DISHDR(8) = APPROH ________________ C DO 300 ISUP= 1,NUMSUP DO 200 ISUB= 1,NUMSUB C* ALLOCATE THE DISPLACEMENT FILE DISHDR(4) = SEID(ISUP) DISHDR(6) = SUBID(ISUB) CALL OPENR (DBNUM,DISHDR,DSPLEN,DISFIL,0,0,0,0,0,0,ERRCOD) E32 IF (ERRCOD.EQ.0) THEN WRITE (OUTPUT,1000) (DISHDR(I),I=1,6),DISHDR(8) 1000 FORMAT(1X,2A4,' PROJECT= ',I4,' SUPERELEMENT= ',I4, * ' PATH= ',I4,' SUBCASE= ',I8,' APPROACH=',I4/ * ' INTID',7X,'DT1',7X,'DT2',7X,'DT3', * 7X,'RT1',7X,'RT2',7X,'RT3') _ _ _ _ _ _ _______ 100 NREC= 1 CALL READSQ (DISFIL,DISDAT,NREC,NREC,IEOR,ERRCOD) E31 E32 IF (ERRCOD.NE.0) GOTO 1050 IF (IDDIS(1)) 100,1030,1010 1010 WRITE (OUTPUT,1020) IDDIS(1),(DISDAT(LDAT),LDAT=2,7) 1020 FORMAT(1X,I8,2X,6F10.5) GOTO 100 1030 WRITE (OUTPUT,1040) IDDIS(2) 1040 FORMAT (' OBJECT FACTOR =',I6) _ _ _ _ _ _ __________ GOTO 100 C* RELEASE THE DISPLACEMENT FILE E34 1050 CALL CLOSGR(DISFIL) ENDIF C* SUBCASE CYCLE 200 CONTINUE C* SUPERELEMENT CYCLE ________________ 300 CONTINUE C RETURN END

Page 98: MSC.Access User's Manual Version 2005.1

9.2.6 Grid Point Stress Data in Example 1 (PRTGPS) The following procedure reads and prints grid point stress data (Section Din the driver procedure). The functions of this procedure are:

Section E41 Cycles over all the superelements within the model Section E42 Extract the Grid Key factor from EQEXING object Section E43 Cycle over all the SUBCASEs within the model Section E44 Cycles over the grid point stress surfaces within the model Section E45 Allocates grid point stress objects Section E46 Cycles over the grid point stress data for reading and printing Section E47 Frees the grid point stress objects

For simplicity, the example used here retrieves grid point stress data for MSC/XL formatted data bases only. SUBROUTINE PRTGPS C C TEST SUBROUTINE PRTGPS C ENTRY POINT: PRTGPS C PURPOSE: A TEST OUTPUT PROCEDURE TO PRINT GRID POINT STRESS DATA. C IMPLICIT INTEGER (A-Z) C PARAMETER (DBELEN=12) INTEGER EQGHDR(DBELEN),GPSPTR(DBELEN),GPTHDR(DBELEN) INTEGER GRDMAP(3),SRFMAP(4),LAB(3) REAL GPRECR(9) C COMMON/UNITIF/ INPUT,OUTPUT,DBNUM COMMON/DBTBLS/ NUMSUP,SEID(200),NGRD,NELM,PROJEC,PATH,APPROH, 1 NUMSUB,SUBID(200),NUMSUF,SUFID(20) C DATA LAB/2HZ1,2HZ2,3HMID/ DATA EQGHDR/4HEQEX,4HING ,10*0/ DATA GPSPTR/4HSGSP,4HR ,10*0/ DATA GPTHDR/4HSGSV,4HR ,10*0/ C IF (NUMSUB.EQ.0 .OR. NUMSUF.EQ.0) RETURN C C* DUMMY UP A LIST OFFSET VALUE BASE UPON ANALYSIS APPROACH IF (APPROH.LE.1) THEN OFFSET = 0 ELSE OFFSET = 1 ENDIF C C* FILL OUT THE REMAINING PARTS OF THE DICTIONARY HEADERS EQGHDR(3) = PROJEC EQGHDR(5) = PATH

Page 99: MSC.Access User's Manual Version 2005.1

GPSPTR(3) = PROJEC GPSPTR(5) = PATH GPSPTR(8) = APPROH GPTHDR(3) = PROJEC GPTHDR(5) = PATH GPTHDR(8) = APPROH C __________________ C* CYCLE OVER THE GRID POINT STRESS DATA FOR ALL SUPERELEMENTS DO 500 ISUP= 1,NUMSUP C* ALLOCATE THE EQEXING TABLE TO EXTRACT GRID POINT STRESS POINTERS EQGHDR(4) = SEID(ISUP) CALL OPENR (DBNUM,EQGHDR,EQGLEN,EQGFIL,0,0,0,0,0,0,ERRCOD) IF (ERRCOD.EQ.0) THEN E42 C* EXTRACT THE MSC.Access FACTOR FOR THE TABLE CALL READR (EQGFIL,GRDMAP,0,ERRCOD) IF (ERRCOD.EQ.0) THEN C MSC.Nastran V67 AND LATER CONVENTIONS GFACT = GRDMAP(2) ELSE C CONVENTIONS PRIOR TO MSC.Nastran V67 GFACT = 10 ENDIF GPSPTR(4)= SEID(ISUP) GPTHDR(4)= SEID(ISUP) C _ _ _ _ _ _ _ _ _ _ _ C* LOOP OVER POSSIBLE SUBCASES DO 400 ISUB= 1,NUMSUB GPSPTR(6)= SUBID(ISUB) GPTHDR(6)= SUBID(ISUB) C ____________ C* LOOP OVER THE SURFACES WITHIN A SUBCASE DO 300 ISUF= 1,NUMSUF C* ALLOCATE THE GRID POINT STRESS POINTER FILE GPSPTR(7)= SUFID(ISUF) CALL OPENR (DBNUM,GPSPTR,LEN,PFIL,0,0,0,0,0,0,ERRCOD) IF (ERRCOD.NE.0) GOTO 300 C* RECOVER THE POINTER MSC.Access FACTOR CALL READR (PFIL,SRFMAP,0,ERRCOD) IF (ERRCOD.EQ.0) THEN PFACT = SRFMAP(2) ELSE PFACT = 10000 ENDIF E41 E43 E44 E45 C* ALLOCATE THE GRID POINT STRESS VALUE FILE GPTHDR(7)= SUFID(ISUF) CALL OPENR (DBNUM,GPTHDR,LEN,VFIL,0,0,0,0,0,0,ERRCOD) IF (ERRCOD.NE.0) GOTO 290 WRITE (OUTPUT,1000) (GPTHDR(I),I=1,8) 1000 FORMAT (1X,2A4,' PROJECT= ',I4, * ' SUPERELEMENT= ',I4,' PATH= ',I4, * ' SUBCASE= ',I8,' SURFACE= ',I4,' APPROACH=',I2/ * ' EXTID FIBRE GRID POINT STRESS DATA') _ _ _ _ _ C C* REWIND THE EXTERNAL TO INTERNAL MAPPING TABLE CALL READR (EQGFIL,GRDMAP,-99,ERRCOD)

Page 100: MSC.Access User's Manual Version 2005.1

CALL READR (EQGFIL,GRDMAP,-99,ERRCOD) C* SEQUENTIALLY PASS ALL POSSIBLE GRIDS 100 NREC= 1 CALL READSQ (EQGFIL,GRDMAP,NREC,NREC,IEOR,ERRCOD) IF (ERRCOD.NE.0) GOTO 280 IF (GRDMAP(1).LE.0) GOTO 100 C* DETERMINE IF GRID ON THIS SURFACE INTKEY = GRDMAP(2)/GFACT*PFACT + OFFSET CALL READR (PFIL,SRFMAP,INTKEY,ERRCOD) IF (ERRCOD.EQ.0) THEN E41 E43 E44 E46 C* OUTPUT THE STRESS RECORD FOR EACH FIBER DO 150 IFIB= 1,3 KEY = SRFMAP(IFIB+1) IF (KEY.EQ.0) GOTO 150 CALL READR (VFIL,GPRECR,KEY,IERR) IF (IERR.EQ.0) THEN WRITE (OUTPUT,1010) GRDMAP(1),LAB(IFIB), * (GPRECR(LDAT),LDAT=2,9) 1010 FORMAT(1X,I8,1X,A3,1X,8F8.1) ENDIF 150 CONTINUE ENDIF _ _ _ _ _ _ GOTO 100 C* RELEASE THE STRESS FILES E47 280 CALL CLOSGR (VFIL) ________ 290 CALL CLOSGR (PFIL) C* SURFACE CYCLE 300 CONTINUE C* SUBCASE CYCLE ____________ 400 CONTINUE CALL CLOSGR (EQGFIL) ENDIF C* SUPERELEMENT CYCLE __________________ 500 CONTINUE C RETURN END

Page 101: MSC.Access User's Manual Version 2005.1

9.3 DEMO2 Example Program The following procedures read the connectivity, displacement, and grid point stress data from an MSC/GRASP or an MSC/XL data base. These procedures are written in a more generic format than Example 1. The basic algorithm for the retrieval of data is described at the beginning of this section:

Section A Perform Data Base Validation and memory configuration Section B Establishes the block (paging) pool Section C Opens the data base Section D Reads and prints

Subsection D1 - Grid point data Subsection D2 - Element connectivity Subsection D3 - Displacement data Subsection D4 - Grid point stress data

Section E Closes the data base 9.3.1 Driver Program for Example 2 (DEMO2) PROGRAM DEMO2 C IMPLICIT INTEGER (A-Z) C CHARACTER*80 DBNAME C COMMON /UNITIF/ INPUT,OUTPUT,DBNUM C C SET MAX BUFFER SIZE AS 65535 AND REQUEST 15 BUFFERS INTEGER LOPENC, MAXBUF,NUMBUF, WRKARA,DDLARA PARAMETER ( MAXBUF=65535, NUMBUF=15 ) PARAMETER ( WRKARA=(MAXBUF+5)*(NUMBUF+1)+(5*3)+450 ) C DDL WORK SPACE REQUIREMENTS REQUIRED AFTER 2001 INTEGER PNODDL, PDLFLN PARAMETER ( PNODDL=2000, PDLFLN=5000 ) PARAMETER ( DDLARA=PNODDL*5 + PDLFLN + 3) PARAMETER ( LOPENC=WRKARA+DDLARA ) COMMON /DBCXXX/ Z(LOPENC) C C* INITIALIZE THE OPERATING SYSTEM AND LOGICAL DATABASE UNITS INPUT = 5 OUTPUT = 6 DBNUM = 1

Page 102: MSC.Access User's Manual Version 2005.1

____________________ C WRITE (OUTPUT,1005) 1005 FORMAT (' ENTER THE DATABASE PATH NAME') READ (INPUT,1010,END=97,ERR=97) DBNAME 1010 FORMAT (A) C C AT VERSION V71, THE DBIO ACTIVITY ALLOWS FOR DATA BASE BLOCKING C OF 1024 TO 65535 WORDS IN LENGTH. IT IS UP TO THE APPLICATION C WRITER TO DETERMINE THE MAXIMUM BLOCK SIZE BEFORE ESTABLISHING C THE PAGING POOL. NOTE WHEN ALL DATA BASES ARE CLOSED, THE C PAGING POOL CAN BE RECONFIGURED, BUT THIS IS NOT ILLUSTRATED C IN THIS SAMPLE PROGRAM. THE ROUTINE DBVALD CAN BE USED TO C VALIDATE DATA BASE EXISTANCE AND OF XDB FORMAT, BESIDES RETURNING C THE GENERATION BLOCK SIZE. NOTE ALL ACCESS DATA BASES SINCE A C VERSION 1 CAN RETURN THEIR GENERATION SIZE, WHICH WAS ALWAYS C 1024 WORDS IN PREVIOUS RELEASES. C DO 5105 LENF=80,1,-1 IF (DBNAME(LENF:LENF).NE.' ') GOTO 5107 5105 CONTINUE WRITE (OUTPUT,5106) 5106 FORMAT (' *** NULL INPUT DATA BASE NAME IS NOT ALLOWED') GOTO 97 5107 CONTINUE C CALL DBVALD (IRET,DBNAME,LENF,BLKSIZ,DDLSIZ,MACHTP) IF ( IRET.NE.0 ) THEN WRITE (OUTPUT,5015) IRET 5015 FORMAT (' *** DATABASE VALIDATION ERROR = ',I3/ * 5x,'SEE DBVALD DESCRIPTION') GOTO 97 ___________________ ENDIF C C NOW VERIFY THE BUFFER SIZE AND THAT THE DATA DEFINITION WILL FIT C INTO THE ALLOCATED AREAS IF ( BLKSIZ.LE.0 ) BLKSIZ = 1024 C CALCULATE THE AMOUNT OF MEMORY FOR 15 + 1 BUFFERS LENO = (BLKSIZ+5)*(15+MACHTP) + MAX((15+MACHTP)/10,5)*3 + 450 IF ( DDLSIZ.NE.0 ) THEN DDL1 = DDLSIZ/100000 DDL2 = DDLSIZ - DDL1*100000 IF ( DDL1.GT.PNODDL .OR. DDL2.GT.PDLFLN ) THEN B WRITE (OUTPUT,5016) DDL1,PNODDL, DDL2,PDLFLN 5016 FORMAT(' *** DATA DEFINITION SPACE ERROR, RESET PROGRAM ', * 'PARAMETERS TO MAXIMUM OF INDICATED VALUES'/ * 5X,'PNODDL THE MAXUMUM OF ',2i10/ * 5X,'PDLFLN THE MAXIMUM OF ',2i10) STOP ENDIF LENO = LENO + DDLARA + 3 ENDIF IF ( LENO.GT.LOPENC ) LENO = LOPENC C C* INITIALIZE MEMORY AND DATA BASE ___________________ CALL PAGCFGX (OUTPUT,1,LENO,BLKSIZ,DDLSIZ,0,MACHTP,IERR)

Page 103: MSC.Access User's Manual Version 2005.1

IF (IERR.EQ.0) THEN ___________________ C* ALLOCATION OF DATABASE CALL DBOPEN (DBNUM,0,0,IERR,DBNAME) C C C* LOAD AND PRINT SELECTED DATA FROM THE DATABASE IF (IERR.EQ.0) THEN ___________________ C* PRINT GRID POINT DATA CALL PRTGRD C* PRINT ELEMENT CONNECTIVITY DATA CALL PRTCON D C* PRINT DISPLACEMENT DATA CALL PRTDIS C* PRINT GRID POINT STRESS DATA CALL PRTGPS ELSE WRITE (OUTPUT,1020) IERR 1020 FORMAT (' *** UNABLE TO ATTACH TO THE DATABASE, ', * ' ERROR = ',I3/5x,'SEE DBOPEN DESCRIPTION') ENDIF ___________________ C C* CLOSE MAIN DATABASE E CALL DBCLOS (DBNUM,0,IRET) ___________________ ELSE WRITE (OUTPUT,1060) IERR 1060 FORMAT (' *** UNABLE TO PERFORM PAGE CONFIGURATION, ', * 'ERROR = ',i3/5x,'SEE PAGCFGX DESCRIPTION') ENDIF C

97 STOP END

9.3.2 Data base Inquiry and Grid Point Data for Example 2 (PRTGRD) The procedure to inquire about the contents of selected entries in the data base and to read and write grid point coordinate data follows. The functions of this procedure are:

Section D11 Searches the data base for grid point objects Section D12 Allocates the grid point coordinate object Section D13 Cycles over the grid point coordinate entries for reading and printing Section D14 Frees the grid point coordinate object

Page 104: MSC.Access User's Manual Version 2005.1

SUBROUTINE PRTGRD C C TEST SUBROUTINE PRTGRD C ENTRY POINT: PRTGRD C PURPOSE: A TEST OUTPUT PROCEDURE TO PRINT THE GRID POINT DATA FROM A C GRAPHICAL DATABASE. C IMPLICIT INTEGER (A-Z) C INTEGER DBENT(12),GRDINT(12) REAL GRDREL(12) C COMMON /UNITIF/ INPUT,OUTPUT,DBNUM C EQUIVALENCE (GRDINT(1),GRDREL(1)) C DATA GRDNAM/4HGRID/, NOPRT/1/ _________________ C C* REWIND THE POINTER INTO THE DATABASE DICTIONARY DBPTR = 0 C* EXTRACT THE NEXT DATABASE DICTIONARY ENTRY 100 CALL DICENT (DBNUM,DBPTR,NOPRT,DBENT,IKEEP) D11 C* CHECK IF THERE WAS A DICTIONARY ENTRY IF (DBPTR.LT.0) RETURN C C* WAS IT ONE THAT WE WANTED IF (DBENT(1).EQ.GRDNAM) THEN _________________ C* ATTACH TO THE GRID RELATION CALL OPENR (DBNUM,DBENT,GRDLEN,GRDFIL,0,0,0,0,0,0,ERRCOD) IF (ERRCOD.EQ.0) THEN WRITE (OUTPUT,1000) (DBENT(I),I=1,5) D12 1000 FORMAT (1X,2A4,' PROJECT= ',I4,' SUPERELEMENT= ',I4, * ' PATH=',I4/ ' EXTID',10X,'X',10X,'Y',10X,'Z') ________________ C* CYCLE OVER ALL GRIDS, SEQUENTIAL READ 200 NREC= 1 CALL READSQ (GRDFIL,GRDINT,NREC,NREC,IEOR,ERRCOD) IF (ERRCOD.NE.0) GOTO 300 D13 WRITE (OUTPUT,1010) GRDINT(1),GRDREL(3),GRDREL(4), * GRDREL(5) 1010 FORMAT (1X,I8,2X,3F11.3) GOTO 200 ________________ C* RELEASE THE GRID RELATION 300 CALL CLOSGR (GRDFIL) D14 ENDIF ________________ ENDIF C C* DATABASE DICTIONARY CYCLE GOTO 100 END

Page 105: MSC.Access User's Manual Version 2005.1

9.3.3 Data base Inquiry and Connectivity Data for Example 2 (PRTCON) The following procedure inquires about the contents of selected entries in the data base and reads and writes element connectivity data. The functions of this procedure are: Section D21 Cycle over the data base dictionary entries

Section D22 Cycles over all selected element types Section D23 Searches the entry for selected element connectivity objects Section D24 Allocates selected element connectivity objects (QUAD4, QUAD8,

TRIA3, TRlA6, and SHEAR) Section D25 Cycles over the element connectivity entries for reading and printing Section D26 Free the element connectivity object

SUBROUTINE PRTCON C C TEST SUBROUTINE PRTCON C ENTRY POINT: PRTCON C PURPOSE: A TEST OUTPUT PROCEDURE TO PRINT THE CONNECTIVITY FROM A C GRAPHICAL DATABASE. C IMPLICIT INTEGER (A-Z) C PARAMETER (NUMELM=5) C INTEGER ELMNAM(2,NUMELM) INTEGER DBENT(12),ELMINT(50) C COMMON /UNITIF/ INPUT,OUTPUT,DBNUM C DATA NOPRT/1/ DATA ELMNAM/4HCQD4, 4, 4HCQD8, 8, 4HCSHR, 4, 4HCTR3, 3, 4HCTR6, 6/

Page 106: MSC.Access User's Manual Version 2005.1

________________ C C* REWIND THE POINTER INTO THE DATABASE DICTIONARY DBPTR = 0 C* EXTRACT THE NEXT DATABASE DICTIONARY ENTRY 100 CALL DICENT (DBNUM,DBPTR,NOPRT,DBENT,IKEEP) C* CHECK IF THERE WAS A DICTIONARY ENTRY IF (DBPTR.LT.0) RETURN C ____________ C* CHECK IF DATABASE ENTRY IS ONE THAT WE WANT DO 400 IELM= 1,NUMELM D23 IF (DBENT(1).EQ.ELMNAM(1,IELM)) THEN ____________ C* EXTRACT THE NUMBER OF GRIDS FROM THE TABLE ELMNOD = ELMNAM(2,IELM) C* ALLOCATE THE CONNECTIVITY RELATION FOR THE ELEMENT TYPE CALL OPENR (DBNUM,DBENT,ELMLEN,ELMFIL,0,0,0,0,0,0,ERRCOD) D24 IF (ERRCOD.EQ.0) THEN WRITE (OUTPUT,1000) (DBENT(I),I=1,5) D21 D22 1000 FORMAT (1X,2A4,' PROJECT= ',I4,' SUPERELEMENT= ',I4, * ' PATH=',I4/ ' EXTID CONNECTION GRIDS') ____________ 200 NREC = 1 CALL READSQ (ELMFIL,ELMINT,NREC,NREC,IEOR,ERRCOD) IF (ERRCOD.NE.0) GOTO 300 D25 WRITE (OUTPUT,1020) ELMINT(1),(ELMINT(I+2),I=1,ELMNOD) 1020 FORMAT(1X,I8,1X,8I9) ____________ GOTO 200 C* RELEASE THE ELEMENT CONNECTIVITY RELATION D26 300 CALL CLOSGR (ELMFIL) GOTO 100 ENDIF ENDIF ____________ 400 CONTINUE C C* DATABASE DICTIONARY CYCLE _____________ GOTO 100 END

Page 107: MSC.Access User's Manual Version 2005.1

9.3.4 Data base Inquiry and Displacement Data for Example 2 (PRTDIS) The following procedure inquires about the contents of selected entries in the data base and reads and writes displacement data (Sections C and D in the driver procedure). The functions of this procedure are: Section D31 Loop over data base dictionary entries

Section D32 Searches entry for displacement objects Section D33 Allocates the displacement object Section D34 Cycles over the displacement entry for reading and printing Differentiate data entry from factor entry by key=0 Section D35 Free the displacement object

SUBROUTINE PRTDIS C C TEST SUBROUTINE PRTDIS C ENTRY POINT: PRTDIS C PURPOSE: A TEST OUTPUT PROCEDURE TO PRINT DISPLACEMENT DATA. C IMPLICIT INTEGER (A-Z) C INTEGER DBENT(12),IDDIS(14) REAL DISDAT(14) C COMMON /UNITIF/ INPUT,OUTPUT,DBNUM C EQUIVALENCE (DISDAT(1),IDDIS(1)) C DATA DISNAM/4HDISP/, NOPRT/1/

Page 108: MSC.Access User's Manual Version 2005.1

_________________ C C* REWIND THE POINTER INTO THE DATABASE DICTIONARY DBPTR = 0 C* EXTRACT THE NEXT DATABASE DICTIONARY ENTRY 100 CALL DICENT (DBNUM,DBPTR,NOPRT,DBENT,IKEEP) C* CHECK IF THERE WAS A DICTIONARY ENTRY IF (DBPTR.LT.0) RETURN C D32 C* CHECK IF THE CURRENT ENTRY IS A DISPLACEMENT RELATION IF (DBENT(1).EQ.DISNAM) THEN _________________ C* ALLOCATE THE DISPLACEMENT FILE CALL OPENR (DBNUM,DBENT,DSPLEN,DISFIL,0,0,0,0,0,0,ERRCOD) IF (ERRCOD.EQ.0) THEN WRITE (OUTPUT,1000) (DBENT(I),I=1,6),DBENT(8) D33 1000 FORMAT(1X,2A4,' PROJECT= ',I4,' SUPERELEMENT= ',I4, * ' PATH= ',I4,' SUBCASE= ',I8,' APPROACH=',I4/ * ' INTID',7X,'DT1',7X,'DT2',7X,'DT3', * 7X,'RT1',7X,'RT2',7X,'RT3') D31 _________________ 200 NREC= 1 CALL READSQ (DISFIL,DISDAT,NREC,NREC,IEOR,ERRCOD) IF (ERRCOD.NE.0) GOTO 300 IF (IDDIS(1)) 200,1050,1010 1010 WRITE (OUTPUT,1020) IDDIS(1),(DISDAT(J),J=2,7) D34 1020 FORMAT(1X,I8,2X,6F10.5) IF (DSPLEN.GT.7) THEN WRITE (OUTPUT,1030) (DISDAT(J),J=8,13) 1030 FORMAT (11X,6F10.5) ENDIF GOTO 200 1050 WRITE (OUTPUT,1060) IDDIS(2) 1060 FORMAT (' OBJECT FACTOR =',I6) _________________ GOTO 200 C* RELEASE THE DISPLACEMENT FILE D35 300 CALL CLOSGR (DISFIL) ENDIF ENDIF C C* DATABASE DICTIONARY CYCLE ______________ GOTO 100 END

Page 109: MSC.Access User's Manual Version 2005.1

9.3.5 Data base Inquiry and Grid Point Stress Data for Example 2 (PRTGPS) The following procedure inquires about the contents of selected entries in the data base and reads and prints grid point stress data. The functions of this procedure are: Section D41 Loop over data base dictionary entries

Section D42 Searches the entry for grid point stress pointer object Section D43 Allocates the grid point stress point and value objects Section D44 Cycles over the grid point stress point entries for keys into value object Section D45 Cycle over surface pointer entry for layers for reading and printing Section D46 Frees the grid point stress objects

For simplicity, the example used here retrieves grid point stress data for MSC/XL formatted data bases only. SUBROUTINE PRTGPS C C TEST SUBROUTINE PRTGPS C ENTRY POINT: PRTGPS C PURPOSE: A TEST OUTPUT PROCEDURE TO PRINT GRID POINT STRESS DATA. C IMPLICIT INTEGER (A-Z) C PARAMETER (DBELEN=12) INTEGER DBENT(DBELEN),EQGHDR(DBELEN),GPTHDR(DBELEN) INTEGER GRDMAP(3),SRFMAP(4),LAB(3),GPSPTR(2) REAL GPRECR(9) C COMMON /UNITIF/ INPUT,OUTPUT,DBNUM C EQUIVALENCE (GPRECR(1),IDGPS) C DATA LAB/2HZ1,2HZ2,3HMID/, NOPRT/1/ DATA GPSPTR/4HSGSP,4HR / DATA EQGHDR/4HEQEX,4HING ,10*0/ DATA GPTHDR/4HSGSV,4HR ,10*0/ _________________ C C* REWIND THE POINTER INTO THE DATABASE DICTIONARY DBPTR = 0 C* EXTRACT THE NEXT DATABASE DICTIONARY ENTRY D41 100 CALL DICENT (DBNUM,DBPTR,NOPRT,DBENT,IKEEP) C* CHECK IF THERE WAS A DICTIONARY ENTRY IF (DBPTR.LT.0) RETURN C C* CHECK IF THE CURRENT ENTRY IS A DISPLACEMENT RELATION D42 IF (DBENT(1).EQ.GPSPTR(1) .AND. DBENT(2).EQ.GPSPTR(2)) THEN

Page 110: MSC.Access User's Manual Version 2005.1

__________________ C C* DUMMY UP A LIST OFFSET VALUE BASE UPON ANALYSIS APPROACH IF (DBENT(8).LE.1) THEN OFFSET = 0 ELSE OFFSET = 1 ENDIF C* ALLOCATE THE EQEXING TABLE TO EXTRACT GRID POINT STRESS POINTERS DO 110 I=3,5 EQGHDR(I) = DBENT(I) 110 CONTINUE CALL OPENR (DBNUM,EQGHDR,EQGLEN,EQGFIL,0,0,0,0,0,0,ERRCOD) IF (ERRCOD.EQ.0) THEN C* EXTRACT THE ACCESS FACTOR FOR THE TABLE CALL READR (EQGFIL,GRDMAP,0,ERRCOD) IF (ERRCOD.EQ.0) THEN C MSC/NASTRAN V67 AND LATER CONVENTIONS GFACT = GRDMAP(2) ELSE C CONVENTIONS PRIOR TO MSC/NASTRAN V67 GFACT = 10 ENDIF D41 D43 C* ALLOCATE THE GRID POINT STRESS POINTER FILE CALL OPENR (DBNUM,DBENT,LEN,PFIL,0,0,0,0,0,0,ERRCOD) IF (ERRCOD.NE.0) GOTO 300 C* RECOVER THE POINTER ACCESS FACTOR CALL READR (PFIL,SRFMAP,0,ERRCOD) IF (ERRCOD.EQ.0) THEN PFACT = SRFMAP(2) ELSE PFACT = 10000 ENDIF C* ALLOCATE THE GRID POINT STRESS VALUE FILE DO 120 I=3,DBELEN GPTHDR(I) = DBENT(I) 120 CONTINUE CALL OPENR (DBNUM,GPTHDR,LEN,VFIL,0,0,0,0,0,0,ERRCOD) _ _ _ _ _______ IF (ERRCOD.NE.0) GOTO 400 WRITE (OUTPUT,1000) (GPTHDR(I),I=1,8) 1000 FORMAT (1X,2A4,' PROJECT= ',I4, * ' SUPERELEMENT= ',I4,' PATH= ',I4, * ' SUBCASE=',I8,' SURFACE=',I4,' APPROACH=',I2/ * ' EXTID FIBRE GRID POINT STRESS DATA') C C* REWIND THE EXTERNAL TO INTERNAL MAPPING TABLE CALL READR (EQGFIL,GRDMAP,-99,ERRCOD) C* SEQUENTIALLY PASS ALL POSSIBLE GRIDS D44 200 NREC= 1 CALL READSQ (EQGFIL,GRDMAP,NREC,NREC,IEOR,ERRCOD) IF (ERRCOD.NE.0) GOTO 300 IF (GRDMAP(1).LE.0) GOTO 200 C* DETERMINE IF GRID ON THIS SURFACE INTKEY = GRDMAP(2)/GFACT*PFACT + OFFSET CALL READR (PFIL,SRFMAP,INTKEY,ERRCOD) IF (ERRCOD.EQ.0) THEN

Page 111: MSC.Access User's Manual Version 2005.1

__________ C* OUTPUT THE STRESS RECORD FOR EACH FIBER DO 250 IFIB= 1,3 KEY = SRFMAP(IFIB+1) D45 IF (KEY.EQ.0) GOTO 250 CALL READR (VFIL,GPRECR,KEY,IERR) IF (IERR.EQ.0) THEN WRITE (OUTPUT,1010) GRDMAP(1),LAB(IFIB), * (GPRECR(LDAT),LDAT=2,9) 1010 FORMAT(1X,I8,1X,A3,1X,8F8.1) ENDIF D41 D44 250 CONTINUE ENDIF _ _ ____________ GOTO 200 C* RELEASE THE STRESS FILES D46 300 CALL CLOSGR (VFIL) 400 CALL CLOSGR (PFIL) CALL CLOSGR (EQGFIL) ENDIF ENDIF C C* DATABASE DICTIONARY CYCLE ____________ GOTO 100 END

Page 112: MSC.Access User's Manual Version 2005.1

C H A P T E R 10

USAGE OF DATA DEFINITION LANGUAGE INTERFACE The example software presented in this chapter was extracted from the DDLQRY utility delivered both as a demonstration example and utility program which extract DDL object information interactively. Since the starting of the MSC.Access system, using functions of DBVALD and PAGCFGX, were illustrated and discussed in previous chapters, they will not be present here. The example presented here is composed of two subroutines. The first is split between an application to user interface to control the interactive process options and to process the task of determining which objects share dictionary words in their title sections, thus providing a primitive grouping capability. The second routines presented traverses the DDL section of the object providing detailed descriptions of the tokens used in the entry. The illustration technique used will be to disburse additional comments in the program sections where block functional activities occur. 10.1 High Level Interactive Driver This subroutine is invoked from the main function which as performed the MSC.Access system configuration tasks of DBVALD and PAGCFGX. It has also performed the linkage of the software to the client locations for the DDL data base and performed the DBOPEN task on that target. Subroutine DDLQMN (dbnum) C C THIS PROGRAM IS CONFIDENTIAL AND A TRADE SECRET OF THE MSC.SOFTWARE C CORPORATION. THE RECEIPT OR POSSESSION OF THIS PROGRAM DOES NOT CONVEY ANY C RIGHTS TO REPRODUCE OR DISCLOSE ITS CONTENTS, SELL, LEASE, OR OTHERWISE C TRANSFER IT TO ANY THIRD PARTY, IN WHOLE OR IN PART, WITHOUT THE SPECIFIC C WRITTEN CONSENT OF THE MSC.SOFTWARE CORPORATION. C C Program used to illustrate interactive Object recovery from the C Data Definition Language Data Base C Implicit Integer (a-z) C Character string*20, card*120 Integer stack(50), ios, sloc(80) C Integer iarsiz Parameter ( iarsiz=10000 ) Integer iar(iarsiz),list(2000)

Page 113: MSC.Access User's Manual Version 2005.1

The commons included below are related to the object names and dictionary word tables. The keyword pointer and dictionary arrays are not used in this routine. The only variable used from the SYSFIL include is the OUTPUT variable which designated which unit is to be used for printing. C Character reldic*1,wrddic*1 Common /MSCDLP/ ddldb,ddlmap,relnum,keynum,wrdnum Common /MSCDPR/ relptr(2001) Common /MSCDPW/ wrdptr(2001) Common /MSCDCR/ reldic(8000) Common /MSCDCW/ wrddic(8000) C #include "sysfil.cmn" C Integer ddlqby(2) Data ddlqby/4hDDLQ,4hBYTL/ C conin = 5 C C Make sure enough space is available if ( relnum*3.gt.iarsiz ) then WRITE (output,10) 10 Format (' *** SYSTEM FATAL MESSAGE (DDLQRY)'/ * 5x,'The number of objects*3 exceeds iar dimension') return endif

The next section actives and loads the DDL commons via the function MSCLDD. When successful, iret=0, then the version and DDL compilation dates are displayed. C C Now boot the data definition language arrays into memory C Set the data recovery for Objects and keywords kflag = 7 iret = MSCLDD (ddlmap,dbnum,kflag) if (iret.eq.0) then iret = MSCVDR (pver,sver,mon,day,year) if (iret.eq.0) then WRITE (output,20) pver,sver,mon,day,year 20 format (' DDL Version ',i4,’.’,i1, * ', Compiled on ',i2,'/',i2.2,'/',i4) endif else WRITE (output,30) iret 30 Format (' *** SYSTEM FATAL MESSAGE (DDLQRY)'/ * 5x,'Error Occurred Booting DDL, error =',i3/ * 5x,'Verify DDL XDB specifed on command line') return endif

Page 114: MSC.Access User's Manual Version 2005.1

This next section deals with application user interface issues in obtaining action tasks and then responding to the request. The application task is terminated and possible help interaction is provided. C C Request user for the TASK ddltok = -1 100 continue WRITE (output,110) 110 format (/' Enter Task (OBJECT,TOKEN,HELP,QUIT) ',$) READ (conin,120,iostat=ios) string 120 format (a) rellen = LNOBLN(string) if( ios.lt.0 .or. rellen.le.0 ) goto 100 Call LC2UC (string(:rellen) ) C C Check if QUIT task if ( string(1:1).eq.'Q') then Call CLOSGR (ddlmap) if ( ddltok.gt.0 ) Call CLOSGR (ddltok) return endif C C Check for the HELP task if ( string(1:1).eq.'H') then WRITE (output,130) 130 format (/' HELP function of DDLQRY'/ * 3x,'The OBJECT task shows the Data Definition'/ * 3x,'The TOKEN task shows which objects share Description ', * 'keyword tokens'// * 3x,'Sample object names are : GRIDX, CQD4 and SQD4R'// * 3x,'Token process allows for boolean operations of AND(&) ', * 'and OR(|) between tokens'/ * 3x,'Boolean operations are performed left to right as ', * 'entered'/ * 3x,'Token strings allow primative matches at the start and ', * 'end of the string'/ * 3x,'The character * is used for this purpose'// * 3x,'An example of the TOKEN task is: ', * 'QUAD4 | TRIA3 & STRESS*') goto 100 endif

Page 115: MSC.Access User's Manual Version 2005.1

When the OBJECT task is selected, this section is used to setup for the action. The first DDL action once the object name has been obtained and converted to upper case character set, is to translate the name to a surrogate key via the function MSCLDC. Given that the object name exist, the DDL control entry for the surrogate key is obtained. Finally the subroutine DBESPT, explained later, is used to format the binary DDL schema. C C Check for the OBJECT task if ( string(1:1).eq.'O') then 200 continue C Request user for the object name WRITE (output,210) 210 format (/' Enter Object Name (null to quit) ',$) READ (conin,120,iostat=ios) string rellen = LNOBLN(string) if ( ios.lt.0 .or. rellen.le.0 ) goto 100 Call LC2UC (string(:rellen) ) C C Attempt to locate name in the DDL idx = MSCDLC (string,rellen,relptr,relnum,reldic) if (idx.le.0) then WRITE (output,220) string(1:rellen) 220 Format (' *** Object ',a,' is not in the Data Definition') goto 200 else C Read the Control Instance for the Object Call READR (ddlmap,stack,idx,iret) if (iret.ne.0) then WRITE (output,230) iret 230 Format (' *** Object Control Instance could not be ', * 'recovered, iret=',i3) goto 200 else C Format the Object to the screen Call DBESPT (1,stack) endif endif goto 200 endif

Page 116: MSC.Access User's Manual Version 2005.1

This next section provides a functional interface which uses the DDL interfaces to perform primitive grouping of objects by title area dictionary words. The “*” symbol is used to perform pre/post word matches due to variations in word syntax. The DDL object DDLQBYTL contains an entries which use dictionary indices for keys into the object, with link lists entries to maintain the open-ended list of possible object surrogate keys. Boolean symbols of & for AND operations and | for OR operations are used to form more complex joins of the dictionary words. C C Check for the TOKEN task if ( string(1:1).eq.'T' ) then if ( ddltok.lt.0 ) then C Open the DDL object containing the query tokens list(1) = ddlqby(1) list(2) = ddlqby(2) Call DBECLR (list(3),10,0) Call OPENR (dbnum,list,tlen,ddltok,0,0,0,0,0,0,iret) if ( iret.ne.0 ) then WRITE (output,310) 310 format (' *** The token object could not be opened') goto 100 endif endif C 320 continue C Request user for the object name WRITE (output,330) 330 format (/' Enter Token clause (null to quit) ',$) READ (conin,120,iostat=ios) card rellen = LNOBLN(card) if ( ios.lt.0 .or. rellen.le.0 ) goto 100 Call LC2UC (card(:rellen) ) C Compress the card and note where the strings are nsloc = 0 jp = 0 do 340 i=1,rellen if ( card(i:i).eq.' ' ) goto 340 jp = jp + 1 card(jp:jp) = card(i:i) if ( card(jp:jp).eq.'&' .or. * card(jp:jp).eq.'|' ) then nsloc = nsloc + 1 sloc(nsloc) = jp endif 340 continue nsloc = nsloc + 1 sloc(nsloc) = jp + 1

Page 117: MSC.Access User's Manual Version 2005.1

C C Clear flags area to zero for accummulation Call DBECLR (iar,relnum,0) jp = relnum kp = jp + relnum do 500 pass=1,nsloc Call DBECLR (iar(jp+1),relnum,0) if ( pass.eq.1 ) then sstr = 1 else sstr = sloc(pass-1) + 1 endif send = sloc(pass) - 1 slen = send - sstr + 1 string = card(sstr:send) itest = INDEX(string,'*') if ( itest.eq.0 ) then C Presume a single term for token idx = MSCDLC (string,slen,wrdptr,wrdnum,wrddic) if (idx.le.0) then WRITE (output,410) string(1:slen) 410 Format (' *** Token ',a,' is not in the Data Definition') goto 495 endif C Read the Control Instance for the Object Call MSCPPT (ddltok,idx,iar(kp+1),ip) if ( ip.le.0 ) goto 495 do 420 i=1,ip idx = iar(kp+i) iar(jp+idx) = 1 420 continue else C Asterisk encounter as wild match loop = MSCDLA (string,slen,wrdptr,wrdnum,wrddic,list,2000) if (loop.eq.0) then WRITE (output,430) string(1:slen) 430 Format (' *** Token ',a, * ' could not be matched in the Data Definition') goto 495 endif loop = ABS(loop) do 450 k=1,loop C Read the Control Instance for the Object Call MSCPPT (ddltok,list(k),iar(kp+1),ip) if ( ip.gt.0 ) then do 440 i=1,ip idx = iar(kp+i) iar(jp+idx) = 1 440 continue endif 450 continue endif

Page 118: MSC.Access User's Manual Version 2005.1

C Cannot operate on first list ONLY if ( pass.gt.1 ) then C Delimiters of "&" AND or "|" OR are acceptable if ( card(lstdel:lstdel).eq.'&' ) then C Perform an AND operation do 460 j=1,relnum if ( iar(j).eq.0 ) goto 460 if ( iar(jp+j).eq.0 ) iar(j) = 0 460 continue else if ( card(lstdel:lstdel).eq.'|' ) then C Perform an OR operation do 470 i=1,relnum if ( iar(jp+i).ne.0 ) iar(i) = 1 470 continue else WRITE (output,480) card(lstdel:lstdel) 480 Format (' *** Invalid token delimiter ',a) goto 495 endif endif else C Initialize for first string encountered do 490 i=1,relnum iar(i) = iar(jp+i) 490 continue endif 495 continue lstdel = sloc(pass) 500 continue C Compress the list in iar(1:relnum) lstip = 0 do 510 i=1,relnum if ( iar(i).eq.0 ) goto 510 lstip = lstip + 1 iar(lstip) = i 510 continue if ( lstip.eq.0 ) goto 320 istr = 0 do 540 i=1,lstip kp = iar(i) nl = relptr(kp+1) - relptr(kp) if ( istr+nl.gt.100 ) then WRITE (output,520) card(1:istr) 520 format (1x,a) istr = 0 endif kp = relptr(kp) do 530 j=1,nl istr = istr + 1 card(istr:istr) = reldic(kp) kp = kp + 1 530 continue istr = istr + 1 card(istr:istr) = ' ' 540 continue

Page 119: MSC.Access User's Manual Version 2005.1

if (istr.gt.0) WRITE (conout,520) card(1:istr) if ( lstip.eq.1 ) then WRITE (output,550) 550 format (' Print Schema (y/n) ? ',$) READ (conin,120) string if ( string(1:1).eq.'Y' .or. string(1:1).eq.'y' ) then Call READR (ddlmap,stack,iar(1),iret) if (iret.eq.0) Call DBESPT (1,stack) endif else WRITE (output,560) 560 format (' Print Descriptions (y/n) ? ',$) READ (conin,120) string if ( string(1:1).eq.'Y' .or. string(1:1).eq.'y' ) then do 580 i=1,lstip C Read the Control Instance for the Object Call READR (ddlmap,stack,iar(i),iret) if (iret.eq.0) then kp = iar(i) nl = relptr(kp+1) - relptr(kp) kp = relptr(kp) - 1 WRITE (output,570) (reldic(kp+j),j=1,nl) 570 format(' Object : ',20a1) Call DBESPT (2,stack) endif 580 continue endif endif goto 320 endif C goto 100 C end

Page 120: MSC.Access User's Manual Version 2005.1

10.2 Support Subroutine to Process DDL Schema The purpose of the subroutine is to format the content of an object DDL. The higher application function is presumed to have converted the object name into a surrogate key and read the DDLMAP logical file to obtain the DDL control entry. Subroutine DBESPT (iopt,rec) C C Routine used to format the information concerning an object from a C supplied control instance. C C THIS PROGRAM IS CONFIDENTIAL AND A TRADE SECRET OF THE MSC.SOFTWARE C CORPORATION. THE RECEIPT OR POSSESSION OF THIS PROGRAM DOES NOT CONVEY ANY C RIGHTS TO REPRODUCE OR DISCLOSE ITS CONTENTS, SELL, LEASE, OR OTHERWISE C TRANSFER IT TO ANY THIRD PARTY, IN WHOLE OR IN PART, WITHOUT THE SPECIFIC C WRITTEN CONSENT OF THE MSC.SOFTWARE CORPORATION. C Implicit Integer (a-z) C Integer nattr Parameter ( nattr=14 ) Character form*6,line*80,keywrd*8,dtype(5)*1,quals(nattr)*5 Character keysav*8,stpwrd*8 Character reldic*1,keydic*1,wrddic*1 Integer rec(12) Logical either C #include "sysfil.cmn" C Common /MSCDLP/ ddldb,ddlmap,relnum,keynum,wrdnum Common /MSCDPR/ relptr(2001) Common /MSCDPK/ keyptr(3001) Common /MSCDPW/ wrdptr(2001) Common /MSCDCR/ reldic(8000) Common /MSCDCK/ keydic(9000) Common /MSCDCW/ wrddic(8000) C Common /DBCXXX/ iz(1) C Integer bspace Parameter (bspace=1024) Integer local(bspace),inst(bspace),values(bspace) C Data quals/'Proj ','Seid ','Path ','Subc ','Surf ','Vol ',

• 'Set ','Appr ','Dsgn ','Pitr ','AQMS ','Acfg ', • 'List ','Comp '/

Data dtype/'I','R','A','L','D'/

Page 121: MSC.Access User's Manual Version 2005.1

The first section determines the object type. This is done by examining the control entry and performed a boolean operation on the third location net to high order bit. When the bit is zero, then the object is keyed, when the bit is one then the object is vector. C if ( iopt.eq.1 ) then C Pump out the information concerning the Object if ( IAND(rec(3),iz(bastwo+31)).eq.0 ) then form = 'Keyed' else form = 'Vector' endif WRITE (output,305) form 305 format (' Format: ',a) endif

The next section builds up the object title or description. This area was used in the previous routine to perform look ups by word boolean operations. The four entry location contains the entry number for the list of title words. This list is first extracted by the MSCPPT functions. Then the MSCASM function converts the enumerated list into a character line separated by blanks and filled with blanks. The assumption here is that two lines are sufficient for the title information. C C Build up the Description Call MSCPPT (ddlmap,rec(4),local,nw) if (nw.gt.0) then np = 0 Call MSCASM (line,66,' ',' ',np,local,nw) WRITE (output,310) line(1:66) 310 format (' Description: ',a) if (np.ne.nw) then Call MSCASM (line,66,' ',' ',np,local,nw) WRITE (output,320) line(1:66) 320 format (14x,a) endif endif if ( iopt.eq.2 ) return

Page 122: MSC.Access User's Manual Version 2005.1

The control entry position three is again referenced. Bits a the lower part of the word are used to indicate which attributes are used by the object. Boolean operations are performed on the low to high bits and characters strings are merged to format the line of used reference. Note that there are some object, like the DDL objects, which utilize no attributes for qualification. C C Build up the Qualifier Line np = 0 do 350 i=1,nattr if ( IAND(rec(3),iz(bastwo+i)).eq.0 ) goto 350 if (np.eq.0) then line = ' Qualifiers: ' // quals(i) np = 18 else line(np+1:np+5) = quals(i) np = np + 5 endif 350 continue if (np.eq.0) then WRITE (output,360) 360 format (' Qualifiers: None'/) else WRITE (output,365) line(1:np) 365 format (a) endif

The last section of higher order information is the record index to the Nastran data blocks referenced by the object during the translation process. The build technique is similar to that of the object title. A record number of zero, or zero returned words, indicates that no Nastran data block were needed for the object construction. C C Process the Data Blocks Used Call MSCPPT (ddlmap,rec(5),local,nw) if (nw.gt.0) then np = 0 Call MSCASM (line,70,',',' ',np,local,nw) WRITE (output,410) line(1:70) 410 format (' DB Used: ',a) if (np.ne.nw) then Call MSCASM (line,70,',',' ',np,local,nw) WRITE (output,420) line(1:70) 420 format (10x,a) endif else WRITE (output,430) 430 format (' DB Used: None') endif

Page 123: MSC.Access User's Manual Version 2005.1

This section starts the interpretation section of the entry’s DDL schema. The function MSCPIV is used to decode and populate memory with the three array of control information. The “INST” is where the schema will be placed and it is “NI” words in length. All words are integer in value. The “VALUES” area are were the test values, if any, are placed. The length is “NV” words and that data is perceived to be of mixed word context. The “LOCAL” array is the optional location where the token dictionary word enumeration will be placed. Once local variables are initialized to reference array positions and entry word counts, the processing of the schema commences. C C Begin the Output Area for the Object Description WRITE (output,510) 510 format (' Record Structure') C C Pull the information output the data base concerning Object Call MSCPIV (ddlmap,rec,inst,ni,values,nv,local,0) C C Now cycle through the instructions word = 0 trap = 0 total = 0 count = 0 either = .false. intptr = -3 varflg = 0

Page 124: MSC.Access User's Manual Version 2005.1

This is the top of the process loop where end-of-schema conditions checked. The return here also assumes alignment to a control structure. When positive, a token control is a hand and a branch to a low line process section made. Test are then performed to determine if the next clause is an ENTRY/ENDENTRY or EITHER/OR section. Note that EITHER/OR clause can be embedded within the ENTRY/ENDENTRY clauses. 600 intptr = intptr + 4 if (intptr.ge.ni) goto 900 C C Check if word description of opcode if (inst(intptr).gt.0) goto 650 C Check for ENTRY/ENDENTRY Clauses if (inst(intptr).eq.-1) then if (total.eq.0) total = word count = inst(intptr+3) lenint = inst(intptr+2)-inst(intptr+1) + 1 trap = total + lenint entstr = word + 1 if (count.gt.0) then C Standard ENTRY/ENDENTRY Clause total = total + lenint*count stppos = 0 else C ENTRY/ENDKEY,pos,value Clause stppos = total + iabs(count) total = total + lenint np = inst(intptr+4) stpval = values(np) varflg = 1 endif intptr = intptr + 1 goto 600 endif

Page 125: MSC.Access User's Manual Version 2005.1

C Check for EITHER/OR Clause if (inst(intptr).eq.-2) then if (.not.either) then C First Clause either = .true. if (inst(intptr+4).eq.0) then WRITE (output,630) inst(intptr+1),inst(intptr+2) 630 format (' Note: Items',i4,' to ',i4, * ' are defined either as:') else keysav = keywrd np = inst(intptr+4) WRITE (output,635) keysav,values(np),inst(intptr+1), * inst(intptr+2) 635 format (' Note: If ',a,' =',i3,' then items',i4,' to', * i4,' are defined as:') endif else C All Subsequent Clauses word = inst(intptr+1) - 1 if (inst(intptr+4).eq.0) then WRITE (output,640) 640 format (7x,'or as:') else np = inst(intptr+4) WRITE (output,635) keysav,values(np),inst(intptr+1), * inst(intptr+2) endif endif intptr = intptr + 1 goto 600 endif goto 900

Page 126: MSC.Access User's Manual Version 2005.1

This is the section which interprets the token control section. This is composed of a keyword index, the binary format code, the starting index within “LOCAL” where the dictionary indices are located, and the number of words used for the token description. The various functions are used to convert enumerated values into strings and to assemble the dictionary words into the output line(s). C Standard instruction, first pull the keyword string C keyword pointer : format code : start ptr : # word desc 650 keywrd = ' ' Call MSCPTX (keywrd,klen,inst(intptr),keyptr,keydic) word = word + 1 if (word.eq.stppos) then stpwrd = keywrd slen = klen endif if (trap.eq.0 .and. total.gt.0) total = total + 1 fcode = inst(intptr+1) nw = inst(intptr+3) if (nw.gt.0) then np = 0 base = inst(intptr+2) Call MSCASM (line,59,' ',' ',np,local(base),nw) WRITE (output,660) word,keywrd,dtype(fcode),line(1:59) 660 format (i6,2x,a,2x,a,2x,a) 670 if (np.eq.nw) goto 690 Call MSCASM (line,59,' ',' ',np,local(base),nw) WRITE (output,680) line(1:59) 680 format (21x,a) goto 670 690 continue else WRITE (output,660) word,keywrd,dtype(fcode) endif if (word.eq.trap) then if (entstr.eq.trap) then WRITE (output,700) entstr,count 700 format (' Item',i4,' is repeated',i3,' times.') else if (count.gt.0) then WRITE (output,715) entstr,trap,count 715 format (' Items',i4,' to',i4,' are repeated',i3,' times.') else WRITE (output,720) entstr,trap,stpwrd(1:slen),stpval 720 format (' Items',i4,' to',i4,' are repeated until ',a, * ' is equal to ',i6) endif endif trap = 0 word = total endif goto 600

Page 127: MSC.Access User's Manual Version 2005.1

When the schema has been processed, the accumulated total is printed. Note that this is a calculated values and not part of the DDL control entry. C 900 if (total.ne.0) then if (varflg.eq.0) then WRITE (output,910) total 910 format (' Note: Total Instance length is ',i5,' words.') else WRITE (output,915) total 915 format (' Note: Total length is variable and a minimum of a ', * i5,' word Instance is created.') endif endif C return end

Page 128: MSC.Access User's Manual Version 2005.1

C H A P T E R 11

INSTALLATION The installation of MSC.Access assumes that MSC.Nastran has already been installed on your computer system. Most of this chapter has been derived from the standard MSC.Nastran Installation Manual dealing with the utility program installations. Installation procedures are machine dependent. The files which define the MSC.Access delivery are delineated in Chapter 7. The utilities which are built from the source code delivered in the Access sub-directory are discussed in this chapter. The MSC.Access sample source files are located in the MSC.Access source directory install_dir/msc2001/access on UNIX and install_dir\msc2001\access on Windows. This directory is an optional component of the MSC.Nastran installation. 11.1 Building DDLPRT The DDLPRT program source code is in the file "ddlprt.F". To build the program, change the working directory to the access directory and type the command: msc2001 access ddlprt If you do not have write access to the source directory, install_dir/msc2001/access on UNIX and install_dir\msc2001\access on Windows, copy the entire directory to another location, change the working directory to the new location, and issue the command: msc2001 ./access ddlprt on UNIX, or msc2001 .\access ddlprt on Windows. Note, the directory specification is required in this circumstance.

Page 129: MSC.Access User's Manual Version 2005.1

11.2 Building DDLQRY The DDLQRY program source code is in the file "ddlqry.F". To build the program, change the working directory to the access directory and type the command: msc2001 access ddlqry If you do not have write access to the source directory, install_dir/msc2001/access on UNIX or install_dir\msc2001\access on Windows, copy the entire directory to another location, change the working directory to the new location, and issue the command: msc2001 ./access ddlqry on UNIX, or msc2001 .\access ddlqry on Windows. Note, the directory specification is required in this circumstance. 11.3 Building DEMO1 The DEMO1 program source code is in the file "demo1.f". To build the program, change the working directory to the access directory and type the command: msc2001 access demo1 If you do not have write access to the source directory, install_dir/msc2001/access on UNIX or install_dir\msc2001\access on Windows, copy the entire directory to another location, change the working directory to the new location, and issue the command: msc2001 ./access demo1 on UNIX, or msc2001 .\access demo1 on Windows. Note, the directory specification is required in this circumstance. 11.4 Building DEMO2 The DEMO2 program source code is in the file "demo2.f". To build the program, change the working directory to the access directory and type the command:

Page 130: MSC.Access User's Manual Version 2005.1

msc2001 access demo2 If you do not have write access to the source directory, install_dir/msc2001/access on UNIX or install_dir\msc2001\access on Windows, copy the entire directory to another location, change the working directory to the new location, and issue the command: msc2001 ./access demo2 on UNIX, or msc2001 .\access demo2 on Windows. Note, the directory specification is required in this circumstance. 11.5 Building SMPLR SMPLR reads a MSC.Access data base (XDB) file produced by MSC.Nastran. The sample program source code is only provided as a simple example illustrating basic concepts. It is not intended to be a complete or usable program. The SMPLR program source code is in the file "smplr.f". To build the program, change the working directory to the access directory and type the command: msc2001 access smplr If you do not have write access to the source directory, install_dir/msc2001/access on UNIX or install_dir\msc2001\access on Windows, copy the entire directory to another location, change the working directory to the new location, and issue the command: msc2001 ./access smplr on UNIX, or msc2001 .\access smplr on Windows. Note, the directory specification is MSC.Access in this circumstance.

Page 131: MSC.Access User's Manual Version 2005.1

APPENDIX A

MSC.Access DBIO SUBROUTINE DESCRIPTIONS DBIO Subroutine Descriptions This appendix delineates the application interfaces to the basic DBIO (Data Base Input / Output ) services. The specific interfaces for the Data Definition Language interfaces are presented in Appendix B. The underline functions and additional memory areas are discussed in the last sections of this appendix. Subroutine Name: CLOSGR 1. Entry Point: CLOSGR 2. Purpose: Closes a logical file, updates the data base dictionary control information, and releases locked pages to the pool. 3. Calling Sequence: CALL CLOSGR (FILNUM)

FILNUM Integer-in/out Logical file number to close 4. Method: The FILNUM value is checked to verify it is in the proper range and update operations to the data base are allowed. For read-only operations, an immediate branch to the buffer unlocking logic is made. Otherwise, a decision is made between keyed or sequential object processing. For sequential objects, rewrites conditions are checked in order to trim excess blocks from the object. Information from the control area is moved to the object's primary map or starting block location. This information is also moved to a local array used for data base dictionary entry replacement. The replacement logic is discussed in routine DICRPL. The paging pool blocks with write requirements are marked. They are ready to be written to the data base when the data base is closed or the application program calls PAGCLR. The logical file is released for re-use and FILNUM is set to -1.

Page 132: MSC.Access User's Manual Version 2005.1

Subroutine Name: DBCLOS 1. Entry Point: DBCLOS 2. Purpose: Closes the logical data base and physical file 3. Calling Sequence: CALL DBCLOS (DBNUM,DUMMY,IRET)

DBNUM Integer-input Logical data base number to close

DUMMY Integer-input Currently unused. For prior releases, this argument represented the memory address for an I/O buffer work area.

IRET Integer-output Return code from the routine

0 -> Normal data base close 1 -> Logical data base already closed 2 -> DBNUM value outside valid range

4. Method: The logical data base range and open status are checked. The FORTRAN unit number is extracted from the control area. Routine PAGCLR is called to clear all outstanding write requirements. The appropriate operating system close operation is performed, and the control area is updated to show the logical data base is closed and the logical reference available for further utilization. The routine PAGDBF is used to then un-thread the logical data base from the paging pool. This routine is computer/operating system dependent.

Page 133: MSC.Access User's Manual Version 2005.1

Subroutine Name: DBOPEN 1. Entry Point: DBOPEN 2. Purpose: Opens the logical data base against a operating system physical file. 3. Calling Sequence: CALL DBOPEN (DBNUM,MODE,BLKSIZ,IRET,FILNAM)

DBNUM Input-integer Logical data base number to open

MODE Input-integer Open option control +MODE -> New data base, MODE is the maximum number of blocks 0 -> Old data base, open read-only logically -MODE -> Old data base, open update

BLKSIZ Integer-input Block Size for the data base when new. When data bases are old, the

size will be automatically extracted. Version 4 and earlier was an address to an I/O buffer, but unused until Version 71.

IRET Integer-output Return code from the routine

0 -> Normal, data base is ready for operations. 1 -> Data base does not exist. 2 -> DBNUM value is outside valid range. 3 -> Logical data base is already assigned. 4 -> Physical data base, defined as NEW, already exists. 5 -> Bad length determined for the FILNAM 6 -> A operating system READ error during vaildation 7 -> The file associated with FILNAM is not an XDB 8 -> The BLKSIZ exceeds the PAGCFGX specification 9 -> Data base is heterogeneous but not DDL in the XDB 10 -> PAGCFGX configuration for DDL support is insufficent 11 -> PAGCFGX extra buffer specification was missing

FILNAM Char-input Physical file name stored as character variable and supplied according

to operating system standards. 4. Method: Before any call to DBOPEN, the Paging Pool Area must be configured using PAGCFG. Failure to configure the Paging Pool Area results in a call to the routine FAILUR which stops the execution of the application program. After Version 71, the input versus the actual data base block size is verified against the paging pool specification. Error condition will returned when the data base block size exceeds that of the paging pool. The range of logical data bases and available status are checked. If these are outside the range or are unavailable, the appropriate IRET value is returned. All MODE values are initially processed with STATUS='OLD' in a FORTRAN OPEN statement. The update and read-only modes read the first record containing data base characteristics from the data base. The content is moved from a pool-defined block to the appropriate location in the control area. When the new mode is specified, the FORTRAN OPEN statement with

Page 134: MSC.Access User's Manual Version 2005.1

STATUS='OLD' fails. The OPEN is re-issued using the `NEW' status parameter. The control areas are initialized, and four blocks are reserved from the data base for the data base directory (record one), the data base dictionary primary and secondary maps (records two and three), and the first dictionary data area (record four). This routine is computer/operating system dependent.

Page 135: MSC.Access User's Manual Version 2005.1

Subroutine Name: DBFLOC 1. Entry Point: DBFLOC 2. Purpose: Locate and open an object among the open data base(s) 3. Calling Sequence: CALL DBFLOC ( NAME, FILNUM, FLEN, FNUM, IRET ) NAME Array-input Dictionary entry of an object name FILNUM Integer-output Logical file number assigned to the opened object FLEN Integer-output The length of an instance for a keyed object or the total length in words for a sequential object FNUM Integer-output The number of entries for keyed object or "1" for sequential objects IRET Integer-output Return code, conforming to OPENR/OPENS error codes, or the additional 101 - object format code is neither RECORD or VECTOR 102 - dictionary entry could not be located among open database(s) 4. Method: The object is first located, is possible, among the open data bases by search from low to high logical data enumeration. Once the first is located, either OPENR or OPENS is used to depending upon it's form. The OPENR allows for application updates, while OPENS for sequential objects opens for read-only. Statistic concerning the object size are also returned to the application.

Page 136: MSC.Access User's Manual Version 2005.1

Subroutine Name: DBVALD 1. Entry Point DBVALD 2. Purpose: To validate that file is an MSC.Access data base and return block size and data

definition language version stamps. 3. Calling Sequence: CALL DBVAVD (IRET,FILNAM,NAML,BLKSIZ,DDLSIZ,NATIVE) IRET Integer-output Return code from the routine 0 -> Normal, output data areas populated 1-> The NAML parameter is invalid 2 -> The data base indicated by FILNAM does not exist 3 -> The data base could not be opened 4 -> A operating system READ error occurred fetching information 5 -> Data base record counts are inconsistent 6 -> Data base size inconsistent with number of records and BLKSIZ >10 -> IRET – 10 directory word is invalid and not true XDB

FILNAM Character-input Physical file name stored as character variable and supplied according to operating system standards.

NAML Integer-input The size of FILNAM in characters. BLKSIZ Integer-output When data base exists, the block size in words of the platform. DDLSIZ Integer-output When data base exists, the encrypted size of the data definition language NATIVE Integer-output Native platform flag. 0 -> Native to current platform 1 -> Big/little endian, 32 bit platforn word construction 4. Method: First the existence of the data base is determined. When the FILNAM exists, then it is opened and the data base directory is recovered. Validation then proceeds when the NATIVE mode of the data base is determined. The block counts are verified, see Section 5.1.4.1 concerning the contents of the data base directory. This validates the allocated, used and free blocks values are consistent. Using the allocated block and BLKSIZ, the physical file length is verified to eliminate file transfer issues. Additional directory words are checked for consistency of values, and if found to be invalid, the position is returned to the application via the IRET variable. Note that BLKSIZ, DDLSIZ and NATIVE are returned only when the FILNAM exists.

Page 137: MSC.Access User's Manual Version 2005.1

Subroutine Name: DELREC 1. Entry Point: DELREC 2. Purpose: Delete entries from keyed objects of opened logical files. 3. Calling Sequence: CALL DELREC (FILNUM,KEY,IRET)

FILNUM Integer-input Open logical file containing entries to be deleted

KEY Integer-input Key of the entry to delete from the object

IRET Integer-output Return code from the routine 0 -> Normal, entry deleted 1 -> KEY not found; no action taken 2 -> Invalid logical file number 3 -> Logical data base opened for read only; no action taken

4. Method: The FILNUM range and data base status are checked, and the appropriate error return codes are set. If the KEY is not found, then the logical pointers into the object are updated to the position where the KEY would have been found. The proper return code is set, and control is returned to the calling routine. When the KEY exists, the maps to the primary, secondary and data areas are loaded and locked into the paging pool area. If the KEY points to the only entry in the object, then the control area values are reset and the secondary map block is returned to free block list. When the KEY points to the first or last entry of the object, modifications are made to both the primary and secondary map tables. For all other entries, checks to determine secondary map modifications are made. If modifications are detected, the primary map is updated.

Page 138: MSC.Access User's Manual Version 2005.1

Subroutine Name: DICENT 1. Entry Point: DICENT 2. Purpose: Recover dictionary entries from the data base in ascending sequence. 3. Calling Sequence: CALL DICENT (DBNUM,ENTRY,PRTFLG,NAME,BLK)

DBNUM Integer-input Logical data base number

ENTRY Integer-in/out Flag to control dictionary entry processing 0 -> Initial condition; start at beginning of dictionary +N -> Returned the next dictionary entry -N -> No more dictionary entries exist

PRTFLG Integer-input Optional print control flag for file output

0 -> Print dictionary content before returning first entry 1 -> No optional print recovery

NAME Array-output Contains the retrieved dictionary entry values. The array must be at

least twelve words in length.

BLK Integer-in/out Current data base block being processed 4. Method: The standard bounds checking and the data base open conditions are verified. If either condition is unsatisfied, a FATAL message is issued and the job is aborted. The value of ENTRY is examined to determine the processing requirements. If ENTRY is zero, the PRTFLG value is checked to determine optional print requests. BLK is set to the first data area of dictionary entries from information stored in the control area. This block is moved to a paging pool area, and local pointers are set up. Dictionary information is returned to the calling routine. When the data area is exceeded, the next block, if any, is retrieved using the block's linked list. If an ENTRY value of -1 is detected, no more dictionary entries exist. DICENT processing is application dependent. One dictionary entry per call is returned for processing by the application program.

Page 139: MSC.Access User's Manual Version 2005.1

Subroutine Name: DICPRT 1. Entry Point: DICPRT 2. Purpose: Prints data base control values and dictionary entries on the output file 3. Calling Sequence: CALL DICPRT (DBNUM,OPTION)

DBNUM Integer-Input Logical data base number

OPTION Integer-Input This argument represented the memory address of an I/O buffer work area for Version 1:3.

For Version 4:2001.1, it was unused. For Version 2001.1 and later an Print OPTION was defined. 0 -> Long print, Object entry and control values. 1 -> Short print, Object entry values only.

4. Method: The procedure is similar to the DICENT routine described in Section ----. DICPRT processing is application independent. All dictionary entries and optionally the control information is printed in the output file.

Page 140: MSC.Access User's Manual Version 2005.1

Subroutine Name: DICRDR 1. Entry Point: DICRDR 2. Purpose: Returns control information for existing data base dictionary entries. 3. Calling Sequence: CALL DICRDR (DBNUM,NAME,DAT,IRET)

DBNUM Integer-input Logical data base number

NAME Array-input Dictionary entry to locate

DAT Array-output Twelve word array used to return dictionary entry control information, defined as follows:

DAT( 1) -> Internal data relation number DAT( 2) -> Format of the current relation DAT( 3) -> Block number for primary map DAT( 4) -> Block number for first data area DAT( 5) -> Number of words per entry DAT( 6) -> Maximum number of entries per block DAT( 7) -> Minimum key value for relational data structures DAT( 8) -> Number of entries DAT( 9) -> Number of data blocks DAT(10) -> Number of secondary maps DAT(11) -> Maximum key value for relational data structures DAT(12) -> Last data block in the data block linked-list

IRET Integer-output Return code from the routine

0 -> Dictionary entry found, DAT returned 1 -> Dictionary entry not found

4. Method: The logical data base number is checked for range and open status. The failure of either check causes an error return. When the data base is empty, IRET is set to 1 and control is returned to the calling routine. The name is checked against the dictionary primary map. Control is returned to the calling routine, if NAME is less than any relation on the data base. Otherwise, the secondary map is searched. The appropriate dictionary data area is searched. When a match is found, the control information is returned for the dictionary entry.

Page 141: MSC.Access User's Manual Version 2005.1

Subroutine Name: GRPURG 1. Entry Point: GRPURG 2. Purpose: Delete dictionary entries and release file space to the free block chain. 3. Calling Sequence: CALL GRPURG (DBNUM,NAME,D1,D2,D3,PRINT,IRET)

DBNUM Integer-input Logical data base number

NAME Array-input Dictionary entry to delete (purge)

D1 D2 Integer-input Currently unused. In earlier releases, these arguments D3 represented locations of three I/O buffer work areas

PRINT Integer-input Print echo option flag

0 -> Do not print entry deletion messages on output file. 1 -> Print entry deletion messages on output file.

IRET Integer-output Return code from the routine

0 -> Dictionary entry(s) deleted 1 -> Dictionary entry not deleted

4. Method: The GRPURG routine is the only routine in the DBIO library that accepts wildcard fields in the twelve-word dictionary NAME. The wildcard fields are specified by:

**** MSC.Nastran BCD values for words 1 and 2 -1 Integer values for words 3 through 12

The complete data base dictionary could be deleted if the NAME array was composed entirely of wildcard fields. Checks are made to verify that the logical data base number is valid and the logical data base can be updated. Failure of either check results in a return code (IRET=1) value returned to the calling routine. Dictionaries containing no entries set the return code to 1. The NAME argument is examined for wild card fields. Flags are set as appropriate for the deletion work areas. The primary dictionary map is scanned. The pointers are established to the entries to be deleted. Each secondary dictionary map is scanned and the entries matching the NAME argument are deleted. When altered, the secondary map is either compressed or deleted. The corresponding primary map is then modified to reflect the changes. The processing continues until all secondary maps for each primary map pointer have been searched.

Page 142: MSC.Access User's Manual Version 2005.1

When wild card fields are used to delete dictionary entries, a match between NAME/wild cards and the dictionary causes the primary map for the entry to be pushed on the free block stack. The data area is examined and flags are set to indicate data modification. If the modify flags are set and all data is to be deleted, the primary map area is released to the free block stack and all corresponding secondary maps are marked for deletion. If some data remains in the dictionary data area, it is compressed and the secondary maps are flagged to be changed.. For all secondary map changes, the corresponding primary map is updated. The procedure repeats through each secondary map until all secondary maps have been examined. The primary map is finally compressed and updated.

Page 143: MSC.Access User's Manual Version 2005.1

Subroutine Name: OPENC 1. Entry Point: OPENC 2. Purpose: Create new keyed object and return a logical file reference. 3. Calling Sequence:

CALL OPENC (DBNUM,NAME,WRDREC,FILNUM,D1,D2,D3,D4,D5,D6,IRET)

DBNUM Integer-input Logical data base number

NAME Array-input Dictionary entry and keyed object name to create

WRDREC Integer-input Number of words per logical record in object

FILNUM Integer-output Logical file number assigned to the object

D1 Integer-input Currently unused. In prior releases, this argument represented the number of I/O buffers available

D2 D3 Integer-input Currently unused. In prior releases, these arguments D4 represented memory addresses for I/O buffer work areas. D5 D6

IRET Integer-output Return code from the routine

0 -> Normal data block creation 1 -> Requested NAME already existed 2 -> Too many logical files open

4. Method: NAME is checked to determine if it already exists. The control area is checked to make sure that a new object can be opened and made available for processing. If both conditions above are satisfied, the buffer management area is cleared and the DAT control area, as described in the DICENT routine description (Section A----), is created. The primary map blocks and the first data area are reserved in the dictionary and stored in the DAT array. The DAT array is copied to both the control area and the primary map block for file management. The logical file number assigned by the OPENC is returned to the calling application program.

Page 144: MSC.Access User's Manual Version 2005.1

Subroutine Name: OPENR 1. Entry Point: OPENR 2. Purpose: Open existing keyed objects for random access updating and return logical file reference. 3. Calling Sequence:

CALL OPENR (DBNUM,NAME,WRDREC,FILNUM,D1,D2,D3,D4,D5,D6,IRET)

DBNUM Integer-input Logical data base number

NAME Array-input Dictionary entry and object name to update

WRDREC Integer-output Number of words per record in object

FILNUM Integer-output Logical file number assigned to the object

D1 Integer-input Currently unused. In prior releases, this argument represented the number of I/O buffers available

D2 D3 Integer-input Currently unused. In prior releases, these arguments D4 represented memory addresses for I/O buffer work areas. D5 D6

IRET Integer-output Return code from the routine

0 -> Normal data block open 1 -> Requested NAME does not exist 2 -> Too many logical files open 3 -> Currently unused. In prior releases, it indicated too few buffers allocated. 4 -> Object already open

4. Method: DICRDR is used to check the existence of the object NAME and to retrieve its DAT control area. When the object exists, it is checked for a conflict to another logical file. If no conflicts exists, then a check for available processing space (i.e., less than twenty logical files currently open) is made. When space is available, the DAT control area is copied to the available control area. The remaining control fields are initialized for object management. The logical file number and words per record are returned to the calling application program.

Page 145: MSC.Access User's Manual Version 2005.1

Subroutine Name: OPENS 1. Entry Point: OPENS 2. Purpose: Open sequential objects for read or write operations and return logical file reference. 3. Calling Sequence: CALL OPENS (DBNUM,NAME,FLAG,FILNUM,Dl,IRET)

DBNUM Integer-input Logical data base number

NAME Array-input Dictionary entry to create/update/re-use

FLAG Integer-input Logical file open status flag 0 -> Open object to read 1 -> Open object to write

FILNUM Integer-output Logical file number assigned to object

D1 Integer-input Currently unused. In prior releases, this argument represented the

memory address of an I/O buffer work area.

IRET Integer-output Return code from the routine 0 -> Normal, object open for operation 1 -> Non-existent object is in the open for READ request 2 -> Error connecting object in the open for WRITE request 3 -> Too many logical files open 4 -> Requested object is not sequential type 5 -> FLAG value is outside valid range

4. Method: Check for available FILNUM to assign object then test FLAG for valid range. When the READ operation is requested, the existence of the object is verified by a dictionary search. For WRITE operations, DICRDR is called to determine if the object is new or old. For new objects, the DAT area is established and the primary and secondary dictionary blocks are mapped. For old objects, the DAT area is re-initialized for data over-writes. The control area is updated to mark the logical file in use. The assigned block is marked modified. The logical file number is returned in FILNUM to the calling routine.

Page 146: MSC.Access User's Manual Version 2005.1

Subroutine Name: OPENSQ 1. Entry Point: OPENSQ 2. Purpose: Open a keyed object for sequential processing and return logical file reference. 3. Calling Sequence: CALL OPENSQ (DBNUM,NAME,FILNUM,D1,IRET)

DBNUM Integer-input Logical data base number

NAME Array-input Object dictionary entry and object to open

FILNUM Integer-output Logical file number assigned to object

D1 Integer-input Currently unused. In prior releases, this argument represented the memory address of an I/O buffer work area.

IRET Integer-output Return code from the routine

0 -> Normal data block open 1 -> Requested object does not exist 2 -> Too many logical files open 3 -> Unused 4 -> Object already open for update

4. Method: This routine can only be used to open keyed objects for read access. The existence of the object is determined by DICRDR, and its form (keyed) is verified. Control areas are created for logical file operations and initialized with file control data. FILNUM is returned to the calling routine.

Page 147: MSC.Access User's Manual Version 2005.1

Subroutine Name: PAGCFGX PAGCFG 1. Entry Point: PAGCFGX 2. Purpose: Establish the paging pool and initialize the control area. 3. Calling Sequence: CALL PAGCFGX (OUTP,STRLOC,LENGTH,MAXBUF,MAXDDL,DICFLG, NATIVE,IRET) CALL PAGCFG (STRLOC,LENGTH,MAXBUF,DICFLG,IRET) OUTP Integer-input The FORTRAN unit for error messages and other formatted output.

STRLOC Integer-input Index into /DBCXXX/ for start of paging pool

LENGTH Integer-input Number of words available in /DBCXXX/ past STRLOC

MAXBUF Integer-input Number of words in the largest block MAXDDL Integer-input The maximum DDL size returned by DBVALD

DICFLG Integer-input Dictionary cache allocation parameter NATIVE Integer-input Flag denoting if all data base processing to be platform native 0 -> NATIVE processing only 1 -> Heterogeneous platform information exchange possible

IRET Integer-output Return code from the routine

0 -> Paging pool established 1 -> Insufficient memory allocated for paging pool

4. Method: The PAGCFG entry point is still provided as part of the DBIO library, although applications should attempt to use the new interface. The PAGCFG routine invokes the PAGCFGX subroutine with OUTP=6, FORTRAN unit for standard output; MAXDDL=0, no Data Definition Language present; and NATIVE=0, implying homogeneous platform operations. The remaining old parameters are passed along to the new interface unchanged. Please review section 5.1.2, Access Block (Page) Allocation, for the implications difference between the interfaces. The values of LENGTH, MAXBUF and MAXDDL are saved in the paging control area. The MAXBUF is saved as an even number of words in consideration of DOUBLE PRECISION word alignment requirements. The number of pages (NOFP) is calculated. NOFP is reduced until the linked lists are contained in LENGTH memory space. The minimum memory requirement for the lists is 10*NOFP. The DICFLG parameter is tested to determine which dictionary caching algorithm to use. When DICFLG is zero, ten percent of NOFP is used for caching. When positive, DICFLG indicates the number of concurrently open data bases and the maximum of 3*DICFLG and 10% of NOFP is

Page 148: MSC.Access User's Manual Version 2005.1

used for caching. When negative, the absolute value of DICFLG represents the number of pages to reserve for caching. This value must be less than NOFP. The dictionary cache must be at least three pages, and the maximum free pool must be at least seven pages. Therefore, the minimum NOFP is ten pages relative to the memory supplied. Starting with the Version 2001.1 release, additional memory tables for internal functions are created starting at STRLOC. These are approximately 300 words in length. The dictionary cache control lists are then allocated consisting of two lists; the linked list area and the data keys. Following the dictionary lists are five lists for data pool management. The first two are the same as those created for the dictionary cache. The third list represents the memory index of the pool pages and the data base and block identifications. Finally, when not NATIVE, and area is allocated for pooling the data definition language controls and local translation areas. The local translation areas are approximately 100 words in length. See Section 5.2.1, Memory Allocation, for size issues concerning the data definition language section. Starting with Version 2001.1, the PAGCFGX subroutine replaces the Block Data area GRSPBD for the initialization of the DBIO control tables. The implication is that every execution of the routine returns the tables to initialization state. The implies that ALL data bases must be CLOSED or information will be lost. State information in the /DEBUG/ commons are also cleared.

Page 149: MSC.Access User's Manual Version 2005.1

Subroutine Name: PAGCLR 1. Entry Point: PAGCLR 2. Purpose: Flush outstanding write requests in the paging pool to their specific physical devices. 3. Calling Sequence: CALL PAGCLR 4. Method: All pages in the pool are tested for outstanding write requests. This is determined by the sign of the logical data base assigned to the page. Negative values indicate outstanding write requests. Both the logical data base and the absolute block number are decoded from the data base key area. BLKWRT forces the block content to be transferred to the physical storage device. The sign is cleared, and the existing memory copy is retained. After all pages have been written, the directory and control blocks for all open data bases are updated and written back to the appropriate data base.

Page 150: MSC.Access User's Manual Version 2005.1

Subroutine Name: READBS 1. Entry Point: READBS 2. Purpose: Return previous keyed entry of an object based on current logical file position. 3. Calling Sequence: CALL READBS (FILNUM,ARRAY,IRET)

FlLNUM Integer-input Logical file number assigned by open routine

ARRAY Array-output Used to store the objects entry

IRET Integer-output Return code from the routine 0 -> Normal read from object 1 -> Beginning of object detected on read, or beginning of object previously detected, or no entries in object 2 -> Logical file number is outside range 3 -> Logical file is not keyed object

4. Method: Checks are performed to confirm that the logical file is valid and the data base is open. If no entries exist, control is returned to the calling routine. The data base and current logical file position are determined from the control area, and an index to the first entry of the block is resolved. If the index can be decremented, the data block is moved to the paging area and a map to the block is created. Otherwise, the data block back pointer is used to locate the previous data block and set the pointer to its last entry. The control area is updated, and the entry information is returned to the calling routine. If the pointer is positioned at the beginning of a object, the first entry of the object is returned and the return code (IRET) is set to one. The minimum dimension of ARRAY must be the same as the size of the largest entry to be processed. If the object has more values than the declared dimension of ARRAY, then memory is overwritten unpredictably. No error message is printed and no failed return code value is set.

Page 151: MSC.Access User's Manual Version 2005.1

Subroutine Name: READR 1. Entry Point: READR 2. Purpose: Read a specific entry from a keyed object. 3. Calling Sequence: CALL READR (FILNUM,ARRAY,KEY,IRET)

FlLNUM Integer-input Logical file number assigned in open routine

ARRAY Integer-input Array used to store the object entry

KEY Integer-input First word of the entry to locate

IRET Integer-output Return code from the routine 0 -> Normal read from object 1 -> KEY not found 2 -> FILNUM out of range or not open 3 -> FILNUM was not a keyed object 4 -> KEY greater than maximum key 5 -> No entries exist for object

4. Method: Checks are performed to verify the logical unit range and the data base open status. Control is returned to the calling routine when no entries are found in the object. The data base is determined from the control area. The block chain to the entry is established. If the KEY does not exist, then one of the following takes place: If the requested KEY is lower than the smallest KEY in the object, then the first entry of the object is returned with a return code (IRET) set to one. If the requested KEY exceeds the largest KEY in the object, then the last entry of the object is returned with a return code (IRET) set to four. If the requested KEY is between the smallest and the largest KEY, then the next larger KEY in the object is used to return the entry and the return code (IRET) is set to one. If the KEY is found in the object; the paging and control areas are updated, the entry is returned, and the return code (IRET) is set to zero. The minimum dimension of ARRAY must be the same as the size of the largest entry to be processed. If the entry has more values than the declared dimension of ARRAY, then memory is overwritten unpredictably. No error message is printed, and no failed return code value is set.

Page 152: MSC.Access User's Manual Version 2005.1

Subroutine Name: READS 1. Entry Point: READS 2. Purpose: Read information from a sequential object. 3. Calling Sequence: CALL READS (FILNUM,ARRAY,ROOM,NREAD,EOR,IRET)

FlLNUM Integer-input Logical file number assigned in open routine

ARRAY Array-Output Area to contain the sequential information

ROOM Integer-input Number of words requested from the object current cursor location

NREAD Integer-Output Number of words returned (up to maximum of ROOM)

EOR Integer-Output Read transfer status indicator 0 -> All requested data returned 1 -> Not all requested data returned

IRET Integer-Output Return code from the routine

0 -> Normal read from object 1 -> End of record/file encountered 2 -> FILNUM outside range or file not open 3 -> Data block not sequential object 4 -> Data block not open for read

4. Method: Checks are performed to verify the range of the logical unit and the open status of the object. The sequential format of the object is verified. No data in the object causes control to be returned to the calling routine. Local variables are initialized from the argument list, and the current block is positioned according to the control information. A connection to the block in the paging pool is established. The contents of the current block are checked against the transfer requirements to determine the information to be returned. The data is copied from the paging buffer to the application array, and the local variables are updated. The amount of data transferred is checked to determine if all requested data has been moved. If not, the next block is recovered and the data transfer continues. Processing continues until either the transfer requirements are satisfied or the end of data is encountered. The control area is updated. The number of words read NREAD is returned to the calling routine. The minimum dimension of ARRAY must be the third argument ROOM in the calling sequence. This argument limits the number of words to return to the calling routine for processing. If the object has more values than the ROOM argument value, then ROOM number of words are

Page 153: MSC.Access User's Manual Version 2005.1

returned, the number of words actually read (NREAD) is set to ROOM, and the read transfer indicator (EOR) is set to 1.

Page 154: MSC.Access User's Manual Version 2005.1

Subroutine Name: READSQ 1. Entry Point: READSQ 2. Purpose: Read either the next entry or a series of entries starting at the next entry from keyed object. 3. Calling Sequence: CALL READSQ (FILNUM,ARRAY,ROOM,NREAD,EOR,IRET)

FlLNUM Integer-input Logical file number assigned in open routine

ARRAY Array-Output Area containing the read entries

ROOM Integer-input Number of entries to read +ROOM -> Number of entries to return -ROOM -> Advance file cursor by ROOM entries, but return no data

NREAD Integer-output Number of words returned in ARRAY

EOR Integer-output Read transfer status indicator

0 -> All requested data was returned 1 -> Not all requested data was returned

IRET Integer-output Return code from the routine

0 -> Normal read from object 1 -> End of file encountered 2 -> FILNUM out of range, or file not open 3 -> Data block not keyed object

4. Method: The difference between this routine and READBS is that the entries returned are the next entry instead of the previous entry. Checks are made to verify each subroutine argument. The skip data versus the return values is determined by the sign of ROOM. The entry count is converted to words by extracting the words per record from the control area. The database and current position pointers are extracted from the control area, and a data buffer is established in the paging pool. The data is transferred to the array until either all requirements are met or an end of file is encountered. The control area pointer is updated to show the new current position. The NREAD argument is set if a short transfer is detected. The minimum dimension of ARRAY must be the same as the size of the largest object to be processed. Processing of multiple entries may require a larger minimum dimension. If more

Page 155: MSC.Access User's Manual Version 2005.1

values than the declared dimension of ARRAY are requested, then memory is overwritten unpredictably. No error message is printed, and no failed return code value is set.

Page 156: MSC.Access User's Manual Version 2005.1

Subroutine Name: WRITEI 1. Entry Point: WRITEI 2. Purpose: Insert or update entries in keyed objects. 3. Calling Sequence: CALL WRITEI (FILNUM,REC,IRET)

FILNUM Integer-input Logical file number assigned in open routine

REC Array-input Area containing the entry to be inserted/updated

IRET Integer-output Return code from the routine 0 -> Normal write to object 1 -> The data entry failed to be inserted/updated

4. Method: Checks are made to verify the open status of the object and the range of the logical units. The data block characteristics are recovered from the control area. The control area is checked for the special case of first write to the object. This case requires different processing than all other writes to the object. If entries already exist, then the new entry is checked to determine whether to update or create it. Updating existing entries is resolved from the entry pointers set in the file control area. For new entries, one of the following conditions exist: The current entry extends the object because its KEY is greater than the last KEY in the object. The entry is appended to the table, and the control area is updated. The current entry's KEY is less than the first KEY in the object. This entry becomes the new first entry of the object, and the control area is updated. The current entry is between the first and last entries in the object. If space exists in the current buffer to insert the entry, then the entry is inserted and the control area is updated. If sufficient space is not available, the object is split between data blocks. Then the mapping pointers are updated, the entry is inserted, and the control area is updated.

Page 157: MSC.Access User's Manual Version 2005.1

Subroutine Name: WRITES 1. Entry Point: WRITES 2. Purpose: Write content to an opened sequential object. 3. Calling Sequence: CALL WRITES (FILNUM,REC,NWRDS,IRET)

FILNUM Integer-input The logical file number assigned from open routine

REC Array-input The area containing the word(s) to append to the current sequential record

NWRDS Integer-input The length in words of the REC area

IRET Integer-output Return code from the routine

0 -> Normal termination 1 -> The FILNUM was out of range or not open 2 -> The object form was not of sequential type 3 -> The object was not open for write operations

Method: Checks are performed to verify the open status of the object, the range of the logical unit, and the sequential object format. The status from the control area is checked to determine if the object is new or old. Local variables are set indicating database and current file position. The information is transferred from the application work area to buffers in the paging pool. When all data has been transferred, the control area is updated to indicate the current block and the last used location.

Page 158: MSC.Access User's Manual Version 2005.1

BLOCK DATA DESCRIPTIONS Block Data: DBCTBD 1. Purpose: Initialize the labeled common block, listed below, for MSC.Access.

/DBCTA1/ NELEMS, LAST, INCR, NGROUP, E(1440) 2. Description: This block data initializes data for MSC.Nastran, MSC/GRASP, and MSC/XL structural elements. All elements currently defined are available. They are arranged by the element internal type number. Each element entry contains INCR number of values. References into this data area should always use INCR for index computations. This allows for future growth of the data area. NELEMS is the current number of elements in the system. LAST is the first word of the last element entry. DO loops have the following form:

DO xxx I = 1, LAST, INCR . . . .

. . . . xxx CONTINUE In the above loop, E(I) always points to the first word of an element entry. NGROUP is the number of different groups into which the elements can be separated. E is an array containing the element information. The array contains NELEM times INCR elements. Each element is defined as follows:

1. First half of element name (A4) 2. Second half of element name (A4) 3. Element type number 4. MSC.Access file mnemonic for stress and force data recovery 5. Label mnemonic for table and xyplot request in recover 6. Sort position in the output file processing 7. Class Grouping 1-> 1D elements such as RODs, BEAMs, etc 2 -> 2D element plates 3 -> 3D element solids 8. Maximum number of grid points for the element type. (Missing grid numbers are denoted by “-1"

or zero.) 9. Number of faces in the FACE/GRASP object 10. Number of entries within connection object 11. Name of property data block 12. Number of entries within property object 13. Minimum number of grid points on an element 14. MSC.Nastran internal base element number derived from GPTABD 15. Unused

Page 159: MSC.Access User's Manual Version 2005.1

User defined elements can be added to this list provided they are defined in the same way, the values for NELEM and INCR are increased, and the E array size is increased. Differences from MSC.Nastran DBCTBD contains information similar to the Element Summary Table (EST) described in the MSC.Nastran Programmer’s Manual The differences between the EST and the data in DBCTBD are: 9. The EST contains all elements supported by MSC.Nastran while DBCTBD contains only the elements supported by MSC/XL and MSC/GRASP. The DBCTBD list is shorter. 10. The element types were re-enumerated in DBCTBD. 11. The following table relates MSC.Access element type numbers to their corresponding MSC.Nastran element type numbers.

Mnemonic

MSC.Access

Element Types

MSC.Nastran

Element Types

AABSF

48

101

AEROBEAM

50

16

AEROQ4

52

72

AEROT3

51

15

AXIF2

-

47

AXIF3

-

48

AXIF4

-

49

BAR

12

34

BARS

13

100

BEAM

10

2

BEAMP

88

105

BEND

54

69

BUSH

47

102

BUSH1D

92

40

CHBDYE

44

107

Page 160: MSC.Access User's Manual Version 2005.1

CHBDYG 45 108

CHBDYP

46

109

CONE

-

35

CONM1

30

29

CONM2

31

30

CONROD

8

10

CONV

-

110

CONVM

-

111

CVINT

-

192

DAMP1

20

20

DAMP2

21

21

DAMP3

22

22

DAMP4

23

23

DAMP5

-

106

DUM3

-

55

DUM4

-

56

DUM5

-

57

DUM6

-

58

DUM7

-

59

DUM8

-

60

DUM9

-

61

ELAS1

16

11

ELAS2

17

12

ELAS3

18

13

ELAS4

19

14

FLMASS

-

46

FLUID2

-

43

FLUID3

-

44

FLUID4

-

45

GAP

15

38

Page 161: MSC.Access User's Manual Version 2005.1

HACAB 32 83

HACBR

33

84

HBDY

-

52

HEXA

2

67

HEXAP

41

141

HEXPR

35

76

MASS1

24

25

MASS2

25

26

MASS3

26

27

MASS4

27

28

PENPR

36

77

PENTA

6

68

PENTAP

42

142

PLOTEL

49

31

QUAD

94

164

QUAD4

1

33

QUAD8

3

64

QUADP

86

103

QUADR

29

82

QUADX

95

171

QVECT

-

113

QVOL

-

114

RADBC

-

115

ROD

9

1

SFINT

-

197

SHEAR

11

4

SLIF1D

-

116

SLOT3

-

50

SLOT4

-

51

TETPR

37

78

Page 162: MSC.Access User's Manual Version 2005.1

TETRA

14

39

TETRAP

43

143

TRIA3

4

74

TRIA6

7

75

TRIAP

87

104

TRIAR

34

70

TRIAX

96

168

TRIAX6

28

53

TUBE

5

3

VISC

93

24

VUBEM

91

191

VUHBDY

-

199

VUHEXA

38

145

VUPENTA

39

146

VUQUAD

89

189

VUTETRA

40

147

VUTRIA

90

190

WELD

53

200

Note: The MSC.Access element type enumeration for GENEL is 57 and DMIG is 58. Block Data: GRSPBD Purpose: Initialize the labeled common blocks listed below for MSC.Access from Version 1 through 2001.0. At Version 2001.1 and later, this block data is no longer necessary and its function of initialization has been moved to the PAGCFGX subroutine. The number of words in each common block is listed in parentheses after the common block name.

/DEBUG/ (30) /GRFIST/ (838) /GRDBLK/ (572) /SYSFIL/ (25)

The above lengths are for the 2001.1 version and the sizes are for access to 30 logical data bases and 30 logical files open simultaneously. The common blocks indicated below are no longer used by the DBIO service layer and represent lengths used for version 1 through 2001.0.

/DICPTR/ (1) /PTRBLK/ (26)

Description: Do not use or access information in the labeled COMMON blocks above.

Page 163: MSC.Access User's Manual Version 2005.1

The only exceptions are: a. The first value in the SYSFIL common block for Version 4 through 2001.0. This value controls the FORTRAN unit number for the standard output. b. The DEBUG common block. This common area contains 30 logical variables initialized to FALSE. These variables can be used to control diagnostic output. This block data is fully described in the Version 66, MSC/NASTRAN Programmers Manual under the DBC module description. ADDITIONAL DBIO INFORMATION Additional DBIO Subroutines The following subroutines are an integral part of the DBIO library. They are called by the subroutines described in the previous section. Do not use any of these names as the names for your subroutines.

BLKFIX BLKFRE BLKGET BLKMGR BLKMRK BLKRD BLKRET BLKWRT CFR CLC

DATMGR DBCTBD DBNCMP DBRMOV DEPBUG DICDAT DICINS DICMGR DICRPL DIOMSG

FAILUR INTSWP MSCBTP MSCEQI MSCFDR MSCGDI MSCGDM MSCGSK MSCIQE MSCLMK

MSCLOC MOVEW NEWFST PAGDBF SPLIT1 TABINS TBLOOK WRTFST WRTLST

The above routines are described in the Version 66 MSC.Nastran Programmers Manual as part of the DBC module description.

Page 164: MSC.Access User's Manual Version 2005.1

Labeled Common Blocks The following labeled common blocks are used in the subroutines in the DBIO object library in Version 66. They should not be redefined or reused. Common block lengths are given in words.

Common Block

Defined In

Length

DBCTA1

DBCTBD

1440

DBCXXX

SMPLR

100000

DEBUG

PAGCFGX

30

GRDBLK

PAGCFGX

572

GRFIST

PAGCFGX

838

SYSFIL

PAGCFGX

25

Note that DBCXXX is the equivalent of the MSC.Nastran open core common block concept and is defined in the SMPLR prototype driver program.

Page 165: MSC.Access User's Manual Version 2005.1

APPENDIX B

MSC.Access DATA DEFINTION LANAGUAGE INTERFACE ROUTINES

The subroutines defined in this section are built as an application layer upon the fundamental DBIO service routines described in Appendix A. These routines allow applications to develop a generic interface to the objects created by the MSC.Nastran DBC interface. These interfaces allow application to dynamically determine the attributes used by an object for the version release, the size of the object before open conditions, a generic symbol to token position and the numerical type of the token for application data formatting. Information which these functions utilize has been shipped with MSC.Nastran starting with Version 68.0.

Page 166: MSC.Access User's Manual Version 2005.1

Subroutine Name: MSCASM

Entry Point: MSCASM Purpose: Assembles a list of word pointers into literal text string with fill characters Calling Sequence: CALL MSCASM ( LINE, LENGTH, DELIMIT, FILL, STR, LIST, NLIST ) LINE Char-output Local application character string to return word tokens LENGTH Integer-input Maximum character length of the "line" string DELIMIT Char-input Character to be used to delimit the tokens FILL Char-input Character to be used to fill the remainder of the assembled line STR Integer-in/out Starting location, initialized to zero and reset on return to current list location LIST Integer-input The dictionary word pointer list obtained via an application call to MSCPPT NLIST Integer-input The number of tokens in the list obtained via an application call to MSCPPT Method: The character string LINE is constructed from the enumerated word values contained in the LIST array. The words are separated by the DELMIT character, and the remainder of LINE is filled with the FILL character beyond the last word of the LINE to the size of the LINE defined by LENGTH. This routine can be called more than once since the number of words comprising a text clause may exceed the LINE length. The monitoring of the STR parameter will indicate when the NLIST tokens have been processed.

Page 167: MSC.Access User's Manual Version 2005.1

Function Name: MSCDLC Entry Point: MSCDLC Purpose: Extracts the enumeration of a string value from the DDL mapping table. Calling Sequence: INDEX = MSCDLC (STRING,SLEN,PTR,NUM,DIC) INDEX Integer-return Enumeration value of the string 0 -> unsuccessful +n -> enumeration value STRING Char-input Character string to locate within a schema mapping table SLEN Integer-input The length in characters of string PTR Integer-input The mapping pointer table to be utilized NUM Integer-input The number of entries in the associated pointer table DIC Char-input The character dictionary associated with the pointer table Method: The words comprising the dictionary are searched for a match and the enumerated value of the word is returned.

Page 168: MSC.Access User's Manual Version 2005.1

Function Name: MSCKTY Entry Point: MSCKTY Purpose: Determine the type of key an object utilizes Calling Sequence: IRET = MSCKTY ( OBJECT,KEYTYP ) IRET Integer-return Return code 0 -> successful 1 -> unsuccessful, object name was not located in DDL schema 2 -> first token could not be recovered OBJECT Char-input Object name to locate in the schema stored as a string of length eight KEYTYP Integer-output Type of the object key 0 -> unknown 1 -> GKEY - grid access key 2 -> EKEY - element access key 3 -> CKEY - multi-object connection key 4 -> XKEY - external grid/element access key

Method: Load the object DDL template and check if first token matches one of the above types. When match occurs, return enumeration as KEYTYP and set function status.

Page 169: MSC.Access User's Manual Version 2005.1

Function Name: MSCLDD 1. Entry Point: MSCLDD 2. Purpose: Initializes application memory with schema tables. 3. Calling Sequence: IRET = MSCLDD ( DDLMAP, DDLDB, FLAG ) IRET Integer-return Return code from function 0 -> Successful n -> Various load/skip/memory problems were detected DDLMAP Integer-output Logical file number associated with the schema mapping object DDLBD Integer-input Logical data base application assigned to the schema data base FLAG Integer-input Boolean flag used to reduce memory requirement by not loading mapping tables Bit-wise supplied flag defined as the "2's" bit summations 1 -> Load the object name tables 2 -> Load the token name tables 4 -> Load the description word tables 4. Method: Save the logical data base reference to the Data Definition Language resource. The load the information and counts into the static common locations. The loads proceed first for the object names, followed by the token and description areas. The various sections are optionally loaded into memory and no checks are performed concerning the target area sizes, therefore, array over runs may occur if insufficient area was allocated.

Page 170: MSC.Access User's Manual Version 2005.1

Function Name: MSCLRA Entry Point: MSCLRA Purpose: Fills out the dictionary entry array from an environment table Calling Sequence: IRET = MSCLRA ( OBJECT,NAME, ENV ) IRET Integer-return Return code 0 -> Successful 1 –> Unsuccessful, object name was not located in DDL schema OBJECT BCD-input Object name to locate in the schema stored as a two word integer NAME Integer-output Integer array conforming to an MSC.Access dictionary standard ENV Integer-input The current environment table The list below indicate the location and the order of the environment array: 1. Project 2. Superelement 3. Path 4. Subcase 5. Set Identification 6. Surface Identification 7. Volume Identification 8. Approach 9. Design Cycle 10. P Iteration

11. Aero Mach, Q and Symmetry enumeration 12. Aero configuration 13. List Identification 14. Component Identification Method: The object name is converted into a surrogate key and the DDL control entry recovered. The output NAME field is then constructed using the attribute flags on the control entry merging with the values in the environment array.

Page 171: MSC.Access User's Manual Version 2005.1

Function Name: MSCLRT 1. Entry Point: MSCLRT 2. Purpose: Initializes memory for interfacing to a specific object when entry not needed. 3. Calling Sequence: IRET = MSCLRT (MNAME,RLEN,TNAME,TLEN, STR, FTYPE, KNT, STRIDE)

IRET Integer-return Return code from function -1 -> Object entry is needed to resolved embedded EITHER/OR clause

0 -> Successful 1 -> MNAME object could not be located within the schema 2 -> The control record could not be recovered from the MNAME object 3 -> The schema instance was incorrectly formatted 4 –> Incomplete schema instance was detected 5 -> Bad operational code was detected 6 -> The instruction operational codes are out of sequence 7 -> The internal memory area is about to be exceeded 8 –> The TNAME could not be located 9 –> Internal memory for clauses has been exceeded 10 –> Internal memory for values has been exceeded MNAME Char-input The object name to locate within the schema RLEN Integer-input The length of the MNAME string in characters TNAME Char-input The token name to locate within the object TLEN Integer-input The length of the TNAME string in characters STR Integer-output The word displacement within the entry where the token is positioned FTYPE Integer-output The format type of the token 1 -> Long Integer 2 -> Real Single Precision 3 -> MSC.Nastran Character Format 4 -> Logical 5 -> Real Double Precision KNT Integer-output The number of times the token appears in the entry STRIDE Integer-output The word displacement between the token(s) in the entry Method: The object name is mapped to the surrogate key and the control entry recovered. The DDL is interpreted and saved as a memory structure in a static common and passed to the other as a per need basis.

Page 172: MSC.Access User's Manual Version 2005.1

Subroutine Name: MSCPIV Entry Point: MSCPIV Purpose: Recovers the schema for the DDL object Calling Sequence: CALL MSCPIV ( DDLMAP, RECORD, INST, NINST, VALUES, NVAL, DESC, FLAG ) DDLMAP Integer-input Logical file handler assigned to the schema database RECORD Integer-input Control instant for enumerated object obtained from DDLMAP INST Integer-output An array of instruction codes used to describe an object entry NINST Integer-output The length of "INST" in words VALUES Mixed-output An array of integer/real values pointed to by the "INST" array NVAL Integer-output The length of "VALUES" in words DESC Integer-output Application area used for description enumeration data recovery FLAG Integer-input Flag to indicate if description enumeration is to be recovered 0 -> Recover description enumeration 1 -> Skip description enumeration recovery Method: When supplied the object data definition language control entry ( RECORD) a memory structure is created at INST for processing at the application level. This memory structure is described in Chapter 6 and an example and discussion provided in Chapter 10. The DESC area which contains the token description can be optionally skipped to save memory when not needed.

Page 173: MSC.Access User's Manual Version 2005.1

Subroutine Name: MSCPPT Entry Point: MSCPPT Purpose: Extracts a dictionary word pointer list for later processing. Examples are titles, descriptions, attributes, etc. Calling Sequence: CALL MSCPPT ( DDLMAP, ADDR, LIST, NLIST ) DDLMAP Integer-input Logical file handler assigned to the schema data base ADDR Integer-input List address obtained from DDLMAP object to specific information LIST Integer-output Local application work area used to return list values NLIST Integer-output The number of tokens in the list Method: Using the DDL control entry, an application writer can recover a LIST of enumerated words comprising a text clause. Examples of these text clauses are the object description, token definition and object title information. The size of LIST is assumed to be sufficient to contain the LIST of enumerated word values.

Page 174: MSC.Access User's Manual Version 2005.1

Subroutine Name: MSCPTX Entry Point: MSCPTX Purpose: Recovers the text string from an enumeration Calling Sequence: CALL MSCPTX ( STRING, SLEN, INDEX, PTR, DIC ) STRING Char-output Local application character string to return word token SLEN Integer-output Length of the token in characters INDEX Integer-input The token’s enumerated value PTR Integer-input Mapping pointer table to use when resolving the enumeration DIC Char-input The dictionary table associated with the mapping pointer table Method: The information at index of the PTR array is used to recover string base and length information and the characters are transferred.

Page 175: MSC.Access User's Manual Version 2005.1

Function Name: MSCRTI 1. Entry Point: MSCRTI 2. Purpose: Initializes memory for interfacing to a specific object when entry is needed. 3. Calling Sequence: IRET = MSCRTI (MNAME,RLEN,TNAME,TLEN, ENTRY,ENTLEN,STR, FTYPE, KNT, STRIDE)

IRET Integer-return Return code from function -1 -> Object entry is needed to resolved embedded EITHER/OR clause

0 -> Successful 1 -> MNAME object could not be located within the schema 2 -> The control record could not be recovered from the MNAME object 3 -> The schema instance was incorrectly formatted 4 –> Incomplete schema instance was detected 5 -> Bad operational code was detected 6 -> The instruction operational codes are out of sequence 7 -> The internal memory area is about to be exceeded 8 –> The TNAME could not be located 9 –> Internal memory for clauses has been exceeded 10 –> Internal memory for values has been exceeded 11 -> Token string located, entry content does not match request MNAME Char-input The object name to locate within the schema RLEN Integer-input The length of the MNAME string in characters TNAME Char-input The token name to locate within the object TLEN Integer-input The length of the TNAME string in characters ENTRY Array-input Object entry to be used to resolve DDL clauses ENTLEN Integer-input The length of the object entr STR Integer-output The word displacement within the entry where the token is positioned FTYPE Integer-output The format type of the token 1 -> Long Integer 2 -> Real Single Precision 3 -> MSC.Nastran Character Format 4 -> Logical 5 -> Real Double Precision KNT Integer-output The number of times the token appears in the entry STRIDE Integer-output The word displacement between the token(s) in the entry Method: The object name is mapped to the surrogate key and the control entry recovered. The DDL is interpreted and saved as a memory structure in a static common and passed to the other as a per need basis.

Page 176: MSC.Access User's Manual Version 2005.1

Function Name: MSCTFA Entry Point: MSCTFA Purpose: Determine if object utilizes a specific dictionary attribute Calling Sequence: IRET = MSCTFA ( OBJECT,ATTR ) IRET Integer-return Return code 0 -> object uses the attribute as a dictionary qualifier 1 -> objects does not used the attribute for qualification OBJECT Char-input Object name to locate in the schema stored as a string of length eight ATTR Integer-input Attribute enumeration (see MSCLRA for enumeration list) Method: Convert the object name into a surrogate key and extract the DDL control entry. Test for usage of the enumerated attribute and return to application usage information as functional return.

Page 177: MSC.Access User's Manual Version 2005.1

Function Name: MSCVDR Entry Point: MSCVDR Purpose: Recover the version and date of the Data Definition Language data base Calling Sequence: IRET = MSCVDR ( PVER,SVER,MON,DAY,YEAR) IRET Integer-return Return code 0 -> Information was successfully recovered 1 -> A read error occurred when recovering the information PVER Integer-output The primary version stamp

SVER Integer-output The secondary version stamp MON Integer-output The enumerated month the DDL was compiled DAY Integer-output The enumerated day the DDL was compiled YEAR Integer-output The enumerated year the DDL was compiler as a four digit value Method: Once the DDL data base is open via the MSCLDD function, the version and date for the compilation can be recovered. The version is return in two parts, the primary and sub-version of the MSC.Nastran release. This can be interpreted as “PVER.SVER” and is returned in integer format. The month (MON) is a value of 1 through 12 representing the month of the year. The YEAR value is a four digit number, therefore 1900’s or 2000+ can be distinguished.

Page 178: MSC.Access User's Manual Version 2005.1

Function Name: MSCXII Entry Point: MSCXII Purpose: Extracts token information by relative word location when entry is required. Calling Sequence: IRET = MSCXTI ( IWORD, ENTRY,TNAME,TLEN, FTYPE) IRET Integer-return Return code 0 -> Successful 1 -> Unsuccessful 2 –> Word index is out of range of the entry

3 -> Word location within EITHER/OR clause, but not match was made IWORD Integer-input Token's word displacement into the object instant ENTRY Array-input Object entry to extract information by word location TNAME Char-output The character string associated with the token TLEN Integer-output The length in characters of the token FTYPE Integer-output The format type of the token 1 -> Long Integer 2 -> Real Single Precision 3 -> MSC.Nastran Character Format 4 - >Logical 5 - >Real Double Precision Method: The token information of objects which are composed of a distinct data description can be interrogated by relative token position indicated with the IWORD parameter. When IWORD is a position within the entry, the token name, length and type are returned.

Page 179: MSC.Access User's Manual Version 2005.1

Function Name: MSCXTI Entry Point: MSCXTI Purpose: Extracts token information by relative word location when entry not required. Calling Sequence: IRET = MSCXTI ( IWORD, TNAME,TLEN, FTYPE) IRET Integer-return Return code 0 -> Successful +1 -> Object description was not correctly loaded via MSCLRT -1 –> Use alternate function since token information is non-distinct IWORD Integer-input Token's word displacement into the object instant TNAME Char-output The character string associated with the token TLEN Integer-output The length in characters of the token FTYPE Integer-output The format type of the token 1 -> Long Integer 2 -> Real Single Precision 3 -> MSC.Nastran Character Format 4 - >Logical 5 - >Real Double Precision Method: The token information of objects which are composed of a distinct data description can be interrogated by relative token position indicated with the IWORD parameter. When IWORD is a position within the entry, the token name, length and type are returned.

Page 180: MSC.Access User's Manual Version 2005.1

Static COMMON Specifications

Common /MSCDLP/ DDLBB, DDLMAP, RELNUM, KEYNUM, WRDNUM Integer RELPTR,KEYPTR,WRDPTR Character*1 RELDIC,KEYDIC,WRDDIC

Common /MSCDPR/ RELPTR(2001) Common /MSCDPK/ KEYPTR(3001) Common /MSCDPW/ WRDPTR(2001) Common /MSCDCR/ RELDIC(8000) Common /MSCDCK/ KEYDIC(9000) Common /MSCDCW/ WRDDIC(8000)

Note all variables are assumed to be long integers (ie I*4). The variables RELDIC, KEYDIC and WRDDIC are defined to be characters of the FORTRAN definition CHARACTER*1. The sizes of the static arrays meet the MSC.Access Version 2001.1 release level. Although it is possible to recover from the DDLMAP object the size of these arrays, FORTRAN, currently does not normally provide a facility which is platform independent to perform dynamic memory allocations. These structures should be allocated within the MAIN program for platform independence. Additional inclusion into application specific routines is upon a need basis. The previously defined interface routines use these structures to exchange information and status. In addition to the above, the following internal common blocks are utilized.

Common /MSCRTM/ LSTEMP, NTOKEN, RELTYP, NCLAUS,TOKLST(512),CLSLST(3,10),VALLST(10)

Internal controls passed between MSCLRT and MSCXTI.

All common references are initialized in subroutine MSCLDD.

Additional Support Routines

The following routines are used to support the schema interface, but, are not to be invoked by the application program directly.

MSCCLR - Clear memory areas. MSCLDC - Loads and converts character tables from DDLPANDC. MSCLDI - Loads and converts integer tables from DDLPANDC. MSCLSP - Skips logical tables based upon flags given to MSCLDD.

Page 181: MSC.Access User's Manual Version 2005.1

APPENDIX C

INPUT/OUTPUT EXAMPLES C.1 MSC.Nastran Input Data The example problem a101x.dat located in the access sub-directory of the installation is a simple example in linear statics solution format. The model is the right quadrant of a membrane plate with a circular hole in the center. Symmetrical boundary conditions are applied to the double planes of symmetry and load are applied via rigid elements. The three loading conditions are loads in the x-direction, then the y direction and finally a SUBCOM is used to combine both previous cases. Although there are many input techniques available to construct an input deck, the most primitive method was selected for illustration. That is there are no replication nor MSGMESH directives in the deck. Two DBC module directives have been supplied. The required PARAM,POST,0 which invokes the DBC module to perform the translation and the saving of information to the MSC.Access data base; and an additional parameter to echo information within the “F06” listing indicating which objects are being created at what point of the analysis execution. For more detailed module translation positioning, one can merge the “F04” and “F06” together by inserting: NASTRAN SYSTEM(86)=6 as the first entry of the data deck.

Page 182: MSC.Access User's Manual Version 2005.1

$ DEC/CMS REPLACEMENT HISTORY, Element A61X.DAT $ *2 5-AUG-1991 14:59:48 J_BELTRAN "67 PLUS/G/ CHANGED DBCCONV,X TO XL" $ *1 10-JUL-1991 15:43:05 EC004ABB "67 PLUS/G/ ACCESS TEST DECK /JGB" $ DEC/CMS REPLACEMENT HISTORY, Element A61X.DAT ID MSC, A101X $ JGB $ID TEST,A101 $ EXAMPLE FOR MSC/ACCESS WITHOUT MESH OPTION SOL 101 TIME 6 CEND TITLE=SQUARE PLATE WITH CIRCULAR HOLE (NO MESH - SOL 101) A101X SUBTITLE=MEMBRANE PROPERTIES OF QUAD4 AND TRIA3 ELEMENTS SPC=1 DISP(PLOT)=ALL SPCFORCES(PLOT)=ALL ELSTRESS(PLOT)=ALL OLOAD(PLOT)=ALL STRFIELD=ALL $GPSTRESS=ALL SUBCASE 1 LABEL=UNIFORM LOAD ALONG X=5.0. LOAD=1 SUBCASE 2 LABEL=UNIFORM LOAD ALONG Y=5.0. LOAD=2 SUBCOM 3 LABEL=UNIFORM LOAD ALONG X=5.0 AND Y=5.0. SUBSEQ=1.0,1.0 OUTPUT(POST) SET 9 = ALL SURFACE 1 SET 9 NORMAL Z SURFACE 7 SET 9 NORMAL Z OUTPUT SYSTEM ELEMENT BEGIN BULK PARAM POST 0 PARAM DBCDIAG 32 CORD2C 1 1. CORD1 +ORD1 1. GRDSET 3456 GRID 10000 1 1. 0.0 0.0 1 3456 GRID 10001 1 1.1 0.0 0.0 1 3456 GRID 10002 1 1.25 0.0 0.0 1 3456 GRID 10003 1 1.5 0.0 0.0 1 3456 GRID 10004 1 2.1 0.0 0.0 1 3456 GRID 10005 1 3.5 0.0 0.0 1 3456 GRID 10006 1 5. 0.0 0.0 1 3456 GRID 10100 1 1. 10. 0.0 1 3456 GRID 10101 1 1.1 10. 0.0 1 3456 GRID 10102 1 1.25 10. 0.0 1 3456 GRID 10103 1 1.5 10. 0.0 1 3456 GRID 10104 1 2.1 10. 0.0 1 3456 GRID 10105 1 3.5 10. 0.0 1 3456 GRID 10200 1 1. 20. 0.0 1 3456 GRID 10201 1 1.1 20. 0.0 1 3456 GRID 10202 1 1.25 20. 0.0 1 3456 GRID 10203 1 1.5 20. 0.0 1 3456 GRID 10204 1 2.1 20. 0.0 1 3456 GRID 10205 1 3.5 20. 0.0 1 3456 GRID 10300 1 1. 35. 0.0 1 3456 GRID 10301 1 1.1 35. 0.0 1 3456 GRID 10302 1 1.25 35. 0.0 1 3456 GRID 10303 1 1.5 35. 0.0 1 3456 GRID 10304 1 2.1 35. 0.0 1 3456 GRID 10305 1 3.5 35. 0.0 1 3456 GRID 10400 1 1. 55. 0.0 1 3456 GRID 10401 1 1.1 55. 0.0 1 3456 GRID 10402 1 1.25 55. 0.0 1 3456 GRID 10403 1 1.5 55. 0.0 1 3456 GRID 10404 1 2.1 55. 0.0 1 3456

Page 183: MSC.Access User's Manual Version 2005.1

GRID 10405 1 3.5 55. 0.0 1 3456 GRID 10500 1 1. 70. 0.0 1 3456 GRID 10501 1 1.1 70. 0.0 1 3456 GRID 10502 1 1.25 70. 0.0 1 3456 GRID 10503 1 1.5 70. 0.0 1 3456 GRID 10504 1 2.1 70. 0.0 1 3456 GRID 10505 1 3.5 70. 0.0 1 3456 GRID 10600 1 1. 80. 0.0 1 3456 GRID 10601 1 1.1 80. 0.0 1 3456 GRID 10602 1 1.25 80. 0.0 1 3456 GRID 10603 1 1.5 80. 0.0 1 3456 GRID 10604 1 2.1 80. 0.0 1 3456 GRID 10605 1 3.5 80. 0.0 1 3456 GRID 10700 1 1. 90. 0.0 1 3456 GRID 10701 1 1.1 90. 0.0 1 3456 GRID 10702 1 1.25 90. 0.0 1 3456 GRID 10703 1 1.5 90. 0.0 1 3456 GRID 10704 1 2.1 90. 0.0 1 3456 GRID 10705 1 3.5 90. 0.0 1 3456 GRID 10706 1 5. 90. 0.0 1 3456 CQUAD4 1 1 10000 10001 10101 10100 CQUAD4 2 1 10001 10002 10102 10101 CQUAD4 3 1 10002 10003 10103 10102 CQUAD4 4 1 10003 10004 10104 10103 CQUAD4 5 1 10004 10005 10105 10104 CQUAD4 6 1 10005 10006 10106 10105 CQUAD4 7 1 10100 10101 10201 10200 CQUAD4 8 1 10101 10102 10202 10201 CQUAD4 9 1 10102 10103 10203 10202 CQUAD4 10 1 10103 10104 10204 10203 CQUAD4 11 1 10104 10105 10205 10204 CQUAD4 12 1 10105 10106 10206 10205 CQUAD4 13 1 10200 10201 10301 10300 CQUAD4 14 1 10201 10202 10302 10301 CQUAD4 15 1 10202 10203 10303 10302 CQUAD4 16 1 10203 10204 10304 10303 CQUAD4 17 1 10204 10205 10305 10304 CQUAD4 18 1 10205 10206 10306 10305 CQUAD4 19 1 10300 10301 10401 10400 CQUAD4 20 1 10301 10302 10402 10401 CQUAD4 21 1 10302 10303 10403 10402 CQUAD4 22 1 10303 10304 10404 10403 CQUAD4 23 1 10304 10305 10405 10404 CQUAD4 24 1 10305 10306 10406 10405 CQUAD4 25 1 10400 10401 10501 10500 CQUAD4 26 1 10401 10402 10502 10501 CQUAD4 27 1 10402 10403 10503 10502 CQUAD4 28 1 10403 10404 10504 10503 CQUAD4 29 1 10404 10405 10505 10504 CQUAD4 30 1 10405 10406 10506 10505 CQUAD4 31 1 10500 10501 10601 10600 CQUAD4 32 1 10501 10502 10602 10601 CQUAD4 33 1 10502 10503 10603 10602 CQUAD4 34 1 10503 10504 10604 10603 CQUAD4 35 1 10504 10505 10605 10604 CQUAD4 36 1 10505 10506 10606 10605 CQUAD4 37 1 10600 10601 10701 10700 CQUAD4 38 1 10601 10602 10702 10701 CQUAD4 39 1 10602 10603 10703 10702 CQUAD4 40 1 10603 10604 10704 10703 CQUAD4 41 1 10604 10605 10705 10704 CQUAD4 42 1 10605 10606 10706 10705 MAT1 1 30.+6 .3 MAT1 +AT1 1 SPC1 1 2 10000 10001 10002 10003 10004 10005 +M00000 +M00000 10006 SPC1 1 2 10700 10701 10702 10703 10704 10705 +M00001

Page 184: MSC.Access User's Manual Version 2005.1

+M00001 10706 GRID 10106 0 5. .881635 0.0 3456 GRID 10206 0 5. 1.81985 0.0 3456 GRID 10306 0 5. 3.50104 0.0 3456 GRID 10606 0 .881635 5. 0.0 3456 GRID 10506 0 1.81985 5. 0.0 3456 GRID 10406 0 3.50104 5. 0.0 3456 GRID 10806 5. 5. 3456 CTRIA3 50 1 10306 10806 10406 PSHELL 1 1 .1 GRID 120 5. 2.5 23456 GRID 121 2.5 5. 13456 RBE3 51 120 1 .4408175123 10006 .9099256RBE31 +BE31 123 10106 1.309702123 10206 1.590075123 10306 RBE32 +BE32 .74948121235 10806 RBE3 52 121 2 .4408175123 10706 .9099256RBE33 +BE33 123 10606 1.309702123 10506 1.590075123 10406 RBE34 +BE34 .74948121234 10806 FORCE 1 120 5.+3 1. FORCE 2 121 5.+3 1. ENDDATA

Page 185: MSC.Access User's Manual Version 2005.1

C.2 MSC.Nastran Output The following are “F04” and “F06” outputs created by executing the sample input. The “F04” file illustrates which sub-DMAP executes the DBC module for translation. References to the “F06” for the sequential translation indicates which Access objects, with their associated attributes, are created at that position. Again, by usage of the NASTRAN directive for folding output, one can obtain a more precise location. The default translation is now MSC/XL, and other MSC products from Patran to Construct utilize this format of the data base. The MSC/GRASP translation is mentioned in the documentation, but, is not well supported or tested, and should be avoided.

Page 186: MSC.Access User's Manual Version 2005.1

MACHINE MODEL OPERATING SYSTEM MSC.Nastran BUILD DATE RUN DATE IBM RS/6000 370/375/37T (gallup) AIX 4.3 VERSION 2001.0 FEB 1, 2001 APR 2, 2001 === M S C . N a s t r a n E X E C U T I O N S U M M A R Y === Day_Time Elapsed I/O_Mb Del_Mb CPU_Sec Del_CPU Subroutine 8:39:02 0:00 .0 .0 .0 .0 SEMTRN BGN 8:39:02 0:00 .0 .0 .0 .0 SEMTRN END 8:39:02 0:00 .0 .0 .0 .0 DBINIT BGN ** CURRENT PROJECT ID = ' "BLANK" ' ** CURRENT VERSION ID = 1 S U M M A R Y O F F I L E A S S I G N M E N T F O R T H E P R I M A R Y D A T A B A S E ( DBSNO 1, V2001.0 ) ASSIGNED PHYSICAL FILE NAME (/ORIGINAL) LOGICAL NAME DBSET STATUS BUFFSIZE CLUSTER SIZE TIME STAMP --------------------------------------- ------------ ----- ------ -------- ------------ ------------ /x/kkk/a101x.T17832_49.MASTER MASTER MASTER NEW 8193 1 010402083903 /x/kkk/a101x.T17832_49.DBALL DBALL DBALL NEW 8193 1 010402083904 /x/kkk/a101x.T17832_49.OBJSCR OBJSCR OBJSCR NEW 8193 1 010402083905 **** MEM FILE **** * N/A * SCRATCH /x/kkk/a101x.T17832_49.SCRATCH SCRATCH SCRATCH NEW 8193 1 010402083906 /x/kkk/a101x.T17832_49.SCR300 SCR300 SCRATCH NEW 8193 1 010402083907 8:39:03 0:01 .0 .0 .1 .1 DBINIT END 8:39:03 0:01 .0 .0 .1 .0 XCSA BGN S U M M A R Y O F F I L E A S S I G N M E N T F O R T H E D E L I V E R Y D A T A B A S E ( DBSNO 2, V2001.0 ) ASSIGNED PHYSICAL FILE NAME (/ORIGINAL) LOGICAL NAME DBSET STATUS BUFFSIZE CLUSTER SIZE TIME STAMP --------------------------------------- ------------ ----- ------ -------- ------------ ------------ /nast/msc2001t1/aix/SSS.MASTERA MASTERA MASTER OLD 8193 1 010330195319 /./SSS.MASTERA /nast/msc2001t1/aix/SSS.MSCOBJ MSCOBJ MSCOBJ OLD 8193 1 010330195324 /./SSS.MSCOBJ /nast/msc2001t1/aix/SSS.MSCSOU MSCSOU MSCSOU OLD 8193 1 010330195325 /./SSS.MSCSOU 8:39:13 0:11 23.0 23.0 2.3 2.2 XCSA END 8:39:13 0:11 23.0 .0 2.3 .0 CGPI BGN 8:39:13 0:11 23.0 .0 2.3 .0 CGPI END 8:39:13 0:11 23.0 .0 2.3 .0 LINKER BGN 8:39:30 0:28 33.0 10.0 3.4 1.1 LINKER END S U M M A R Y O F P H Y S I C A L F I L E I N F O R M A T I O N ASSIGNED PHYSICAL FILE NAME RECL (BYTES) MODE FLAGS ------------------------------------------------------------ ------------ ---- ----- /x/kkk/a101x.T17832_49.SCRATCH 32768 R/W L G /x/kkk/a101x.T17832_49.OBJSCR 32768 R/W L G /x/kkk/a101x.T17832_49.MASTER 32768 R/W L G /x/kkk/a101x.T17832_49.DBALL 32768 R/W L G /x/kkk/a101x.T17832_49.SCR300 32768 R/W L G /nast/msc2001t1/aix/SSS.MASTERA 32768 R/O

Page 187: MSC.Access User's Manual Version 2005.1

/nast/msc2001t1/aix/SSS.MSCOBJ 32768 R/O FLAG VALUES ARE -- G FILE ON FILESYSTEM SUPPORTING FILES LARGER THAN 2GB L FILE HAS BEEN LOCKED R FILE BEING ACCESSED IN 'RAW' MODE ** PHYSICAL FILES LARGER THAN 2GB ARE SUPPORTED ON THIS PLATFORM ** BUT SOME FILESYSTEMS ON THIS PLATFORM MAY NOT SUPPORT FILES LARGER THAN 2GB 0 ** MASTER DIRECTORIES ARE LOADED IN MEMORY. USER OPENCORE (HICORE) = 7009361 WORDS EXECUTIVE SYSTEM WORK AREA = 218510 WORDS MASTER(RAM) = 37922 WORDS SCRATCH(MEM) AREA = 819300 WORDS ( 100 BUFFERS) BUFFER POOL AREA (GINO/EXEC) = 303511 WORDS ( 37 BUFFERS) TOTAL MSC.NASTRAN MEMORY LIMIT = 8388604 WORDS Day_Time Elapsed I/O_Mb Del_Mb CPU_Sec Del_CPU SubDMAP Line (S)SubDMAP/Module 8:39:31 0:29 34.0 1.0 3.6 .2 XSEMDR BEGN 8:39:31 0:29 35.0 1.0 3.7 .0 SESTATIC23 (S)IFPL BEGN * 8:39:31 0:29 35.0 .0 3.7 .0 IFPL 35 IFP1 BEGN 8:39:31 0:29 35.0 .0 3.7 .0 IFPL 76 XSORT BEGN 8:39:31 0:29 35.0 .0 3.9 .2 IFPL 76 XSORT END 8:39:32 0:30 35.0 .0 3.9 .0 IFPL 154 (S)IFPS BEGN 8:39:32 0:30 35.0 .0 3.9 .0 IFPS 14 IFP BEGN 8:39:32 0:30 35.0 .0 3.9 .0 IFP * COUNT:ENTRY COUNT:ENTRY COUNT:ENTRY COUNT:ENTRY COUNT:ENTRY COUNT:ENTRY * * 1:CORD2C 42:CQUAD4 1:CTRIA3 2:FORCE 1:GRDSET 59:GRID * * 1:MAT1 2:PARAM 1:PSHELL 2:RBE3 2:SPC1 * PARAM: DBCDIAG POST * 8:39:32 0:30 35.0 .0 4.2 .3 IFPS 70 MODGM2 BEGN 8:39:32 0:30 35.0 .0 4.2 .0 IFPS 77 PVT BEGN 8:39:32 0:30 35.0 .0 4.3 .0 IFPS 91 GP1 BEGN 8:39:33 0:31 35.0 .0 4.3 .1 IFPL 159 SEPR1 BEGN 8:39:33 0:31 35.0 .0 4.4 .0 IFPL 160 DBDELETEBEGN 8:39:33 0:31 35.0 .0 4.4 .0 IFPL 175 PROJVER BEGN 8:39:33 0:31 35.0 .0 4.4 .0 IFPL 180 PVT BEGN 8:39:33 0:31 36.0 1.0 4.4 .0 IFPL 210 (S)IFPS1 BEGN 8:39:33 0:31 36.0 .0 4.4 .0 IFPS1 14 DTIIN BEGN 8:39:33 0:31 36.0 .0 4.4 .0 IFPS1 46 PLTSET BEGN 8:39:33 0:31 36.0 .0 4.4 .0 IFPS1 49 MSGHAN BEGN 8:39:33 0:31 36.0 .0 4.4 .0 IFPS1 50 MSGHAN BEGN 8:39:33 0:31 36.0 .0 4.5 .0 IFPS1 51 GP0 BEGN 8:39:33 0:31 36.0 .0 4.5 .0 IFPS1 52 MSGHAN BEGN 8:39:33 0:31 36.0 .0 4.5 .0 SESTATIC45 (S)PHASE0 BEGN 8:39:33 0:31 36.0 .0 4.5 .0 PHASE0 31 PVT BEGN 8:39:33 0:31 36.0 .0 4.5 .0 PHASE0 32 PROJVER BEGN 8:39:33 0:31 36.0 .0 4.5 .0 PHASE0 35 DTIIN BEGN

Page 188: MSC.Access User's Manual Version 2005.1

8:39:33 0:31 36.0 .0 4.5 .0 PHASE0 130 SEP1X BEGN 8:39:33 0:31 36.0 .0 4.6 .0 PHASE0 145 GP1 BEGN 8:39:34 0:32 36.0 .0 4.6 .0 PHASE0 150 GP2 BEGN 8:39:34 0:32 36.0 .0 4.6 .0 PHASE0 165 TA1 BEGN 8:39:34 0:32 36.0 .0 4.6 .0 PHASE0 166 TASNP2 BEGN 8:39:34 0:32 36.0 .0 4.6 .0 PHASE0 171 SEP1 BEGN 8:39:34 0:32 36.0 .0 4.7 .0 PHASE0 192 DBC BEGN 8:39:34 0:32 36.0 .0 4.7 .1 PHASE0 237 TABPRT BEGN 8:39:34 0:32 36.0 .0 4.7 .0 PHASE0 238 SEP3 BEGN 8:39:34 0:32 36.0 .0 4.8 .0 PHASE0 375 PVT BEGN 8:39:35 0:33 37.0 1.0 5.0 .2 PHASE0 804 (S)SETQ BEGN 8:39:35 0:33 37.0 .0 5.0 .0 PHASE0 924 GP2 BEGN 8:39:35 0:33 37.0 .0 5.0 .0 PHASE0 937 GPJAC BEGN 8:39:35 0:33 37.0 .0 5.0 .0 PHASE0 970 GP3 BEGN 8:39:35 0:33 37.0 .0 5.1 .0 PHASE0 973 LCGEN BEGN 8:39:35 0:33 37.0 .0 5.1 .0 PHASE0 979 VECPLOT BEGN 8:39:35 0:33 37.0 .0 5.1 .0 PHASE0 1013 BCDR BEGN 8:39:35 0:33 37.0 .0 5.1 .0 PHASE0 1014 CASE BEGN 8:39:35 0:33 37.0 .0 5.1 .0 PHASE0 1015 PVT BEGN 8:39:35 0:33 37.0 .0 5.2 .0 PHASE0 1051 GP4 BEGN 8:39:35 0:33 37.0 .0 5.2 .1 PHASE0 1095 MATGEN BEGN 8:39:36 0:34 37.0 .0 5.2 .0 PHASE0 1096 APPEND BEGN 8:39:36 0:34 37.0 .0 5.2 .0 PHASE0 1144 BCDR BEGN 8:39:36 0:34 37.0 .0 5.2 .0 PHASE0 1189 (S)SELA1 BEGN 8:39:36 0:34 37.0 .0 5.2 .0 PHASE0 1191 UPARTN BEGN 8:39:36 0:34 37.0 .0 5.3 .0 PHASE0 1275 DBC BEGN 8:39:36 0:34 38.0 1.0 5.3 .1 SESTATIC48 (S)SETQ BEGN 8:39:36 0:34 38.0 .0 5.4 .0 SESTATIC52 MATGEN BEGN 8:39:36 0:34 38.0 .0 5.4 .0 SESTATIC53 RESTART BEGN Data block TEMPALL has changed. 8:39:36 0:34 38.0 .0 5.4 .0 SESTATIC55 DTIIN BEGN 8:39:36 0:34 38.0 .0 5.4 .0 SESTATIC89 (S)PHASE1DRBEGN 8:39:36 0:34 38.0 .0 5.4 .0 PHASE1DR114 PVT BEGN 8:39:36 0:34 38.0 .0 5.4 .0 PHASE1DR115 (S)SETQ BEGN 8:39:36 0:34 38.0 .0 5.5 .0 PHASE1DR130 (S)DBSETOFFBEGN 8:39:36 0:34 38.0 .0 5.5 .0 PHASE1DR132 (S)PHASE1A BEGN 8:39:36 0:34 38.0 .0 5.5 .0 PHASE1A 43 TA1 BEGN 8:39:36 0:34 38.0 .0 5.5 .0 PHASE1A 52 MSGHAN BEGN 8:39:36 0:34 38.0 .0 5.5 .0 PHASE1A 53 (S)SEMG BEGN 8:39:36 0:34 38.0 .0 5.5 .0 SEMG 25 ELTPRT BEGN 8:39:37 0:35 38.0 .0 5.5 .0 SEMG 31 EMG BEGN 8:39:37 0:35 38.0 .0 5.6 .1 SEMG 116 EMA BEGN 8:39:37 0:35 38.0 .0 5.7 .1 SEMG 169 (S)XMTRXIN BEGN 8:39:37 0:35 38.0 .0 5.7 .0 SEMG 172 (S)SEMG1 BEGN 8:39:37 0:35 38.0 .0 5.7 .0 SEMG 174 PROJVER BEGN 8:39:37 0:35 38.0 .0 5.7 .0 PHASE1A 55 MSGHAN BEGN 8:39:37 0:35 38.0 .0 5.7 .0 PHASE1A 56 MSGHAN BEGN 8:39:37 0:35 38.0 .0 5.7 .0 PHASE1A 57 (S)SESUM BEGN 8:39:37 0:35 39.0 1.0 5.8 .0 PHASE1A 67 VECPLOT BEGN * 8:39:37 0:35 39.0 .0 5.8 .0 PHASE1A 114 MSGHAN BEGN 8:39:37 0:35 39.0 .0 5.8 .0 PHASE1A 115 (S)SELG BEGN 8:39:37 0:35 39.0 .0 5.8 .0 SELG 18 SSG1 BEGN

Page 189: MSC.Access User's Manual Version 2005.1

8:39:37 0:35 39.0 .0 5.8 .0 SELG 66 VECPLOT BEGN 8:39:38 0:36 39.0 .0 5.9 .0 PHASE1A 116 MSGHAN BEGN 8:39:38 0:36 39.0 .0 5.9 .0 PHASE1A 117 (S)SESUM BEGN 8:39:38 0:36 39.0 .0 5.9 .0 PHASE1A 121 (S)SELA1 BEGN * 8:39:38 0:36 39.0 .0 5.9 .0 PHASE1DR180 BCDR BEGN 8:39:38 0:36 39.0 .0 5.9 .0 PHASE1DR181 PVT BEGN 8:39:38 0:36 39.0 .0 6.0 .0 PHASE1DR193 (S)PHASE1B BEGN 8:39:38 0:36 39.0 .0 6.0 .0 PHASE1B 21 (S)SEKR0 BEGN 8:39:38 0:36 39.0 .0 6.0 .0 SEKR0 17 (S)XMCE1 BEGN 8:39:38 0:36 39.0 .0 6.0 .0 XMCE1 4 MCE1 BEGN 8:39:38 0:36 39.0 .0 6.0 .0 SEKR0 18 UPARTN BEGN 8:39:38 0:36 39.0 .0 6.0 .0 SEKR0 21 UPARTN BEGN 8:39:38 0:36 39.0 .0 6.0 .0 SEKR0 26 MCE2 BEGN 8:39:38 0:36 39.0 .0 6.1 .1 SEKR0 28 VECPLOT BEGN 8:39:38 0:36 39.0 .0 6.1 .0 SEKR0 42 GPSP BEGN 8:39:38 0:36 39.0 .0 6.1 .0 PHASE1B 33 (S)SEKMR BEGN 8:39:38 0:36 39.0 .0 6.1 .0 SEKMR 12 (S)SEKR BEGN 8:39:38 0:36 39.0 .0 6.2 .0 SEKR 19 (S)PMLUSET BEGN 8:39:38 0:36 39.0 .0 6.2 .0 SEKR 22 UPARTN BEGN 8:39:38 0:36 39.0 .0 6.2 .0 SEKR 25 VECPLOT BEGN 8:39:38 0:36 39.0 .0 6.2 .0 SEKR 114 (S)SESUM BEGN 8:39:38 0:36 40.0 1.0 6.3 .0 SEKMR 13 (S)SESUM BEGN * 8:39:39 0:37 40.0 .0 6.3 .0 SEKMR 25 (S)PMLUSET BEGN * 8:39:39 0:37 40.0 .0 6.3 .0 PHASE1B 34 (S)PMLUSET BEGN 8:39:39 0:37 40.0 .0 6.3 .0 PHASE1B 67 (S)SEGOA BEGN 8:39:39 0:37 40.0 .0 6.3 .0 PHASE1B 68 (S)SELR BEGN 8:39:39 0:37 40.0 .0 6.3 .0 SELR 86 SSG2 BEGN 8:39:39 0:37 40.0 .0 6.4 .1 PHASE1B 70 (S)SESUM BEGN 8:39:39 0:37 41.0 1.0 6.5 .1 PHASE1B 206 SSG2 BEGN * 8:39:39 0:37 41.0 .0 6.5 .0 PHASE1DR200 PVT BEGN 8:39:39 0:37 41.0 .0 6.5 .0 PHASE1DR216 BCDR BEGN 8:39:39 0:37 41.0 .0 6.5 .0 SESTATIC116 BCDR BEGN 8:39:39 0:37 41.0 .0 6.5 .0 SESTATIC117 PVT BEGN 8:39:39 0:37 41.0 .0 6.6 .0 SESTATIC125 (S)PMLUSET BEGN 8:39:39 0:37 41.0 .0 6.6 .0 SESTATIC138 (S)PHASE1C BEGN 8:39:39 0:37 41.0 .0 6.6 .0 PHASE1C 20 (S)SEKRRS BEGN 8:39:39 0:37 41.0 .0 6.6 .0 SEKRRS 53 DCMP BEGN *** USER INFORMATION MESSAGE 4157 (DFMSYN) PARAMETERS FOR SPARSE DECOMPOSITION OF DATA BLOCK KLL ( TYPE=RDP ) FOLLOW MATRIX SIZE = 100 ROWS NUMBER OF NONZEROES = 760 TERMS NUMBER OF ZERO COLUMNS = 0 NUMBER OF ZERO DIAGONAL TERMS = 0 CPU TIME ESTIMATE = 0 SEC I/O TIME ESTIMATE = 0 SEC MINIMUM MEMORY REQUIREMENT = 51 K WORDS MEMORY AVAILABLE = 6999 K WORDS MEMORY REQR'D TO AVOID SPILL = 85 K WORDS MEMORY USED BY BEND = 5 K WORDS EST. INTEGER WORDS IN FACTOR = 2 K WORDS EST. NONZERO TERMS = 2 K TERMS ESTIMATED MAXIMUM FRONT SIZE = 26 TERMS RANK OF UPDATE = 24 *** USER INFORMATION MESSAGE 6439 (DFMSA) ACTUAL MEMORY AND DISK SPACE REQUIREMENTS FOR SPARSE SYM. DECOMPOSITION SPARSE DECOMP MEMORY USED = 85 K WORDS MAXIMUM FRONT SIZE = 26 TERMS INTEGER WORDS IN FACTOR = 1 K WORDS NONZERO TERMS IN FACTOR = 2 K TERMS SPARSE DECOMP SUGGESTED MEMORY = 85 K WORDS 8:39:40 0:38 41.0 .0 6.7 .1 PHASE1C 24 (S)SESUM BEGN

Page 190: MSC.Access User's Manual Version 2005.1

8:39:40 0:38 41.0 .0 6.8 .1 PHASE1C 33 (S)SESUM BEGN * 8:39:40 0:38 42.0 1.0 6.8 .0 PHASE1C 37 (S)SELRRS BEGN * 8:39:40 0:38 42.0 .0 6.8 .0 PHASE1C 38 (S)SESUM BEGN 8:39:40 0:38 42.0 .0 6.8 .0 SESTATIC141 (S)STATRS BEGN * 8:39:40 0:38 42.0 .0 6.8 .0 STATRS 90 MSGHAN BEGN 8:39:40 0:38 42.0 .0 6.8 .0 STATRS 95 SSG3 BEGN *** USER INFORMATION MESSAGE 4153 (DFNSB) FBS METHOD S2 TIME ESTIMATE TO FORM UL - CPU= 0, I/O= 0, TOTAL= 0, PASSES= 1 8:39:40 0:38 42.0 .0 6.9 .0 STATRS 119 MSGHAN BEGN 8:39:40 0:38 42.0 .0 6.9 .0 SESTATIC237 PVT BEGN 8:39:40 0:38 42.0 .0 6.9 .0 SESTATIC237 PVT END 8:39:40 0:38 42.0 .0 6.9 .0 SESTATIC238 APPEND BEGN 8:39:40 0:38 42.0 .0 6.9 .0 SESTATIC244 COPY BEGN 8:39:40 0:38 42.0 .0 6.9 .0 SESTATIC253 BCDR BEGN 8:39:40 0:38 42.0 .0 6.9 .0 SESTATIC254 (S)SESUM BEGN 8:39:40 0:38 43.0 1.0 6.9 .0 SESTATIC272 (S)SUPER3 BEGN * 8:39:40 0:38 43.0 .0 7.0 .1 SUPER3 130 SEP4 BEGN 8:39:40 0:38 43.0 .0 7.1 .0 SUPER3 217 SEDRDR BEGN 8:39:40 0:38 43.0 .0 7.1 .0 8:39:40 0:38 43.0 .0 7.1 .0 SUPER3 230 PVT BEGN 8:39:40 0:38 43.0 .0 7.1 .0 SUPER3 247 SEDR BEGN 8:39:41 0:39 43.0 .0 7.1 .0 SUPER3 264 PVT BEGN 8:39:41 0:39 43.0 .0 7.2 .0 SUPER3 290 (S)DBSETOFFBEGN 8:39:41 0:39 43.0 .0 7.2 .0 SUPER3 310 LCGEN BEGN 8:39:41 0:39 43.0 .0 7.2 .0 SUPER3 391 (S)SEDISP BEGN 8:39:41 0:39 43.0 .0 7.2 .0 SEDISP 112 BCDR BEGN 8:39:41 0:39 43.0 .0 7.2 .0 SEDISP 113 PVT BEGN 8:39:41 0:39 43.0 .0 7.3 .1 SEDISP 273 (S)SEGOA BEGN 8:39:41 0:39 43.0 .0 7.3 .0 SEDISP 274 SDR1 BEGN 8:39:41 0:39 43.0 .0 7.3 .1 SEDISP 360 BCDR BEGN 8:39:41 0:39 43.0 .0 7.3 .0 SEDISP 374 COPY BEGN 8:39:41 0:39 43.0 .0 7.3 .0 SEDISP 390 COPY BEGN 8:39:41 0:39 43.0 .0 7.3 .0 SEDISP 587 (S)SESUM BEGN 8:39:41 0:39 43.0 .0 7.4 .1 SUPER3 392 PVT BEGN * 8:39:41 0:39 43.0 .0 7.5 .1 SUPER3 600 DBC BEGN 8:39:41 0:39 43.0 .0 7.5 .0 SUPER3 604 (S)SEDRCVR BEGN 8:39:41 0:39 43.0 .0 7.5 .0 SEDRCVR 45 VECPLOT BEGN 8:39:41 0:39 43.0 .0 7.5 .0 SEDRCVR 138 SDR2 BEGN 8:39:41 0:39 43.0 .0 7.6 .1 SEDRCVR 141 SDR2 BEGN 8:39:41 0:39 43.0 .0 7.6 .0 SEDRCVR 183 SDRX BEGN 8:39:41 0:39 43.0 .0 7.7 .1 SEDRCVR 385 (S)GPSTRESSBEGN 8:39:41 0:39 43.0 .0 7.7 .0 GPSTRESS10 PLTSET BEGN 8:39:41 0:39 43.0 .0 7.7 .0 GPSTRESS12 GPSTR1 BEGN 8:39:42 0:40 43.0 .0 7.8 .1 GPSTRESS16 GPSTR2 BEGN 8:39:42 0:40 43.0 .0 7.9 .1 GPSTRESS16 GPSTR2 END 8:39:42 0:40 43.0 .0 7.9 .0 GPSTRESS18 STDCON BEGN 8:39:42 0:40 43.0 .0 7.9 .0 GPSTRESS23 GPSTR2 BEGN 8:39:42 0:40 43.0 .0 8.0 .0 SEDRCVR 494 OFP BEGN 8:39:42 0:40 43.0 .0 8.0 .0 SEDRCVR 497 OFP BEGN 8:39:42 0:40 43.0 .0 8.0 .0 SEDRCVR 501 OFP BEGN 8:39:42 0:40 43.0 .0 8.0 .0 SEDRCVR 510 OFP BEGN 8:39:42 0:40 43.0 .0 8.0 .0 SEDRCVR 554 OFP BEGN

Page 191: MSC.Access User's Manual Version 2005.1

8:39:42 0:40 43.0 .0 8.0 .0 SEDRCVR 596 DBC BEGN 8:39:42 0:40 43.0 .0 8.1 .1 SEDRCVR 597 DBC BEGN 8:39:42 0:40 43.0 .0 8.2 .0 SEDRCVR 598 DBC BEGN 8:39:42 0:40 43.0 .0 8.2 .0 SEDRCVR 600 DBC BEGN 8:39:42 0:40 43.0 .0 8.2 .0 SEDRCVR 601 DBC BEGN 8:39:42 0:40 43.0 .0 8.2 .0 SESTATIC318 (S)PRTSUM BEGN 8:39:42 0:40 43.0 .0 8.2 .0 PRTSUM 27 PROJVER BEGN 8:39:42 0:40 43.0 .0 8.2 .0 PRTSUM 28 DBDICT BEGN 8:39:42 0:40 43.0 .0 8.3 .0 PRTSUM 29 PRTPARM BEGN 8:39:43 0:41 43.0 .0 8.3 .0 SESTATIC319 MSGHAN BEGN 8:39:43 0:41 43.0 .0 8.3 .0 SESTATIC320 EXIT BEGN *** TOTAL MEMORY AND DISK USAGE STATISTICS *** +---------- SPARSE SOLUTION MODULES -----------+ +------------- MAXIMUM DISK USAGE -------------+ HIWATER SUB_DMAP DMAP HIWATER SUB_DMAP DMAP (WORDS) DAY_TIME NAME MODULE (MB) DAY_TIME NAME MODULE 1475181 08:39:39 SEKRRS 53 DCMP 5.500 08:39:43 SESTATIC 320 EXIT *** DATABASE USAGE STATISTICS *** +------------------ LOGICAL DBSETS ------------------+ +------------------------- DBSET FILES -------------------------+ DBSET ALLOCATED BLOCKSIZE USED USED FILE ALLOCATED HIWATER HIWATER I/O TRANSFERRED (BLOCKS) (WORDS) (BLOCKS) % (BLOCKS) (BLOCKS) (MB) (GB) MASTER 5000 8192 54 1.08 MASTER 5000 54 1.688 .029 DBALL 250000 8192 3 .00 DBALL 250000 3 .094 .000 OBJSCR 5000 8192 117 2.34 OBJSCR 5000 117 3.656 .006 SCRATCH 500100 8192 11 .00 (MEMFILE 100 95 2.969 .000) SCRATCH 250000 1 .031 .000 SCR300 250000 1 .031 .000 ============== TOTAL: .035 *** BUFFER POOL AND SCRATCH 300 USAGE STATISTICS *** +----------------- BUFFER POOL -----------------+ +-------------------------- SCRATCH 300 --------------------------+ OPTION BLOCKS BLOCKS BLOCKS OPTION HIWATER SUB_DMAP DMAP OPN/CLS SELECTED ALLOCATED REUSED RELEASED SELECTED (BLOCKS) DAY_TIME NAME MODULE COUNTER GINO,EXEC 37 1865 495 2 1 8:39:02 PREFACE 0 PREFACE 0 *** SUMMARY OF PHYSICAL FILE I/O ACTIVITY *** ASSIGNED PHYSICAL FILE NAME RECL (BYTES) READ/WRITE COUNT ------------------------------------------------------------ ------------ ------------ /x/kkk/a101x.T17832_49.SCRATCH 32768 1 /x/kkk/a101x.T17832_49.OBJSCR 32768 185 /x/kkk/a101x.T17832_49.MASTER 32768 939 /x/kkk/a101x.T17832_49.DBALL 32768 7 /x/kkk/a101x.T17832_49.SCR300 32768 1

Page 192: MSC.Access User's Manual Version 2005.1

/nast/msc2001t1/aix/SSS.MASTERA 32768 62 /nast/msc2001t1/aix/SSS.MSCOBJ 32768 216

Page 193: MSC.Access User's Manual Version 2005.1

THIS PROGRAM IS CONFIDENTIAL AND A TRADE SECRET OF MSC.SOFTWARE CORPORATION. THE RECEIPT OR POSSESSION OF THIS PROGRAM DOES NOT CONVEY ANY RIGHTS TO REPRODUCE OR DISCLOSE ITS CONTENTS, OR TO MANUFACTURE, USE, OR SELL ANYTHING HEREIN, IN WHOLE OR IN PART, WITHOUT THE SPECIFIC WRITTEN CONSENT OF MSC.SOFTWARE CORPORATION. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * MSC.SOFTWARE * * * * CORP * * * * * * * * M S C . N a s t r a n * * * * * * * * VERSION - 2001.0.1 Tier 1 * * * * * * * * FEB 1, 2001 * * * * * * * * * * * * IBM RS/6000 * * * * * * * * MODEL 370/375/37T (gallup) * * * * * * * * AIX 4.3 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 1 APRIL 2, 2001 MSC.NASTRAN 2/ 1/01 PAGE 1 0 N A S T R A N F I L E A N D S Y S T E M P A R A M E T E R E C H O 0 NASTRAN SYSTEM(303)=1 $ MSC.NASTRAN 2001 R1 NASTRAN SYSTEM(303)=0 $(/NAST/CONF/NAST2001T1RC[3]) $ DEC/CMS REPLACEMENT HISTORY, ELEMENT A61X.DAT $ *2 5-AUG-1991 14:59:48 J_BELTRAN "67 PLUS/G/ CHANGED DBCCONV,X TO XL" $ *1 10-JUL-1991 15:43:05 EC004ABB "67 PLUS/G/ ACCESS TEST DECK /JGB" $ DEC/CMS REPLACEMENT HISTORY, ELEMENT A61X.DAT 1 APRIL 2, 2001 MSC.NASTRAN 2/ 1/01 PAGE 2 0 N A S T R A N E X E C U T I V E C O N T R O L E C H O 0

Page 194: MSC.Access User's Manual Version 2005.1

ID MSC, A101X $ JGB $ID TEST,A101 $ EXAMPLE FOR MSC/ACCESS WITHOUT MESH OPTION SOL 101 TIME 6 CEND 1 SQUARE PLATE WITH CIRCULAR HOLE (NO MESH - SOL 101) A101X APRIL 2, 2001 MSC.NASTRAN 2/ 1/01 PAGE 3 MEMBRANE PROPERTIES OF QUAD4 AND TRIA3 ELEMENTS 0 0 C A S E C O N T R O L E C H O COMMAND COUNT 1 TITLE=SQUARE PLATE WITH CIRCULAR HOLE (NO MESH - SOL 101) A101X 2 SUBTITLE=MEMBRANE PROPERTIES OF QUAD4 AND TRIA3 ELEMENTS 3 SPC=1 4 DISP(PLOT)=ALL 5 SPCFORCES(PLOT)=ALL 6 ELSTRESS(PLOT)=ALL 7 OLOAD(PLOT)=ALL 8 STRFIELD=ALL 9 $GPSTRESS=ALL 10 SUBCASE 1 11 LABEL=UNIFORM LOAD ALONG X=5.0. 12 LOAD=1 13 SUBCASE 2 14 LABEL=UNIFORM LOAD ALONG Y=5.0. 15 LOAD=2 16 SUBCOM 3 17 LABEL=UNIFORM LOAD ALONG X=5.0 AND Y=5.0. 18 SUBSEQ=1.0,1.0 19 OUTPUT(POST) 20 SET 9 = ALL 21 SURFACE 1 SET 9 NORMAL Z 22 SURFACE 7 SET 9 NORMAL Z OUTPUT SYSTEM ELEMENT 23 BEGIN BULK 0 INPUT BULK DATA ENTRY COUNT = 124 1 SQUARE PLATE WITH CIRCULAR HOLE (NO MESH - SOL 101) A101X APRIL 2, 2001 MSC.NASTRAN 2/ 1/01 PAGE 4 MEMBRANE PROPERTIES OF QUAD4 AND TRIA3 ELEMENTS 0 0 S O R T E D B U L K D A T A E C H O ENTRY COUNT . 1 .. 2 .. 3 .. 4 .. 5 .. 6 .. 7 .. 8 .. 9 .. 10 . 1- CORD2C 1 1. CORD1 2- +ORD1 1. 3- CQUAD4 1 1 10000 10001 10101 10100 4- CQUAD4 2 1 10001 10002 10102 10101 5- CQUAD4 3 1 10002 10003 10103 10102 6- CQUAD4 4 1 10003 10004 10104 10103 7- CQUAD4 5 1 10004 10005 10105 10104 8- CQUAD4 6 1 10005 10006 10106 10105 9- CQUAD4 7 1 10100 10101 10201 10200 10- CQUAD4 8 1 10101 10102 10202 10201 11- CQUAD4 9 1 10102 10103 10203 10202

Page 195: MSC.Access User's Manual Version 2005.1

12- CQUAD4 10 1 10103 10104 10204 10203 13- CQUAD4 11 1 10104 10105 10205 10204 14- CQUAD4 12 1 10105 10106 10206 10205 15- CQUAD4 13 1 10200 10201 10301 10300 16- CQUAD4 14 1 10201 10202 10302 10301 17- CQUAD4 15 1 10202 10203 10303 10302 18- CQUAD4 16 1 10203 10204 10304 10303 19- CQUAD4 17 1 10204 10205 10305 10304 20- CQUAD4 18 1 10205 10206 10306 10305 21- CQUAD4 19 1 10300 10301 10401 10400 22- CQUAD4 20 1 10301 10302 10402 10401 23- CQUAD4 21 1 10302 10303 10403 10402 24- CQUAD4 22 1 10303 10304 10404 10403 25- CQUAD4 23 1 10304 10305 10405 10404 26- CQUAD4 24 1 10305 10306 10406 10405 27- CQUAD4 25 1 10400 10401 10501 10500 28- CQUAD4 26 1 10401 10402 10502 10501 29- CQUAD4 27 1 10402 10403 10503 10502 30- CQUAD4 28 1 10403 10404 10504 10503 31- CQUAD4 29 1 10404 10405 10505 10504 32- CQUAD4 30 1 10405 10406 10506 10505 33- CQUAD4 31 1 10500 10501 10601 10600 34- CQUAD4 32 1 10501 10502 10602 10601 35- CQUAD4 33 1 10502 10503 10603 10602 36- CQUAD4 34 1 10503 10504 10604 10603 37- CQUAD4 35 1 10504 10505 10605 10604 38- CQUAD4 36 1 10505 10506 10606 10605 39- CQUAD4 37 1 10600 10601 10701 10700 40- CQUAD4 38 1 10601 10602 10702 10701 41- CQUAD4 39 1 10602 10603 10703 10702 42- CQUAD4 40 1 10603 10604 10704 10703 43- CQUAD4 41 1 10604 10605 10705 10704 44- CQUAD4 42 1 10605 10606 10706 10705 45- CTRIA3 50 1 10306 10806 10406 46- FORCE 1 120 5.+3 1. 47- FORCE 2 121 5.+3 1. 48- GRDSET 3456 49- GRID 120 5. 2.5 23456 50- GRID 121 2.5 5. 13456 1 SQUARE PLATE WITH CIRCULAR HOLE (NO MESH - SOL 101) A101X APRIL 2, 2001 MSC.NASTRAN 2/ 1/01 PAGE 5 MEMBRANE PROPERTIES OF QUAD4 AND TRIA3 ELEMENTS 0 0 S O R T E D B U L K D A T A E C H O ENTRY COUNT . 1 .. 2 .. 3 .. 4 .. 5 .. 6 .. 7 .. 8 .. 9 .. 10 . 51- GRID 10000 1 1. 0.0 0.0 1 3456 52- GRID 10001 1 1.1 0.0 0.0 1 3456 53- GRID 10002 1 1.25 0.0 0.0 1 3456 54- GRID 10003 1 1.5 0.0 0.0 1 3456 55- GRID 10004 1 2.1 0.0 0.0 1 3456 56- GRID 10005 1 3.5 0.0 0.0 1 3456 57- GRID 10006 1 5. 0.0 0.0 1 3456

Page 196: MSC.Access User's Manual Version 2005.1

58- GRID 10100 1 1. 10. 0.0 1 3456 59- GRID 10101 1 1.1 10. 0.0 1 3456 60- GRID 10102 1 1.25 10. 0.0 1 3456 61- GRID 10103 1 1.5 10. 0.0 1 3456 62- GRID 10104 1 2.1 10. 0.0 1 3456 63- GRID 10105 1 3.5 10. 0.0 1 3456 64- GRID 10106 0 5. .881635 0.0 3456 65- GRID 10200 1 1. 20. 0.0 1 3456 66- GRID 10201 1 1.1 20. 0.0 1 3456 67- GRID 10202 1 1.25 20. 0.0 1 3456 68- GRID 10203 1 1.5 20. 0.0 1 3456 69- GRID 10204 1 2.1 20. 0.0 1 3456 70- GRID 10205 1 3.5 20. 0.0 1 3456 71- GRID 10206 0 5. 1.81985 0.0 3456 72- GRID 10300 1 1. 35. 0.0 1 3456 73- GRID 10301 1 1.1 35. 0.0 1 3456 74- GRID 10302 1 1.25 35. 0.0 1 3456 75- GRID 10303 1 1.5 35. 0.0 1 3456 76- GRID 10304 1 2.1 35. 0.0 1 3456 77- GRID 10305 1 3.5 35. 0.0 1 3456 78- GRID 10306 0 5. 3.50104 0.0 3456 79- GRID 10400 1 1. 55. 0.0 1 3456 80- GRID 10401 1 1.1 55. 0.0 1 3456 81- GRID 10402 1 1.25 55. 0.0 1 3456 82- GRID 10403 1 1.5 55. 0.0 1 3456 83- GRID 10404 1 2.1 55. 0.0 1 3456 84- GRID 10405 1 3.5 55. 0.0 1 3456 85- GRID 10406 0 3.50104 5. 0.0 3456 86- GRID 10500 1 1. 70. 0.0 1 3456 87- GRID 10501 1 1.1 70. 0.0 1 3456 88- GRID 10502 1 1.25 70. 0.0 1 3456 89- GRID 10503 1 1.5 70. 0.0 1 3456 90- GRID 10504 1 2.1 70. 0.0 1 3456 91- GRID 10505 1 3.5 70. 0.0 1 3456 92- GRID 10506 0 1.81985 5. 0.0 3456 93- GRID 10600 1 1. 80. 0.0 1 3456 94- GRID 10601 1 1.1 80. 0.0 1 3456 95- GRID 10602 1 1.25 80. 0.0 1 3456 96- GRID 10603 1 1.5 80. 0.0 1 3456 97- GRID 10604 1 2.1 80. 0.0 1 3456 98- GRID 10605 1 3.5 80. 0.0 1 3456 99- GRID 10606 0 .881635 5. 0.0 3456 100- GRID 10700 1 1. 90. 0.0 1 3456 1 SQUARE PLATE WITH CIRCULAR HOLE (NO MESH - SOL 101) A101X APRIL 2, 2001 MSC.NASTRAN 2/ 1/01 PAGE 6 MEMBRANE PROPERTIES OF QUAD4 AND TRIA3 ELEMENTS 0 0 S O R T E D B U L K D A T A E C H O ENTRY COUNT . 1 .. 2 .. 3 .. 4 .. 5 .. 6 .. 7 .. 8 .. 9 .. 10 . 101- GRID 10701 1 1.1 90. 0.0 1 3456 102- GRID 10702 1 1.25 90. 0.0 1 3456 103- GRID 10703 1 1.5 90. 0.0 1 3456

Page 197: MSC.Access User's Manual Version 2005.1

104- GRID 10704 1 2.1 90. 0.0 1 3456 105- GRID 10705 1 3.5 90. 0.0 1 3456 106- GRID 10706 1 5. 90. 0.0 1 3456 107- GRID 10806 5. 5. 3456 108- MAT1 1 30.+6 .3 MAT1 109- +AT1 1 110- PARAM DBCDIAG 32 111- PARAM POST 0 112- PSHELL 1 1 .1 113- RBE3 51 120 1 .4408175123 10006 .9099256RBE31 114- +BE31 123 10106 1.309702123 10206 1.590075123 10306 RBE32 115- +BE32 .74948121235 10806 116- RBE3 52 121 2 .4408175123 10706 .9099256RBE33 117- +BE33 123 10606 1.309702123 10506 1.590075123 10406 RBE34 118- +BE34 .74948121234 10806 119- SPC1 1 2 10000 10001 10002 10003 10004 10005 +M00000 120- +M00000 10006 121- SPC1 1 2 10700 10701 10702 10703 10704 10705 +M00001 122- +M00001 10706 ENDDATA 0 TOTAL COUNT= 123 M O D E L S U M M A R Y NUMBER OF GRID POINTS = 59 NUMBER OF CQUAD4 ELEMENTS = 42 NUMBER OF CTRIA3 ELEMENTS = 1 NUMBER OF RBE3 ELEMENTS = 2 1 SQUARE PLATE WITH CIRCULAR HOLE (NO MESH - SOL 101) A101X APRIL 2, 2001 MSC.NASTRAN 2/ 1/01 PAGE 7 MEMBRANE PROPERTIES OF QUAD4 AND TRIA3 ELEMENTS 0 MSC.XL DATA BASE CONVERSION STARTED PRODUCT 0 0 0 0 0 0 0 0 0 0 PROJECT 0 0 0 0 0 0 0 0 0 0 PATHQUAL 0 0 0 0 0 0 0 0 0 0 PATHLINK 0 0 0 0 0 0 0 0 0 0 PATHQUAL 0 0 0 0 0 0 0 0 0 0 PATHLINK 0 0 0 0 0 0 0 0 0 0 PATHINT 0 0 0 0 0 0 0 0 0 0 SUPERS 1 0 0 0 0 0 0 0 0 0 CSTM 1 0 1 0 0 0 0 0 0 0 UNDEFORMED GEOMETRY RECOVERY INITIATED UNDEFORMED GEOMETRY RECOVERY FOR SUPERELEMENT 0 PSHELL 1 0 1 0 0 0 0 0 0 0 MAT1 1 0 1 0 0 0 0 0 0 0

Page 198: MSC.Access User's Manual Version 2005.1

POST-PROCESSING DATA RECOVERY INITIATED OUTPUT RECOVERY FOR SUPERELEMENT 0 LOADS DATA RECOVERY INITIATED LOADS DATA RECOVERY FOR SUPERELEMENT 0 MSC.XL DATA BASE CONVERSION FINISHED 1 SQUARE PLATE WITH CIRCULAR HOLE (NO MESH - SOL 101) A101X APRIL 2, 2001 MSC.NASTRAN 2/ 1/01 PAGE 8 MEMBRANE PROPERTIES OF QUAD4 AND TRIA3 ELEMENTS 0 MSC.XL DATA BASE CONVERSION STARTED PROJECT 0 0 0 0 0 0 0 0 0 0 PATHQUAL 0 0 0 0 0 0 0 0 0 0 PATHLINK 0 0 0 0 0 0 0 0 0 0 PATHINT 0 0 0 0 0 0 0 0 0 0 CSTM 1 0 1 0 0 0 0 0 0 0 UNDEFORMED GEOMETRY RECOVERY INITIATED UNDEFORMED GEOMETRY RECOVERY FOR SUPERELEMENT 0 GRIDX 1 0 1 0 0 0 0 0 0 0 CQD4 1 0 1 0 0 0 0 0 0 0 CTR3 1 0 1 0 0 0 0 0 0 0 LIMITS 1 0 1 0 0 0 0 0 0 0 RBE3 1 0 1 0 0 0 0 0 0 0 RBEPOOL 1 0 1 0 0 0 0 0 0 0 POST-PROCESSING DATA RECOVERY INITIATED OUTPUT RECOVERY FOR SUPERELEMENT 0 EQEXING 1 0 1 0 0 0 0 0 0 0 EQEXINE 1 0 1 0 0 0 0 0 0 0 LOADS DATA RECOVERY INITIATED LOADS DATA RECOVERY FOR SUPERELEMENT 0 SID 1 0 1 0 0 0 0 0 0 0 FORCE 1 0 1 0 1 0 0 0 0 0 FORCE 1 0 1 0 2 0 0 0 0 0 SPC1 1 0 1 0 1 0 0 0 0 0 MSC.XL DATA BASE CONVERSION FINISHED 1 SQUARE PLATE WITH CIRCULAR HOLE (NO MESH - SOL 101) A101X APRIL 2, 2001 MSC.NASTRAN 2/ 1/01 PAGE 9 MEMBRANE PROPERTIES OF QUAD4 AND TRIA3 ELEMENTS 0 *** USER INFORMATION MESSAGE 7310 (VECPRN) ORIGIN OF SUPERELEMENT BASIC COORDINATE SYSTEM WILL BE USED AS REFERENCE LOCATION. RESULTANTS ABOUT ORIGIN OF SUPERELEMENT BASIC COORDINATE SYSTEM IN SUPERELEMENT BASIC SYSTEM COORDINATES. 0 OLOAD RESULTANT

Page 199: MSC.Access User's Manual Version 2005.1

SUBCASE/ LOAD DAREA ID TYPE T1 T2 T3 R1 R2 R3 0 1 FX 5.000000E+03 ---- ---- ---- 0.000000E+00 -1.250000E+04 FY ---- 0.000000E+00 ---- 0.000000E+00 ---- 0.000000E+00 FZ ---- ---- 0.000000E+00 0.000000E+00 0.000000E+00 ---- MX ---- ---- ---- 0.000000E+00 ---- ---- MY ---- ---- ---- ---- 0.000000E+00 ---- MZ ---- ---- ---- ---- ---- 0.000000E+00 TOTALS 5.000000E+03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -1.250000E+04 0 2 FX 0.000000E+00 ---- ---- ---- 0.000000E+00 0.000000E+00 FY ---- 5.000000E+03 ---- 0.000000E+00 ---- 1.250000E+04 FZ ---- ---- 0.000000E+00 0.000000E+00 0.000000E+00 ---- MX ---- ---- ---- 0.000000E+00 ---- ---- MY ---- ---- ---- ---- 0.000000E+00 ---- MZ ---- ---- ---- ---- ---- 0.000000E+00 TOTALS 0.000000E+00 5.000000E+03 0.000000E+00 0.000000E+00 0.000000E+00 1.250000E+04 1 SQUARE PLATE WITH CIRCULAR HOLE (NO MESH - SOL 101) A101X APRIL 2, 2001 MSC.NASTRAN 2/ 1/01 PAGE 10 MEMBRANE PROPERTIES OF QUAD4 AND TRIA3 ELEMENTS 0 SUBCASE 1 *** SYSTEM INFORMATION MESSAGE 6916 (DFMSYN) DECOMP ORDERING METHOD CHOSEN: BEND, ORDERING METHOD USED: BEND *** USER INFORMATION MESSAGE 5293 (SSG3A) FOR DATA BLOCK KLL LOAD SEQ. NO. EPSILON EXTERNAL WORK EPSILONS LARGER THAN .001 ARE FLAGGED WITH ASTERISKS 1 -2.0102575E-16 4.5937185E+00 2 7.3114566E-16 4.5937185E+00 1 SQUARE PLATE WITH CIRCULAR HOLE (NO MESH - SOL 101) A101X APRIL 2, 2001 MSC.NASTRAN 2/ 1/01 PAGE 11 MEMBRANE PROPERTIES OF QUAD4 AND TRIA3 ELEMENTS 0 MSC.XL DATA BASE CONVERSION STARTED PROJECT 0 0 0 0 0 0 0 0 0 0 PATHQUAL 0 0 0 0 0 0 0 0 0 0 PATHLINK 0 0 0 0 0 0 0 0 0 0 PATHINT 0 0 0 0 0 0 0 0 0 0 POST-PROCESSING DATA RECOVERY INITIATED SUBCASES 1 0 1 0 0 1 0 0 0 0 SUBCASE 1 0 1 0 0 1 0 0 0 0 OUTPUT RECOVERY FOR SUPERELEMENT 0 LOADS DATA RECOVERY INITIATED LOADS DATA RECOVERY FOR SUPERELEMENT 0 MSC.XL DATA BASE CONVERSION FINISHED 1 SQUARE PLATE WITH CIRCULAR HOLE (NO MESH - SOL 101) A101X APRIL 2, 2001 MSC.NASTRAN 2/ 1/01 PAGE 12 MEMBRANE PROPERTIES OF QUAD4 AND TRIA3 ELEMENTS 0 *** USER INFORMATION MESSAGE 7310 (VECPRN) ORIGIN OF SUPERELEMENT BASIC COORDINATE SYSTEM WILL BE USED AS REFERENCE LOCATION.

Page 200: MSC.Access User's Manual Version 2005.1

RESULTANTS ABOUT ORIGIN OF SUPERELEMENT BASIC COORDINATE SYSTEM IN SUPERELEMENT BASIC SYSTEM COORDINATES. 0 SPCFORCE RESULTANT SUBCASE/ LOAD DAREA ID TYPE T1 T2 T3 R1 R2 R3 0 1 FX -5.000000E+03 ---- ---- ---- 0.000000E+00 0.000000E+00 FY ---- 3.233598E-12 ---- 0.000000E+00 ---- 1.250000E+04 FZ ---- ---- 0.000000E+00 0.000000E+00 0.000000E+00 ---- MX ---- ---- ---- 0.000000E+00 ---- ---- MY ---- ---- ---- ---- 0.000000E+00 ---- MZ ---- ---- ---- ---- ---- 0.000000E+00 TOTALS -5.000000E+03 3.233598E-12 0.000000E+00 0.000000E+00 0.000000E+00 1.250000E+04 0 2 FX -3.950618E-12 ---- ---- ---- 0.000000E+00 0.000000E+00 FY ---- -5.000000E+03 ---- 0.000000E+00 ---- -1.250000E+04 FZ ---- ---- 0.000000E+00 0.000000E+00 0.000000E+00 ---- MX ---- ---- ---- 0.000000E+00 ---- ---- MY ---- ---- ---- ---- 0.000000E+00 ---- MZ ---- ---- ---- ---- ---- 0.000000E+00 TOTALS -3.950618E-12 -5.000000E+03 0.000000E+00 0.000000E+00 0.000000E+00 -1.250000E+04 *** USER WARNING MESSAGE 4591 (GPSTR1) ILLEGAL PARAMETER SPECIFICATION ON A SURFACE OR VOLUME CARD. ID= 7 1 SQUARE PLATE WITH CIRCULAR HOLE (NO MESH - SOL 101) A101X APRIL 2, 2001 MSC.NASTRAN 2/ 1/01 PAGE 13 MEMBRANE PROPERTIES OF QUAD4 AND TRIA3 ELEMENTS 0 1 SQUARE PLATE WITH CIRCULAR HOLE (NO MESH - SOL 101) A101X APRIL 2, 2001 MSC.NASTRAN 2/ 1/01 PAGE 14 MEMBRANE PROPERTIES OF QUAD4 AND TRIA3 ELEMENTS 0 1 SQUARE PLATE WITH CIRCULAR HOLE (NO MESH - SOL 101) A101X APRIL 2, 2001 MSC.NASTRAN 2/ 1/01 PAGE 15 MEMBRANE PROPERTIES OF QUAD4 AND TRIA3 ELEMENTS 0 MSC.XL DATA BASE CONVERSION STARTED PROJECT 0 0 0 0 0 0 0 0 0 0 PATHQUAL 0 0 0 0 0 0 0 0 0 0 PATHLINK 0 0 0 0 0 0 0 0 0 0 PATHINT 0 0 0 0 0 0 0 0 0 0 POST-PROCESSING DATA RECOVERY INITIATED OUTPUT RECOVERY FOR SUPERELEMENT 0 SUBGRID 1 0 1 0 0 1 0 0 0 0 SUBCTITL 1 0 1 0 0 1 0 0 0 0 DISPR 1 0 1 1 0 1 0 0 0 0 DISPR 1 0 1 2 0 1 0 0 0 0 DISPR 1 0 1 3 0 1 0 0 0 0 LOADR 1 0 1 1 0 1 0 0 0 0 LOADR 1 0 1 2 0 1 0 0 0 0 LOADR 1 0 1 3 0 1 0 0 0 0 SPCFR 1 0 1 1 0 1 0 0 0 0 SPCFR 1 0 1 2 0 1 0 0 0 0 SPCFR 1 0 1 3 0 1 0 0 0 0 SOLVE 1 0 0 0 0 0 0 0 0 0 SUBELEM 1 0 1 0 0 1 0 0 0 0

Page 201: MSC.Access User's Manual Version 2005.1

SUBCTITL 1 0 1 0 0 1 0 0 0 0 SQD4R 1 0 1 1 0 1 0 0 0 0 STR3R 1 0 1 1 0 1 0 0 0 0 SQD4R 1 0 1 2 0 1 0 0 0 0 STR3R 1 0 1 2 0 1 0 0 0 0 SQD4R 1 0 1 3 0 1 0 0 0 0 STR3R 1 0 1 3 0 1 0 0 0 0 SOLVE 1 0 0 0 0 0 0 0 0 0 SURFSET 1 0 1 0 0 1 0 0 0 0 SGSPR 1 0 1 1 1 1 0 0 0 0 SGSVR 1 0 1 1 1 1 0 0 0 0 SUBGRID 1 0 1 0 0 1 0 0 0 0 SGSPR 1 0 1 1 7 1 0 0 0 0 SGSVR 1 0 1 1 7 1 0 0 0 0 SGSPR 1 0 1 2 1 1 0 0 0 0 SGSVR 1 0 1 2 1 1 0 0 0 0 SGSPR 1 0 1 2 7 1 0 0 0 0 SGSVR 1 0 1 2 7 1 0 0 0 0 SGSPR 1 0 1 3 1 1 0 0 0 0 SGSVR 1 0 1 3 1 1 0 0 0 0 SGSPR 1 0 1 3 7 1 0 0 0 0 SGSVR 1 0 1 3 7 1 0 0 0 0 LOADS DATA RECOVERY INITIATED LOADS DATA RECOVERY FOR SUPERELEMENT 0 MSC.XL DATA BASE CONVERSION FINISHED 1 SQUARE PLATE WITH CIRCULAR HOLE (NO MESH - SOL 101) A101X APRIL 2, 2001 MSC.NASTRAN 2/ 1/01 PAGE 16 MEMBRANE PROPERTIES OF QUAD4 AND TRIA3 ELEMENTS 0 MSC.XL DATA BASE CONVERSION STARTED PROJECT 0 0 0 0 0 0 0 0 0 0 PATHQUAL 0 0 0 0 0 0 0 0 0 0 PATHLINK 0 0 0 0 0 0 0 0 0 0 PATHINT 0 0 0 0 0 0 0 0 0 0 UNDEFORMED GEOMETRY RECOVERY INITIATED UNDEFORMED GEOMETRY RECOVERY FOR SUPERELEMENT 0 POST-PROCESSING DATA RECOVERY INITIATED OUTPUT RECOVERY FOR SUPERELEMENT 0 LOADS DATA RECOVERY INITIATED LOADS DATA RECOVERY FOR SUPERELEMENT 0 MSC.XL DATA BASE CONVERSION FINISHED 1 SQUARE PLATE WITH CIRCULAR HOLE (NO MESH - SOL 101) A101X APRIL 2, 2001 MSC.NASTRAN 2/ 1/01 PAGE 17

Page 202: MSC.Access User's Manual Version 2005.1

MEMBRANE PROPERTIES OF QUAD4 AND TRIA3 ELEMENTS 0 * * * * D B D I C T P R I N T * * * * SUBDMAP = PRTSUM , DMAP STATEMENT NO. 28 0 * * * * A N A L Y S I S S U M M A R Y T A B L E * * * * 0 SEID PEID PROJ VERS APRCH SEMG SEMR SEKR SELG SELR MODES DYNRED SOLLIN PVALID SOLNL LOOPID DESIGN CYCLE SENSITIVITY -------------------------------------------------------------------------------------------------------------------------- 0 0 1 1 ' ' T T T T T F F T 0 F -1 0 F 0SEID = SUPERELEMENT ID. PEID = PRIMARY SUPERELEMENT ID OF IMAGE SUPERELEMENT. PROJ = PROJECT ID NUMBER. VERS = VERSION ID. APRCH = BLANK FOR STRUCTURAL ANALYSIS. HEAT FOR HEAT TRANSFER ANALYSIS. SEMG = STIFFNESS AND MASS MATRIX GENERATION STEP. SEMR = MASS MATRIX REDUCTION STEP (INCLUDES EIGENVALUE SOLUTION FOR MODES). SEKR = STIFFNESS MATRIX REDUCTION STEP. SELG = LOAD MATRIX GENERATION STEP. SELR = LOAD MATRIX REDUCTION STEP. MODES = T (TRUE) IF NORMAL MODES OR BUCKLING MODES CALCULATED. DYNRED = T (TRUE) MEANS GENERALIZED DYNAMIC AND/OR COMPONENT MODE REDUCTION PERFORMED. SOLLIN = T (TRUE) IF LINEAR SOLUTION EXISTS IN DATABASE. PVALID = P-DISTRIBUTION ID OF P-VALUE FOR P-ELEMENTS LOOPID = THE LAST LOOPID VALUE USED IN THE NONLINEAR ANALYSIS. USEFUL FOR RESTARTS. SOLNL = T (TRUE) IF NONLINEAR SOLUTION EXISTS IN DATABASE. DESIGN CYCLE = THE LAST DESIGN CYCLE (ONLY VALID IN OPTIMIZATION). SENSITIVITY = SENSITIVITY MATRIX GENERATION FLAG. 1 * * * END OF JOB * * *

Page 203: MSC.Access User's Manual Version 2005.1

C.3 MSC.Access SMPLR Program Output The output producted by the MSC.Access Prototype Program (SMPLR) depends on the type of data base created during the MSC.Nastran execution. In general, the output from a MSC/XL translation contains more objecs and information than the equivalent MSC/GRASP translation. The SMPLR program prototype does not print all information on the data base. Also the output presented here as been edited to shorten the document. Objects have been selected to illustrate possible procedures to employ during application development. In addition, not all entries in the selected objects are output, usually the first, middle and last 15 entries are selected for illustration. The output of the prototype is divided into three sections. 1. The control information stored in the data base directory. 2. The data base object dictionary entry and attributes in a three line format. 3. Selected output from objects via subroutines OUTELC,OUTELM,OUTGPF, ect. The following output was obtained from the Access data base created in the previous section. Note to obtain a complete data base content

Page 204: MSC.Access User's Manual Version 2005.1

MSC/Access PROTOTYPE SMPLR JANUARY,2001 PROCESSING DATA BASE : a101x.xdb DATA BASE BLOCK SIZE ================== 1024 NUMBER OF ALLOCATED DISK BLOCKS ======= 2147483640 NUMBER OF UNUSED BLOCKS =============== 2147483464 NUMBER OF USED BLOCKS ================= 176 START OF DEAD BLOCK CHAIN ============= 0 BLOCK NUMBER OF DICTIONARY PI ========= 2 NUMBER OF FILES ON THE DATA BASE ====== 56 LAST ASSIGNED INTERNAL FILE NUMBER ==== 56 BLOCK NUMBER OF FIRST DICTIONARY DB === 3 NUMBER OF DICTIONARY DATA BLOCKS ====== 2 NUMBER OF DICTIONARY SI BLOCKS ======== 1 BLOCK NUMBER OF FIRST DICTIONARY SI === 4 FORTRAN UNIT ASSOCIATED TO DATA BASE == 40 DATA DEFINITION LANGUAGE VERSION ====== 20010 DATA DEFINITION LANGUAGE CODES ======== 70201798 DATA BASE OPEN MODE FLAG ============== 1 BLOCK CONVERSION FLAG ================= 0 LENGTH OF DATA BLOCK NAMES ============ 12 LENGTH OF DICTIONARY ENTRY (IN WORDS) = 12 TOTAL DICTIONARY ENTRY LENGTH ========= 24 CQD4 1 0 1 0 0 0 0 0 0 0 12 1 37 38 12 85 1 42 1 1 42 38 CSTM 1 0 1 0 0 0 0 0 0 0 8 1 25 26 24 42 1 1 1 1 1 26 CTR3 1 0 1 0 0 0 0 0 0 0 13 1 40 41 10 102 50 1 1 1 50 41 DDLFORDB 0 0 0 0 0 0 0 0 0 0 1 2 0 5 0 0 0 5311 5317 0 0 10 DISPR 1 0 1 1 0 1 0 0 0 0 27 1 80 81 7 145 0 60 1 1 59 81 DISPR 1 0 1 2 0 1 0 0 0 0 28 1 83 84 7 145 0 60 1 1 59 84 DISPR 1 0 1 3 0 1 0 0 0 0 29 1 86 87 7 145 0 60 1 1 59 87 EQEXINE 1 0 1 0 0 0 0 0 0 0 18 1 55 56 2 510 -4 46 1 1 50 56 EQEXING 1 0 1 0 0 0 0 0 0 0 17 1 52 53 3 340 -1 61 1 1 10806 53 FORCE 1 0 1 0 1 0 0 0 0 0

Page 205: MSC.Access User's Manual Version 2005.1

20 1 61 62 6 170 120 1 1 1 120 62 FORCE 1 0 1 0 2 0 0 0 0 0 21 1 64 65 6 170 121 1 1 1 121 65 GRIDX 1 0 1 0 0 0 0 0 0 0 11 1 34 35 11 92 120 59 1 1 10806 35 LIMITS 1 0 1 0 0 0 0 0 0 0 14 1 43 44 7 145 0 1 1 1 0 44 LOADR 1 0 1 1 0 1 0 0 0 0 30 1 89 90 7 145 0 60 1 1 59 90 LOADR 1 0 1 2 0 1 0 0 0 0 31 1 92 93 7 145 0 60 1 1 59 93 LOADR 1 0 1 3 0 1 0 0 0 0 32 1 95 96 7 145 0 60 1 1 59 96 MAT1 1 0 1 0 0 0 0 0 0 0 10 1 31 32 12 85 1 1 1 1 1 32 PATHINT 0 0 0 0 0 0 0 0 0 0 6 1 21 22 21 48 1 4 1 1 4 22 PATHLINK 0 0 0 0 0 0 0 0 0 0 5 1 18 19 7 145 1 4 1 1 4 19 PATHQUAL 0 0 0 0 0 0 0 0 0 0 4 1 15 16 2 510 -7 8 1 1 1 16 PRODUCT 0 0 0 0 0 0 0 0 0 0 2 2 0 11 0 0 0 23 24 0 0 11 PROJECT 0 0 0 0 0 0 0 0 0 0 3 1 12 13 16 63 -1 2 1 1 1 13 PSHELL 1 0 1 0 0 0 0 0 0 0 9 1 28 29 11 92 1 1 1 1 1 29 RBE3 1 0 1 0 0 0 0 0 0 0 15 1 46 47 5 204 51 2 1 1 52 47 RBEPOOL 1 0 1 0 0 0 0 0 0 0 16 1 48 49 15 68 -1 11 1 1 10 49 SGSPR 1 0 1 1 1 1 0 0 0 0 45 1 134 135 4 255 -1 59 1 1 59 135 SGSPR 1 0 1 1 7 1 0 0 0 0 47 1 142 143 4 255

Page 206: MSC.Access User's Manual Version 2005.1

-1 59 1 1 59 143 SGSPR 1 0 1 2 1 1 0 0 0 0 49 1 149 150 4 255 -1 59 1 1 59 150 SGSPR 1 0 1 2 7 1 0 0 0 0 51 1 156 157 4 255 -1 59 1 1 59 157 SGSPR 1 0 1 3 1 1 0 0 0 0 53 1 163 164 4 255 -1 59 1 1 59 164 SGSPR 1 0 1 3 7 1 0 0 0 0 55 1 170 171 4 255 -1 59 1 1 59 171 SGSVR 1 0 1 1 1 1 0 0 0 0 46 1 137 138 9 113 1 171 2 1 171 140 SGSVR 1 0 1 1 7 1 0 0 0 0 48 1 145 146 9 113 1 171 2 1 171 148 SGSVR 1 0 1 2 1 1 0 0 0 0 50 1 152 153 9 113 1 171 2 1 171 155 SGSVR 1 0 1 2 7 1 0 0 0 0 52 1 159 160 9 113 1 171 2 1 171 162 SGSVR 1 0 1 3 1 1 0 0 0 0 54 1 166 167 9 113 1 171 2 1 171 169 SGSVR 1 0 1 3 7 1 0 0 0 0 56 1 173 174 9 113 1 171 2 1 171 176 SID 1 0 1 0 0 0 0 0 0 0 19 1 58 59 2 510 1 2 1 1 2 59 SOLVE 1 0 0 0 0 0 0 0 0 0 36 1 107 108 2 510 1 1 1 1 1 108 SPC1 1 0 1 0 1 0 0 0 0 0 22 1 67 68 7 145 10000 14 1 1 10706 68 SPCFR 1 0 1 1 0 1 0 0 0 0 33 1 98 99 7 145 0 60 1 1 59 99 SPCFR 1 0 1 2 0 1 0 0 0 0 34 1 101 102 7 145 0 60 1 1 59 102 SPCFR 1 0 1 3 0 1 0 0 0 0 35 1 104 105 7 145 0 60 1 1 59 105 SQD4R 1 0 1 1 0 1 0 0 0 0 38 1 113 114 17 60 -1 44 1 1 42 114

Page 207: MSC.Access User's Manual Version 2005.1

SQD4R 1 0 1 2 0 1 0 0 0 0 40 1 119 120 17 60 -1 44 1 1 42 120 SQD4R 1 0 1 3 0 1 0 0 0 0 42 1 125 126 17 60 -1 44 1 1 42 126 STR3R 1 0 1 1 0 1 0 0 0 0 39 1 116 117 17 60 -1 3 1 1 1 117 STR3R 1 0 1 2 0 1 0 0 0 0 41 1 122 123 17 60 -1 3 1 1 1 123 STR3R 1 0 1 3 0 1 0 0 0 0 43 1 129 130 17 60 -1 3 1 1 1 130 SUBCASE 1 0 1 0 0 1 0 0 0 0 24 2 0 73 0 0 1 4 5 0 0 73 SUBCASES 1 0 1 0 0 1 0 0 0 0 23 1 70 71 8 127 1 3 1 1 3 71 SUBCTITL 1 0 1 0 0 1 0 0 0 0 26 1 77 78 97 10 1 3 1 1 3 78 SUBELEM 1 0 1 0 0 1 0 0 0 0 37 1 110 111 28 36 1 3 1 1 3 111 SUBGRID 1 0 1 0 0 1 0 0 0 0 25 1 74 75 29 35 1 3 1 1 3 75 SUPERS 1 0 0 0 0 0 0 0 0 0 7 2 0 24 0 0 -7 1 2 0 0 24 SURFSET 1 0 1 0 0 1 0 0 0 0 44 1 132 133 3 340 1 2 1 1 7 133 ACCESS PROJECT 1 NASTRAN RESTART VERSION 1 TITLE : MSC PRODUCT: NASTRAN RELEASE 2001 MSC.Nastran PATH INDEX 1 QUALIFER: MODEL TYPE:INT NUMBER 1 VALUES FOLLOWING ON NEXT LINE(S) .... 0 QUALIFER: SOLID TYPE:INT NUMBER 1 VALUES FOLLOWING ON NEXT LINE(S) .... 0 QUALIFER: HIGHQUAL TYPE:INT NUMBER 1 VALUES FOLLOWING ON NEXT LINE(S) .... 0 QUALIFER: AUXMID TYPE:INT NUMBER 1 VALUES FOLLOWING ON NEXT LINE(S) .... 0

Page 208: MSC.Access User's Manual Version 2005.1

DATA BLOCK CODE 1 DICTIONARY NAME:DISPR APPROACH:STATICS (DISPLACEMENT) PROJECT 1 PATH 1 SEID 0 SUBCASE 1 DESIGN CYCLE 0 P-ITERATION 0 GRID ID 120 ---- 0.00000E+00 1.83749E-03 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 GRID ID 121 ---- 0.00000E+00 0.00000E+00 -5.64702E-04 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 GRID ID 10000 ---- 0.00000E+00 1.10024E-03 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 GRID ID 10001 ---- 0.00000E+00 1.11034E-03 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 GRID ID 10002 ---- 0.00000E+00 1.11848E-03 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 GRID ID 10003 ---- 0.00000E+00 1.13370E-03 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 GRID ID 10004 ---- 0.00000E+00 1.21602E-03 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 GRID ID 10005 ---- 0.00000E+00 1.56928E-03 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 GRID ID 10006 ---- 0.00000E+00 2.02355E-03 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 GRID ID 10100 ---- 0.00000E+00 1.05410E-03 -2.59923E-04 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 DATA BLOCK CODE 4 DICTIONARY NAME:SPCFR APPROACH:STATICS (CONSTRAINT FORCES) PROJECT 1 PATH 1 SEID 0 SUBCASE 1 DESIGN CYCLE 0 P-ITERATION 0 GRID ID 120 ---- 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 GRID ID 121 ---- 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 GRID ID 10000 ---- 0.00000E+00 0.00000E+00 5.66691E+01 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 GRID ID 10001 ---- 0.00000E+00 0.00000E+00 9.93207E+01 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 GRID ID 10002 ---- 0.00000E+00 0.00000E+00 8.11467E+01 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 GRID ID 10003 ---- 0.00000E+00 0.00000E+00 5.18784E+01 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 GRID ID 10004 ---- 0.00000E+00 0.00000E+00 -1.21092E+01 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 GRID ID 10005 ---- 0.00000E+00 0.00000E+00 -1.26546E+02 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 GRID ID 10006 ---- 0.00000E+00 0.00000E+00 -1.50360E+02 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 GRID ID 10100 ---- 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 DATA BLOCK CODE 5 DICTIONARY NAME:LOADR APPROACH:STATICS (LOAD) PROJECT 1 PATH 1 SEID 0 SUBCASE 1 DESIGN CYCLE 0 P-ITERATION 0

Page 209: MSC.Access User's Manual Version 2005.1

GRID ID 120 ---- 0.00000E+00 5.00000E+03 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 GRID ID 121 ---- 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 GRID ID 10000 ---- 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 GRID ID 10001 ---- 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 GRID ID 10002 ---- 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 GRID ID 10003 ---- 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 GRID ID 10004 ---- 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 GRID ID 10005 ---- 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 GRID ID 10006 ---- 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 GRID ID 10100 ---- 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 DATA BLOCK CODE 7 DICTIONARY NAME:SGSVR APPROACH:STATICS (GRID POINT STRESS SURFACE) PROJECT 1 PATH 1 SEID 0 SUBCASE 1 SURFACE ID 1 DESIGN CYCLE 0 P-ITERATION 0 GRID ID 10000 ---- 0.00000E+00 FIBER 1 = Z1 -7.94082E+02 -1.27099E+04 1.01180E+03 4.81915E+00 -7.08778E+02 -1.27952E+04 6.04321E+03 1.24559E+04 GRID ID 10000 ---- 0.00000E+00 FIBER 2 = Z2 -7.94082E+02 -1.27099E+04 1.01180E+03 4.81915E+00 -7.08778E+02 -1.27952E+04 6.04321E+03 1.24559E+04 GRID ID 10000 ---- 0.00000E+00 FIBER 3 = MID -7.94082E+02 -1.27099E+04 1.01180E+03 4.81915E+00 -7.08778E+02 -1.27952E+04 6.04321E+03 1.24559E+04 GRID ID 10001 ---- 0.00000E+00 FIBER 1 = Z1 -6.21777E+02 -8.67669E+03 1.38681E+02 9.86067E-01 -6.19390E+02 -8.67908E+03 4.02984E+03 8.38656E+03 GRID ID 10001 ---- 0.00000E+00 FIBER 2 = Z2 -6.21777E+02 -8.67669E+03 1.38681E+02 9.86067E-01 -6.19390E+02 -8.67908E+03 4.02984E+03 8.38656E+03 GRID ID 10001 ---- 0.00000E+00 FIBER 3 = MID -6.21777E+02 -8.67669E+03 1.38681E+02 9.86067E-01 -6.19390E+02 -8.67908E+03 4.02984E+03 8.38656E+03 GRID ID 10002 ---- 0.00000E+00 FIBER 1 = Z1 -6.21777E+02 -8.67669E+03 1.38681E+02 9.86067E-01 -6.19390E+02 -8.67908E+03 4.02984E+03 8.38656E+03 GRID ID 10002 ---- 0.00000E+00 FIBER 2 = Z2 -2.14120E+02 -4.48617E+03 -4.89693E+01 -6.56650E-01 -2.13558E+02 -4.48673E+03 2.13659E+03 4.38386E+03 GRID ID 10002 ---- 0.00000E+00 FIBER 3 = MID -2.14120E+02 -4.48617E+03 -4.89693E+01 -6.56650E-01 -2.13558E+02 -4.48673E+03 2.13659E+03 4.38386E+03 GRID ID 10003 ---- 0.00000E+00 FIBER 1 = Z1 -6.21777E+02 -8.67669E+03 1.38681E+02 9.86067E-01 -6.19390E+02 -8.67908E+03 4.02984E+03 8.38656E+03 GRID ID 10003 ---- 0.00000E+00 FIBER 2 = Z2 1.87503E+03 -1.55681E+03 -1.40624E+02 -2.34253E+00 1.88078E+03 -1.56257E+03 1.72167E+03 2.98627E+03 GRID ID 10003 ---- 0.00000E+00 FIBER 3 = MID 1.87503E+03 -1.55681E+03 -1.40624E+02 -2.34253E+00 1.88078E+03 -1.56257E+03 1.72167E+03 2.98627E+03 GRID ID 10004 ---- 0.00000E+00 FIBER 1 = Z1 -2.14120E+02 -4.48617E+03 -4.89693E+01 -6.56650E-01 -2.13558E+02 -4.48673E+03 2.13659E+03 4.38386E+03 GRID ID 10004 ---- 0.00000E+00 FIBER 2 = Z2 5.39521E+03 1.95853E+01 -1.36566E+02 -1.45433E+00 5.39868E+03 1.61182E+01 2.69128E+03 5.39064E+03

Page 210: MSC.Access User's Manual Version 2005.1

GRID ID 10004 ---- 0.00000E+00 FIBER 3 = MID 5.39521E+03 1.95853E+01 -1.36566E+02 -1.45433E+00 5.39868E+03 1.61182E+01 2.69128E+03 5.39064E+03 GRID ID 10005 ---- 0.00000E+00 FIBER 1 = Z1 -2.14120E+02 -4.48617E+03 -4.89693E+01 -6.56650E-01 -2.13558E+02 -4.48673E+03 2.13659E+03 4.38386E+03 GRID ID 10005 ---- 0.00000E+00 FIBER 2 = Z2 8.44496E+03 1.18999E+03 -8.55874E+01 -6.75797E-01 8.44597E+03 1.18898E+03 3.62849E+03 7.91871E+03 GRID ID 10005 ---- 0.00000E+00 FIBER 3 = MID 8.44496E+03 1.18999E+03 -8.55874E+01 -6.75797E-01 8.44597E+03 1.18898E+03 3.62849E+03 7.91871E+03 GRID ID 10006 ---- 0.00000E+00 FIBER 1 = Z1 -2.14120E+02 -4.48617E+03 -4.89693E+01 -6.56650E-01 -2.13558E+02 -4.48673E+03 2.13659E+03 4.38386E+03 GRID ID 10006 ---- 0.00000E+00 FIBER 2 = Z2 1.02669E+04 2.56622E+03 2.26108E+02 1.68040E+00 1.02735E+04 2.55959E+03 3.85697E+03 9.26288E+03 GRID ID 10006 ---- 0.00000E+00 FIBER 3 = MID 1.02669E+04 2.56622E+03 2.26108E+02 1.68040E+00 1.02735E+04 2.55959E+03 3.85697E+03 9.26288E+03 GRID ID 10100 ---- 0.00000E+00 FIBER 1 = Z1 1.87503E+03 -1.55681E+03 -1.40624E+02 -2.34253E+00 1.88078E+03 -1.56257E+03 1.72167E+03 2.98627E+03 GRID ID 10100 ---- 0.00000E+00 FIBER 2 = Z2 -6.69237E+02 -1.03717E+04 1.50030E+03 8.59242E+00 -4.42542E+02 -1.05984E+04 5.07792E+03 1.03842E+04 GRID ID 10100 ---- 0.00000E+00 FIBER 3 = MID -6.69237E+02 -1.03717E+04 1.50030E+03 8.59242E+00 -4.42542E+02 -1.05984E+04 5.07792E+03 1.03842E+04 GRID ID 10101 ---- 0.00000E+00 FIBER 1 = Z1 1.87503E+03 -1.55681E+03 -1.40624E+02 -2.34253E+00 1.88078E+03 -1.56257E+03 1.72167E+03 2.98627E+03 GRID ID 10101 ---- 0.00000E+00 FIBER 2 = Z2 -1.55507E+01 -7.05868E+03 -1.90979E+01 -1.55360E-01 -1.54990E+01 -7.05873E+03 3.52162E+03 7.05100E+03 GRID ID 10101 ---- 0.00000E+00 FIBER 3 = MID -1.55507E+01 -7.05868E+03 -1.90979E+01 -1.55360E-01 -1.54990E+01 -7.05873E+03 3.52162E+03 7.05100E+03 GRID ID 10102 ---- 0.00000E+00 FIBER 1 = Z1 1.87503E+03 -1.55681E+03 -1.40624E+02 -2.34253E+00 1.88078E+03 -1.56257E+03 1.72167E+03 2.98627E+03 GRID ID 10102 ---- 0.00000E+00 FIBER 2 = Z2 1.11877E+03 -4.09973E+03 -1.20762E+03 -1.24179E+01 1.38468E+03 -4.36564E+03 2.87516E+03 5.19819E+03 GRID ID 10102 ---- 0.00000E+00 FIBER 3 = MID 1.11877E+03 -4.09973E+03 -1.20762E+03 -1.24179E+01 1.38468E+03 -4.36564E+03 2.87516E+03 5.19819E+03 DATA BLOCK CODE 7 DICTIONARY NAME:SGSVR APPROACH:STATICS (GRID POINT STRESS SURFACE) PROJECT 1 PATH 1 SEID 0 SUBCASE 1 SURFACE ID 7 DESIGN CYCLE 0 P-ITERATION 0 GRID ID 10000 ---- 0.00000E+00 FIBER 1 = Z1 -4.98782E+02 -1.30052E+04 4.89390E+02 2.23749E+00 -4.79661E+02 -1.30243E+04 6.27232E+03 1.27912E+04 GRID ID 10000 ---- 0.00000E+00 FIBER 2 = Z2 -4.98782E+02 -1.30052E+04 4.89390E+02 2.23749E+00 -4.79661E+02 -1.30243E+04 6.27232E+03 1.27912E+04 GRID ID 10000 ---- 0.00000E+00 FIBER 3 = MID -4.98782E+02 -1.30052E+04 4.89390E+02 2.23749E+00 -4.79661E+02 -1.30243E+04 6.27232E+03 1.27912E+04 GRID ID 10001 ---- 0.00000E+00 FIBER 1 = Z1 -4.48765E+02 -8.84970E+03 -3.52465E+01 -2.40381E-01 -4.48617E+02 -8.84985E+03 4.20062E+03 8.63429E+03 GRID ID 10001 ---- 0.00000E+00 FIBER 2 = Z2 -4.48765E+02 -8.84970E+03 -3.52465E+01 -2.40381E-01 -4.48617E+02 -8.84985E+03 4.20062E+03 8.63429E+03 GRID ID 10001 ---- 0.00000E+00 FIBER 3 = MID -4.48765E+02 -8.84970E+03 -3.52465E+01 -2.40381E-01 -4.48617E+02 -8.84985E+03 4.20062E+03 8.63429E+03 GRID ID 10002 ---- 0.00000E+00 FIBER 1 = Z1 -4.48765E+02 -8.84970E+03 -3.52465E+01 -2.40381E-01 -4.48617E+02 -8.84985E+03 4.20062E+03 8.63429E+03 GRID ID 10002 ---- 0.00000E+00 FIBER 2 = Z2 2.05532E+02 -4.90582E+03 -6.08948E+01 -6.82471E-01 2.06258E+02 -4.90655E+03 2.55640E+03 5.01286E+03

Page 211: MSC.Access User's Manual Version 2005.1

GRID ID 10002 ---- 0.00000E+00 FIBER 3 = MID 2.05532E+02 -4.90582E+03 -6.08948E+01 -6.82471E-01 2.06258E+02 -4.90655E+03 2.55640E+03 5.01286E+03 GRID ID 10003 ---- 0.00000E+00 FIBER 1 = Z1 -4.48765E+02 -8.84970E+03 -3.52465E+01 -2.40381E-01 -4.48617E+02 -8.84985E+03 4.20062E+03 8.63429E+03 GRID ID 10003 ---- 0.00000E+00 FIBER 2 = Z2 2.39898E+03 -2.08076E+03 -7.16339E+01 -9.15884E-01 2.40012E+03 -2.08191E+03 2.24102E+03 3.88481E+03 GRID ID 10003 ---- 0.00000E+00 FIBER 3 = MID 2.39898E+03 -2.08076E+03 -7.16339E+01 -9.15884E-01 2.40012E+03 -2.08191E+03 2.24102E+03 3.88481E+03 GRID ID 10004 ---- 0.00000E+00 FIBER 1 = Z1 2.05532E+02 -4.90582E+03 -6.08948E+01 -6.82471E-01 2.06258E+02 -4.90655E+03 2.55640E+03 5.01286E+03 GRID ID 10004 ---- 0.00000E+00 FIBER 2 = Z2 5.87345E+03 -4.58648E+02 -8.23709E+01 -7.45163E-01 5.87452E+03 -4.59719E+02 3.16712E+03 6.11735E+03 GRID ID 10004 ---- 0.00000E+00 FIBER 3 = MID 5.87345E+03 -4.58648E+02 -8.23709E+01 -7.45163E-01 5.87452E+03 -4.59719E+02 3.16712E+03 6.11735E+03 GRID ID 10005 ---- 0.00000E+00 FIBER 1 = Z1 2.05532E+02 -4.90582E+03 -6.08948E+01 -6.82471E-01 2.06258E+02 -4.90655E+03 2.55640E+03 5.01286E+03 GRID ID 10005 ---- 0.00000E+00 FIBER 2 = Z2 8.78289E+03 8.52057E+02 -6.17921E+01 -4.46377E-01 8.78337E+03 8.51576E+02 3.96590E+03 8.39006E+03 GRID ID 10005 ---- 0.00000E+00 FIBER 3 = MID 8.78289E+03 8.52057E+02 -6.17921E+01 -4.46377E-01 8.78337E+03 8.51576E+02 3.96590E+03 8.39006E+03 GRID ID 10006 ---- 0.00000E+00 FIBER 1 = Z1 2.05532E+02 -4.90582E+03 -6.08948E+01 -6.82471E-01 2.06258E+02 -4.90655E+03 2.55640E+03 5.01286E+03 GRID ID 10006 ---- 0.00000E+00 FIBER 2 = Z2 1.06701E+04 2.16301E+03 2.69041E+02 1.80959E+00 1.06786E+04 2.15450E+03 4.26206E+03 9.78099E+03 GRID ID 10006 ---- 0.00000E+00 FIBER 3 = MID 1.06701E+04 2.16301E+03 2.69041E+02 1.80959E+00 1.06786E+04 2.15450E+03 4.26206E+03 9.78099E+03 GRID ID 10100 ---- 0.00000E+00 FIBER 1 = Z1 2.39898E+03 -2.08076E+03 -7.16339E+01 -9.15884E-01 2.40012E+03 -2.08191E+03 2.24102E+03 3.88481E+03 GRID ID 10100 ---- 0.00000E+00 FIBER 2 = Z2 -3.82434E+02 -1.06585E+04 -1.39999E+02 -7.80392E-01 -3.80527E+02 -1.06604E+04 5.13993E+03 1.04753E+04 GRID ID 10100 ---- 0.00000E+00 FIBER 3 = MID -3.82434E+02 -1.06585E+04 -1.39999E+02 -7.80392E-01 -3.80527E+02 -1.06604E+04 5.13993E+03 1.04753E+04 GRID ID 10101 ---- 0.00000E+00 FIBER 1 = Z1 2.39898E+03 -2.08076E+03 -7.16339E+01 -9.15884E-01 2.40012E+03 -2.08191E+03 2.24102E+03 3.88481E+03 GRID ID 10101 ---- 0.00000E+00 FIBER 2 = Z2 -2.82484E+02 -6.79175E+03 -1.15786E+03 -9.79172E+00 -8.26587E+01 -6.99157E+03 3.45446E+03 6.95061E+03 GRID ID 10101 ---- 0.00000E+00 FIBER 3 = MID -2.82484E+02 -6.79175E+03 -1.15786E+03 -9.79172E+00 -8.26587E+01 -6.99157E+03 3.45446E+03 6.95061E+03 GRID ID 10102 ---- 0.00000E+00 FIBER 1 = Z1 2.39898E+03 -2.08076E+03 -7.16339E+01 -9.15884E-01 2.40012E+03 -2.08191E+03 2.24102E+03 3.88481E+03 GRID ID 10102 ---- 0.00000E+00 FIBER 2 = Z2 4.08827E+02 -3.38978E+03 -2.00061E+03 -2.32440E+01 1.26811E+03 -4.24906E+03 2.75859E+03 5.00509E+03 GRID ID 10102 ---- 0.00000E+00 FIBER 3 = MID 4.08827E+02 -3.38978E+03 -2.00061E+03 -2.32440E+01 1.26811E+03 -4.24906E+03 2.75859E+03 5.00509E+03 DATA BLOCK CODE 1 DICTIONARY NAME:DISPR APPROACH:STATICS (DISPLACEMENT) PROJECT 1 PATH 1 SEID 0 SUBCASE 2 DESIGN CYCLE 0 P-ITERATION 0 GRID ID 120 ---- 0.00000E+00 -5.64702E-04 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 GRID ID 121 ---- 0.00000E+00 0.00000E+00 1.83749E-03 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00

Page 212: MSC.Access User's Manual Version 2005.1

GRID ID 10000 ---- 0.00000E+00 -4.17106E-04 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 GRID ID 10001 ---- 0.00000E+00 -4.43562E-04 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 GRID ID 10002 ---- 0.00000E+00 -4.64091E-04 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 GRID ID 10003 ---- 0.00000E+00 -4.78164E-04 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 GRID ID 10004 ---- 0.00000E+00 -4.98751E-04 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 GRID ID 10005 ---- 0.00000E+00 -5.90846E-04 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 GRID ID 10006 ---- 0.00000E+00 -7.20318E-04 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 GRID ID 10100 ---- 0.00000E+00 -3.71053E-04 2.59675E-04 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 DATA BLOCK CODE 4 DICTIONARY NAME:SPCFR APPROACH:STATICS (CONSTRAINT FORCES) PROJECT 1 PATH 1 SEID 0 SUBCASE 2 DESIGN CYCLE 0 P-ITERATION 0 GRID ID 120 ---- 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 GRID ID 121 ---- 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 GRID ID 10000 ---- 0.00000E+00 0.00000E+00 -1.56313E+02 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 GRID ID 10001 ---- 0.00000E+00 0.00000E+00 -3.31012E+02 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 GRID ID 10002 ---- 0.00000E+00 0.00000E+00 -4.12946E+02 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 GRID ID 10003 ---- 0.00000E+00 0.00000E+00 -6.65053E+02 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 GRID ID 10004 ---- 0.00000E+00 0.00000E+00 -1.22627E+03 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 GRID ID 10005 ---- 0.00000E+00 0.00000E+00 -1.51762E+03 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 GRID ID 10006 ---- 0.00000E+00 0.00000E+00 -6.90789E+02 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 GRID ID 10100 ---- 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 DATA BLOCK CODE 5 DICTIONARY NAME:LOADR APPROACH:STATICS (LOAD) PROJECT 1 PATH 1 SEID 0 SUBCASE 2 DESIGN CYCLE 0 P-ITERATION 0 GRID ID 120 ---- 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 GRID ID 121 ---- 0.00000E+00 0.00000E+00 5.00000E+03 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 GRID ID 10000 ---- 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 GRID ID 10001 ---- 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00

Page 213: MSC.Access User's Manual Version 2005.1

GRID ID 10002 ---- 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 GRID ID 10003 ---- 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 GRID ID 10004 ---- 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 GRID ID 10005 ---- 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 GRID ID 10006 ---- 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 GRID ID 10100 ---- 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 DATA BLOCK CODE 7 DICTIONARY NAME:SGSVR APPROACH:STATICS (GRID POINT STRESS SURFACE) PROJECT 1 PATH 1 SEID 0 SUBCASE 2 SURFACE ID 1 DESIGN CYCLE 0 P-ITERATION 0 GRID ID 10000 ---- 0.00000E+00 FIBER 1 = Z1 4.62745E+02 3.35039E+04 -1.41924E+03 -8.75450E+01 3.35647E+04 4.01896E+02 1.65814E+04 3.33656E+04 GRID ID 10000 ---- 0.00000E+00 FIBER 2 = Z2 4.62745E+02 3.35039E+04 -1.41924E+03 -8.75450E+01 3.35647E+04 4.01896E+02 1.65814E+04 3.33656E+04 GRID ID 10000 ---- 0.00000E+00 FIBER 3 = MID 4.62745E+02 3.35039E+04 -1.41924E+03 -8.75450E+01 3.35647E+04 4.01896E+02 1.65814E+04 3.33656E+04 GRID ID 10001 ---- 0.00000E+00 FIBER 1 = Z1 2.13852E+03 2.76481E+04 -2.26296E+02 -8.94918E+01 2.76501E+04 2.13651E+03 1.27568E+04 2.66461E+04 GRID ID 10001 ---- 0.00000E+00 FIBER 2 = Z2 2.13852E+03 2.76481E+04 -2.26296E+02 -8.94918E+01 2.76501E+04 2.13651E+03 1.27568E+04 2.66461E+04 GRID ID 10001 ---- 0.00000E+00 FIBER 3 = MID 2.13852E+03 2.76481E+04 -2.26296E+02 -8.94918E+01 2.76501E+04 2.13651E+03 1.27568E+04 2.66461E+04 GRID ID 10002 ---- 0.00000E+00 FIBER 1 = Z1 2.13852E+03 2.76481E+04 -2.26296E+02 -8.94918E+01 2.76501E+04 2.13651E+03 1.27568E+04 2.66461E+04 GRID ID 10002 ---- 0.00000E+00 FIBER 2 = Z2 3.76291E+03 2.14575E+04 -2.14732E+01 -8.99305E+01 2.14575E+04 3.76289E+03 8.84731E+03 1.98455E+04 GRID ID 10002 ---- 0.00000E+00 FIBER 3 = MID 3.76291E+03 2.14575E+04 -2.14732E+01 -8.99305E+01 2.14575E+04 3.76289E+03 8.84731E+03 1.98455E+04 GRID ID 10003 ---- 0.00000E+00 FIBER 1 = Z1 2.13852E+03 2.76481E+04 -2.26296E+02 -8.94918E+01 2.76501E+04 2.13651E+03 1.27568E+04 2.66461E+04 GRID ID 10003 ---- 0.00000E+00 FIBER 2 = Z2 3.92687E+03 1.63497E+04 9.52609E+01 8.95607E+01 1.63504E+04 3.92614E+03 6.21213E+03 1.47836E+04 GRID ID 10003 ---- 0.00000E+00 FIBER 3 = MID 3.92687E+03 1.63497E+04 9.52609E+01 8.95607E+01 1.63504E+04 3.92614E+03 6.21213E+03 1.47836E+04 GRID ID 10004 ---- 0.00000E+00 FIBER 1 = Z1 3.76291E+03 2.14575E+04 -2.14732E+01 -8.99305E+01 2.14575E+04 3.76289E+03 8.84731E+03 1.98455E+04 GRID ID 10004 ---- 0.00000E+00 FIBER 2 = Z2 2.62550E+03 1.26843E+04 1.12570E+02 8.93589E+01 1.26855E+04 2.62424E+03 5.03064E+03 1.15982E+04 GRID ID 10004 ---- 0.00000E+00 FIBER 3 = MID 2.62550E+03 1.26843E+04 1.12570E+02 8.93589E+01 1.26855E+04 2.62424E+03 5.03064E+03 1.15982E+04 GRID ID 10005 ---- 0.00000E+00 FIBER 1 = Z1 3.76291E+03 2.14575E+04 -2.14732E+01 -8.99305E+01 2.14575E+04 3.76289E+03 8.84731E+03 1.98455E+04 GRID ID 10005 ---- 0.00000E+00 FIBER 2 = Z2 9.98008E+02 1.03231E+04 7.32832E+01 8.95498E+01 1.03237E+04 9.97432E+02 4.66313E+03 9.86287E+03 GRID ID 10005 ---- 0.00000E+00 FIBER 3 = MID 9.98008E+02 1.03231E+04 7.32832E+01 8.95498E+01 1.03237E+04 9.97432E+02 4.66313E+03 9.86287E+03

Page 214: MSC.Access User's Manual Version 2005.1

GRID ID 10006 ---- 0.00000E+00 FIBER 1 = Z1 3.76291E+03 2.14575E+04 -2.14732E+01 -8.99305E+01 2.14575E+04 3.76289E+03 8.84731E+03 1.98455E+04 GRID ID 10006 ---- 0.00000E+00 FIBER 2 = Z2 -8.74269E+01 8.44391E+03 -7.58213E+01 -8.94908E+01 8.44458E+03 -8.81006E+01 4.26634E+03 8.48898E+03 GRID ID 10006 ---- 0.00000E+00 FIBER 3 = MID -8.74269E+01 8.44391E+03 -7.58213E+01 -8.94908E+01 8.44458E+03 -8.81006E+01 4.26634E+03 8.48898E+03 GRID ID 10100 ---- 0.00000E+00 FIBER 1 = Z1 3.92687E+03 1.63497E+04 9.52609E+01 8.95607E+01 1.63504E+04 3.92614E+03 6.21213E+03 1.47836E+04 GRID ID 10100 ---- 0.00000E+00 FIBER 2 = Z2 1.44464E+03 3.00713E+04 -4.94549E+03 -8.04696E+01 3.09016E+04 6.14345E+02 1.51436E+04 3.05990E+04 GRID ID 10100 ---- 0.00000E+00 FIBER 3 = MID 1.44464E+03 3.00713E+04 -4.94549E+03 -8.04696E+01 3.09016E+04 6.14345E+02 1.51436E+04 3.05990E+04 GRID ID 10101 ---- 0.00000E+00 FIBER 1 = Z1 3.92687E+03 1.63497E+04 9.52609E+01 8.95607E+01 1.63504E+04 3.92614E+03 6.21213E+03 1.47836E+04 GRID ID 10101 ---- 0.00000E+00 FIBER 2 = Z2 2.52957E+03 2.50446E+04 -2.80374E+03 -8.30074E+01 2.53885E+04 2.18568E+03 1.16014E+04 2.43693E+04 GRID ID 10101 ---- 0.00000E+00 FIBER 3 = MID 2.52957E+03 2.50446E+04 -2.80374E+03 -8.30074E+01 2.53885E+04 2.18568E+03 1.16014E+04 2.43693E+04 GRID ID 10102 ---- 0.00000E+00 FIBER 1 = Z1 3.92687E+03 1.63497E+04 9.52609E+01 8.95607E+01 1.63504E+04 3.92614E+03 6.21213E+03 1.47836E+04 GRID ID 10102 ---- 0.00000E+00 FIBER 2 = Z2 3.19767E+03 2.03124E+04 -9.71655E+02 -8.67610E+01 2.03674E+04 3.14269E+03 8.61237E+03 1.89921E+04 GRID ID 10102 ---- 0.00000E+00 FIBER 3 = MID 3.19767E+03 2.03124E+04 -9.71655E+02 -8.67610E+01 2.03674E+04 3.14269E+03 8.61237E+03 1.89921E+04 DATA BLOCK CODE 7 DICTIONARY NAME:SGSVR APPROACH:STATICS (GRID POINT STRESS SURFACE) PROJECT 1 PATH 1 SEID 0 SUBCASE 2 SURFACE ID 7 DESIGN CYCLE 0 P-ITERATION 0 GRID ID 10000 ---- 0.00000E+00 FIBER 1 = Z1 5.10938E+02 3.34557E+04 -4.86759E+02 -8.91537E+01 3.34629E+04 5.03748E+02 1.64796E+04 3.32139E+04 GRID ID 10000 ---- 0.00000E+00 FIBER 2 = Z2 5.10938E+02 3.34557E+04 -4.86759E+02 -8.91537E+01 3.34629E+04 5.03748E+02 1.64796E+04 3.32139E+04 GRID ID 10000 ---- 0.00000E+00 FIBER 3 = MID 5.10938E+02 3.34557E+04 -4.86759E+02 -8.91537E+01 3.34629E+04 5.03748E+02 1.64796E+04 3.32139E+04 GRID ID 10001 ---- 0.00000E+00 FIBER 1 = Z1 2.33665E+03 2.74499E+04 3.41322E+01 8.99221E+01 2.74500E+04 2.33661E+03 1.25567E+04 2.63594E+04 GRID ID 10001 ---- 0.00000E+00 FIBER 2 = Z2 2.33665E+03 2.74499E+04 3.41322E+01 8.99221E+01 2.74500E+04 2.33661E+03 1.25567E+04 2.63594E+04 GRID ID 10001 ---- 0.00000E+00 FIBER 3 = MID 2.33665E+03 2.74499E+04 3.41322E+01 8.99221E+01 2.74500E+04 2.33661E+03 1.25567E+04 2.63594E+04 GRID ID 10002 ---- 0.00000E+00 FIBER 1 = Z1 2.33665E+03 2.74499E+04 3.41322E+01 8.99221E+01 2.74500E+04 2.33661E+03 1.25567E+04 2.63594E+04 GRID ID 10002 ---- 0.00000E+00 FIBER 2 = Z2 3.63005E+03 2.15904E+04 5.65368E+01 8.98196E+01 2.15905E+04 3.62987E+03 8.98033E+03 2.00239E+04 GRID ID 10002 ---- 0.00000E+00 FIBER 3 = MID 3.63005E+03 2.15904E+04 5.65368E+01 8.98196E+01 2.15905E+04 3.62987E+03 8.98033E+03 2.00239E+04 GRID ID 10003 ---- 0.00000E+00 FIBER 1 = Z1 2.33665E+03 2.74499E+04 3.41322E+01 8.99221E+01 2.74500E+04 2.33661E+03 1.25567E+04 2.63594E+04 GRID ID 10003 ---- 0.00000E+00 FIBER 2 = Z2 3.59921E+03 1.66773E+04 6.95123E+01 8.96955E+01 1.66777E+04 3.59884E+03 6.53943E+03 1.52012E+04 GRID ID 10003 ---- 0.00000E+00 FIBER 3 = MID 3.59921E+03 1.66773E+04 6.95123E+01 8.96955E+01 1.66777E+04 3.59884E+03 6.53943E+03 1.52012E+04

Page 215: MSC.Access User's Manual Version 2005.1

GRID ID 10004 ---- 0.00000E+00 FIBER 1 = Z1 3.63005E+03 2.15904E+04 5.65368E+01 8.98196E+01 2.15905E+04 3.62987E+03 8.98033E+03 2.00239E+04 GRID ID 10004 ---- 0.00000E+00 FIBER 2 = Z2 2.25541E+03 1.30543E+04 7.96738E+01 8.95773E+01 1.30549E+04 2.25483E+03 5.40005E+03 1.20863E+04 GRID ID 10004 ---- 0.00000E+00 FIBER 3 = MID 2.25541E+03 1.30543E+04 7.96738E+01 8.95773E+01 1.30549E+04 2.25483E+03 5.40005E+03 1.20863E+04 GRID ID 10005 ---- 0.00000E+00 FIBER 1 = Z1 3.63005E+03 2.15904E+04 5.65368E+01 8.98196E+01 2.15905E+04 3.62987E+03 8.98033E+03 2.00239E+04 GRID ID 10005 ---- 0.00000E+00 FIBER 2 = Z2 7.02545E+02 1.06186E+04 6.23433E+01 8.96398E+01 1.06190E+04 7.02153E+02 4.95840E+03 1.02859E+04 GRID ID 10005 ---- 0.00000E+00 FIBER 3 = MID 7.02545E+02 1.06186E+04 6.23433E+01 8.96398E+01 1.06190E+04 7.02153E+02 4.95840E+03 1.02859E+04 GRID ID 10006 ---- 0.00000E+00 FIBER 1 = Z1 3.63005E+03 2.15904E+04 5.65368E+01 8.98196E+01 2.15905E+04 3.62987E+03 8.98033E+03 2.00239E+04 GRID ID 10006 ---- 0.00000E+00 FIBER 2 = Z2 -4.29733E+02 8.78622E+03 -2.26735E+02 -8.85915E+01 8.79179E+03 -4.35308E+02 4.61355E+03 9.01733E+03 GRID ID 10006 ---- 0.00000E+00 FIBER 3 = MID -4.29733E+02 8.78622E+03 -2.26735E+02 -8.85915E+01 8.79179E+03 -4.35308E+02 4.61355E+03 9.01733E+03 GRID ID 10100 ---- 0.00000E+00 FIBER 1 = Z1 3.59921E+03 1.66773E+04 6.95123E+01 8.96955E+01 1.66777E+04 3.59884E+03 6.53943E+03 1.52012E+04 GRID ID 10100 ---- 0.00000E+00 FIBER 2 = Z2 3.94676E+02 3.11213E+04 1.39326E+02 8.97402E+01 3.11219E+04 3.94044E+02 1.53639E+04 3.09268E+04 GRID ID 10100 ---- 0.00000E+00 FIBER 3 = MID 3.94676E+02 3.11213E+04 1.39326E+02 8.97402E+01 3.11219E+04 3.94044E+02 1.53639E+04 3.09268E+04 GRID ID 10101 ---- 0.00000E+00 FIBER 1 = Z1 3.59921E+03 1.66773E+04 6.95123E+01 8.96955E+01 1.66777E+04 3.59884E+03 6.53943E+03 1.52012E+04 GRID ID 10101 ---- 0.00000E+00 FIBER 2 = Z2 2.17007E+03 2.54041E+04 1.15155E+03 8.71695E+01 2.54610E+04 2.11314E+03 1.16739E+04 2.44730E+04 GRID ID 10101 ---- 0.00000E+00 FIBER 3 = MID 2.17007E+03 2.54041E+04 1.15155E+03 8.71695E+01 2.54610E+04 2.11314E+03 1.16739E+04 2.44730E+04 GRID ID 10102 ---- 0.00000E+00 FIBER 1 = Z1 3.59921E+03 1.66773E+04 6.95123E+01 8.96955E+01 1.66777E+04 3.59884E+03 6.53943E+03 1.52012E+04 GRID ID 10102 ---- 0.00000E+00 FIBER 2 = Z2 3.42250E+03 2.00876E+04 1.98771E+03 8.32915E+01 2.03214E+04 3.18870E+03 8.56636E+03 1.89296E+04 GRID ID 10102 ---- 0.00000E+00 FIBER 3 = MID 3.42250E+03 2.00876E+04 1.98771E+03 8.32915E+01 2.03214E+04 3.18870E+03 8.56636E+03 1.89296E+04 DATA BLOCK CODE 1 DICTIONARY NAME:DISPR APPROACH:STATICS (DISPLACEMENT) PROJECT 1 PATH 1 SEID 0 SUBCASE 3 DESIGN CYCLE 0 P-ITERATION 0 GRID ID 120 ---- 0.00000E+00 1.27279E-03 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 GRID ID 121 ---- 0.00000E+00 0.00000E+00 1.27279E-03 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 GRID ID 10000 ---- 0.00000E+00 6.83135E-04 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 GRID ID 10001 ---- 0.00000E+00 6.66775E-04 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 GRID ID 10002 ---- 0.00000E+00 6.54388E-04 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 GRID ID 10003 ---- 0.00000E+00 6.55541E-04 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00

Page 216: MSC.Access User's Manual Version 2005.1

GRID ID 10004 ---- 0.00000E+00 7.17268E-04 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 GRID ID 10005 ---- 0.00000E+00 9.78437E-04 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 GRID ID 10006 ---- 0.00000E+00 1.30323E-03 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 GRID ID 10100 ---- 0.00000E+00 6.83047E-04 -2.47586E-07 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 DATA BLOCK CODE 4 DICTIONARY NAME:SPCFR APPROACH:STATICS (CONSTRAINT FORCES) PROJECT 1 PATH 1 SEID 0 SUBCASE 3 DESIGN CYCLE 0 P-ITERATION 0 GRID ID 120 ---- 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 GRID ID 121 ---- 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 GRID ID 10000 ---- 0.00000E+00 0.00000E+00 -9.96435E+01 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 GRID ID 10001 ---- 0.00000E+00 0.00000E+00 -2.31691E+02 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 GRID ID 10002 ---- 0.00000E+00 0.00000E+00 -3.31799E+02 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 GRID ID 10003 ---- 0.00000E+00 0.00000E+00 -6.13174E+02 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 GRID ID 10004 ---- 0.00000E+00 0.00000E+00 -1.23838E+03 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 GRID ID 10005 ---- 0.00000E+00 0.00000E+00 -1.64417E+03 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 GRID ID 10006 ---- 0.00000E+00 0.00000E+00 -8.41149E+02 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 GRID ID 10100 ---- 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 DATA BLOCK CODE 5 DICTIONARY NAME:LOADR APPROACH:STATICS (LOAD) PROJECT 1 PATH 1 SEID 0 SUBCASE 3 DESIGN CYCLE 0 P-ITERATION 0 GRID ID 120 ---- 0.00000E+00 5.00000E+03 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 GRID ID 121 ---- 0.00000E+00 0.00000E+00 5.00000E+03 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 GRID ID 10000 ---- 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 GRID ID 10001 ---- 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 GRID ID 10002 ---- 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 GRID ID 10003 ---- 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 GRID ID 10004 ---- 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 GRID ID 10005 ---- 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00

Page 217: MSC.Access User's Manual Version 2005.1

GRID ID 10006 ---- 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 GRID ID 10100 ---- 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 DATA BLOCK CODE 7 DICTIONARY NAME:SGSVR APPROACH:STATICS (GRID POINT STRESS SURFACE) PROJECT 1 PATH 1 SEID 0 SUBCASE 3 SURFACE ID 1 DESIGN CYCLE 0 P-ITERATION 0 GRID ID 10000 ---- 0.00000E+00 FIBER 1 = Z1 -3.31337E+02 2.07940E+04 -4.07436E+02 -8.88955E+01 2.08018E+04 -3.39193E+02 1.05705E+04 2.09735E+04 GRID ID 10000 ---- 0.00000E+00 FIBER 2 = Z2 -3.31337E+02 2.07940E+04 -4.07436E+02 -8.88955E+01 2.08018E+04 -3.39193E+02 1.05705E+04 2.09735E+04 GRID ID 10000 ---- 0.00000E+00 FIBER 3 = MID -3.31337E+02 2.07940E+04 -4.07436E+02 -8.88955E+01 2.08018E+04 -3.39193E+02 1.05705E+04 2.09735E+04 GRID ID 10001 ---- 0.00000E+00 FIBER 1 = Z1 1.51674E+03 1.89714E+04 -8.76149E+01 -8.97124E+01 1.89718E+04 1.51630E+03 8.72775E+03 1.82609E+04 GRID ID 10001 ---- 0.00000E+00 FIBER 2 = Z2 1.51674E+03 1.89714E+04 -8.76149E+01 -8.97124E+01 1.89718E+04 1.51630E+03 8.72775E+03 1.82609E+04 GRID ID 10001 ---- 0.00000E+00 FIBER 3 = MID 1.51674E+03 1.89714E+04 -8.76149E+01 -8.97124E+01 1.89718E+04 1.51630E+03 8.72775E+03 1.82609E+04 GRID ID 10002 ---- 0.00000E+00 FIBER 1 = Z1 1.51674E+03 1.89714E+04 -8.76149E+01 -8.97124E+01 1.89718E+04 1.51630E+03 8.72775E+03 1.82609E+04 GRID ID 10002 ---- 0.00000E+00 FIBER 2 = Z2 3.54880E+03 1.69713E+04 -7.04425E+01 -8.96993E+01 1.69717E+04 3.54843E+03 6.71163E+03 1.55051E+04 GRID ID 10002 ---- 0.00000E+00 FIBER 3 = MID 3.54880E+03 1.69713E+04 -7.04425E+01 -8.96993E+01 1.69717E+04 3.54843E+03 6.71163E+03 1.55051E+04 GRID ID 10003 ---- 0.00000E+00 FIBER 1 = Z1 1.51674E+03 1.89714E+04 -8.76149E+01 -8.97124E+01 1.89718E+04 1.51630E+03 8.72775E+03 1.82609E+04 GRID ID 10003 ---- 0.00000E+00 FIBER 2 = Z2 5.80190E+03 1.47928E+04 -4.53631E+01 -8.97109E+01 1.47931E+04 5.80167E+03 4.49570E+03 1.29101E+04 GRID ID 10003 ---- 0.00000E+00 FIBER 3 = MID 5.80190E+03 1.47928E+04 -4.53631E+01 -8.97109E+01 1.47931E+04 5.80167E+03 4.49570E+03 1.29101E+04 GRID ID 10004 ---- 0.00000E+00 FIBER 1 = Z1 3.54880E+03 1.69713E+04 -7.04425E+01 -8.96993E+01 1.69717E+04 3.54843E+03 6.71163E+03 1.55051E+04 GRID ID 10004 ---- 0.00000E+00 FIBER 2 = Z2 8.02071E+03 1.27038E+04 -2.39966E+01 -8.97064E+01 1.27040E+04 8.02059E+03 2.34169E+03 1.11278E+04 GRID ID 10004 ---- 0.00000E+00 FIBER 3 = MID 8.02071E+03 1.27038E+04 -2.39966E+01 -8.97064E+01 1.27040E+04 8.02059E+03 2.34169E+03 1.11278E+04 GRID ID 10005 ---- 0.00000E+00 FIBER 1 = Z1 3.54880E+03 1.69713E+04 -7.04425E+01 -8.96993E+01 1.69717E+04 3.54843E+03 6.71163E+03 1.55051E+04 GRID ID 10005 ---- 0.00000E+00 FIBER 2 = Z2 9.44296E+03 1.15131E+04 -1.23041E+01 -8.96595E+01 1.15132E+04 9.44289E+03 1.03514E+03 1.06303E+04 GRID ID 10005 ---- 0.00000E+00 FIBER 3 = MID 9.44296E+03 1.15131E+04 -1.23041E+01 -8.96595E+01 1.15132E+04 9.44289E+03 1.03514E+03 1.06303E+04 GRID ID 10006 ---- 0.00000E+00 FIBER 1 = Z1 3.54880E+03 1.69713E+04 -7.04425E+01 -8.96993E+01 1.69717E+04 3.54843E+03 6.71163E+03 1.55051E+04 GRID ID 10006 ---- 0.00000E+00 FIBER 2 = Z2 1.01795E+04 1.10101E+04 1.50287E+02 8.00536E+01 1.10365E+04 1.01531E+04 4.41683E+02 1.06224E+04 GRID ID 10006 ---- 0.00000E+00 FIBER 3 = MID 1.01795E+04 1.10101E+04 1.50287E+02 8.00536E+01 1.10365E+04 1.01531E+04 4.41683E+02 1.06224E+04 GRID ID 10100 ---- 0.00000E+00 FIBER 1 = Z1

Page 218: MSC.Access User's Manual Version 2005.1

5.80190E+03 1.47928E+04 -4.53631E+01 -8.97109E+01 1.47931E+04 5.80167E+03 4.49570E+03 1.29101E+04 GRID ID 10100 ---- 0.00000E+00 FIBER 2 = Z2 7.75398E+02 1.96996E+04 -3.44519E+03 -7.99966E+01 2.03073E+04 1.67710E+02 1.00698E+04 2.02240E+04 GRID ID 10100 ---- 0.00000E+00 FIBER 3 = MID 7.75398E+02 1.96996E+04 -3.44519E+03 -7.99966E+01 2.03073E+04 1.67710E+02 1.00698E+04 2.02240E+04 GRID ID 10101 ---- 0.00000E+00 FIBER 1 = Z1 5.80190E+03 1.47928E+04 -4.53631E+01 -8.97109E+01 1.47931E+04 5.80167E+03 4.49570E+03 1.29101E+04 GRID ID 10101 ---- 0.00000E+00 FIBER 2 = Z2 2.51402E+03 1.79859E+04 -2.82284E+03 -7.99765E+01 1.84848E+04 2.01508E+03 8.23488E+03 1.75642E+04 GRID ID 10101 ---- 0.00000E+00 FIBER 3 = MID 2.51402E+03 1.79859E+04 -2.82284E+03 -7.99765E+01 1.84848E+04 2.01508E+03 8.23488E+03 1.75642E+04 GRID ID 10102 ---- 0.00000E+00 FIBER 1 = Z1 5.80190E+03 1.47928E+04 -4.53631E+01 -8.97109E+01 1.47931E+04 5.80167E+03 4.49570E+03 1.29101E+04 GRID ID 10102 ---- 0.00000E+00 FIBER 2 = Z2 4.31645E+03 1.62127E+04 -2.17928E+03 -7.99391E+01 1.65994E+04 3.92979E+03 6.33479E+03 1.50250E+04 GRID ID 10102 ---- 0.00000E+00 FIBER 3 = MID 4.31645E+03 1.62127E+04 -2.17928E+03 -7.99391E+01 1.65994E+04 3.92979E+03 6.33479E+03 1.50250E+04 DATA BLOCK CODE 7 DICTIONARY NAME:SGSVR APPROACH:STATICS (GRID POINT STRESS SURFACE) PROJECT 1 PATH 1 SEID 0 SUBCASE 3 SURFACE ID 7 DESIGN CYCLE 0 P-ITERATION 0 GRID ID 10000 ---- 0.00000E+00 FIBER 1 = Z1 1.21558E+01 2.04505E+04 2.63108E+00 8.99926E+01 2.04505E+04 1.21553E+01 1.02192E+04 2.04444E+04 GRID ID 10000 ---- 0.00000E+00 FIBER 2 = Z2 1.21558E+01 2.04505E+04 2.63108E+00 8.99926E+01 2.04505E+04 1.21553E+01 1.02192E+04 2.04444E+04 GRID ID 10000 ---- 0.00000E+00 FIBER 3 = MID 1.21558E+01 2.04505E+04 2.63108E+00 8.99926E+01 2.04505E+04 1.21553E+01 1.02192E+04 2.04444E+04 GRID ID 10001 ---- 0.00000E+00 FIBER 1 = Z1 1.88789E+03 1.86002E+04 -1.11426E+00 -8.99962E+01 1.86002E+04 1.88789E+03 8.35616E+03 1.77318E+04 GRID ID 10001 ---- 0.00000E+00 FIBER 2 = Z2 1.88789E+03 1.86002E+04 -1.11426E+00 -8.99962E+01 1.86002E+04 1.88789E+03 8.35616E+03 1.77318E+04 GRID ID 10001 ---- 0.00000E+00 FIBER 3 = MID 1.88789E+03 1.86002E+04 -1.11426E+00 -8.99962E+01 1.86002E+04 1.88789E+03 8.35616E+03 1.77318E+04 GRID ID 10002 ---- 0.00000E+00 FIBER 1 = Z1 1.88789E+03 1.86002E+04 -1.11426E+00 -8.99962E+01 1.86002E+04 1.88789E+03 8.35616E+03 1.77318E+04 GRID ID 10002 ---- 0.00000E+00 FIBER 2 = Z2 3.83558E+03 1.66845E+04 -4.35792E+00 -8.99806E+01 1.66845E+04 3.83558E+03 6.42448E+03 1.51357E+04 GRID ID 10002 ---- 0.00000E+00 FIBER 3 = MID 3.83558E+03 1.66845E+04 -4.35792E+00 -8.99806E+01 1.66845E+04 3.83558E+03 6.42448E+03 1.51357E+04 GRID ID 10003 ---- 0.00000E+00 FIBER 1 = Z1 1.88789E+03 1.86002E+04 -1.11426E+00 -8.99962E+01 1.86002E+04 1.88789E+03 8.35616E+03 1.77318E+04 GRID ID 10003 ---- 0.00000E+00 FIBER 2 = Z2 5.99818E+03 1.45966E+04 -2.12169E+00 -8.99859E+01 1.45966E+04 5.99818E+03 4.29919E+03 1.27077E+04 GRID ID 10003 ---- 0.00000E+00 FIBER 3 = MID 5.99818E+03 1.45966E+04 -2.12169E+00 -8.99859E+01 1.45966E+04 5.99818E+03 4.29919E+03 1.27077E+04 GRID ID 10004 ---- 0.00000E+00 FIBER 1 = Z1 3.83558E+03 1.66845E+04 -4.35792E+00 -8.99806E+01 1.66845E+04 3.83558E+03 6.42448E+03 1.51357E+04 GRID ID 10004 ---- 0.00000E+00 FIBER 2 = Z2 8.12886E+03 1.25957E+04 -2.69711E+00 -8.99654E+01 1.25957E+04 8.12886E+03 2.23342E+03 1.10608E+04 GRID ID 10004 ---- 0.00000E+00 FIBER 3 = MID 8.12886E+03 1.25957E+04 -2.69711E+00 -8.99654E+01 1.25957E+04 8.12886E+03 2.23342E+03 1.10608E+04

Page 219: MSC.Access User's Manual Version 2005.1

GRID ID 10005 ---- 0.00000E+00 FIBER 1 = Z1 3.83558E+03 1.66845E+04 -4.35792E+00 -8.99806E+01 1.66845E+04 3.83558E+03 6.42448E+03 1.51357E+04 GRID ID 10005 ---- 0.00000E+00 FIBER 2 = Z2 9.48544E+03 1.14706E+04 5.51174E-01 8.99841E+01 1.14706E+04 9.48544E+03 9.92595E+02 1.06181E+04 GRID ID 10005 ---- 0.00000E+00 FIBER 3 = MID 9.48544E+03 1.14706E+04 5.51174E-01 8.99841E+01 1.14706E+04 9.48544E+03 9.92595E+02 1.06181E+04 GRID ID 10006 ---- 0.00000E+00 FIBER 1 = Z1 3.83558E+03 1.66845E+04 -4.35792E+00 -8.99806E+01 1.66845E+04 3.83558E+03 6.42448E+03 1.51357E+04 GRID ID 10006 ---- 0.00000E+00 FIBER 2 = Z2 1.02404E+04 1.09492E+04 4.23056E+01 8.65965E+01 1.09517E+04 1.02379E+04 3.56931E+02 1.06128E+04 GRID ID 10006 ---- 0.00000E+00 FIBER 3 = MID 1.02404E+04 1.09492E+04 4.23056E+01 8.65965E+01 1.09517E+04 1.02379E+04 3.56931E+02 1.06128E+04 GRID ID 10100 ---- 0.00000E+00 FIBER 1 = Z1 5.99818E+03 1.45966E+04 -2.12169E+00 -8.99859E+01 1.45966E+04 5.99818E+03 4.29919E+03 1.27077E+04 GRID ID 10100 ---- 0.00000E+00 FIBER 2 = Z2 1.22420E+01 2.04628E+04 -6.72523E-01 -8.99981E+01 2.04628E+04 1.22422E+01 1.02253E+04 2.04567E+04 GRID ID 10100 ---- 0.00000E+00 FIBER 3 = MID 1.22420E+01 2.04628E+04 -6.72523E-01 -8.99981E+01 2.04628E+04 1.22422E+01 1.02253E+04 2.04567E+04 GRID ID 10101 ---- 0.00000E+00 FIBER 1 = Z1 5.99818E+03 1.45966E+04 -2.12169E+00 -8.99859E+01 1.45966E+04 5.99818E+03 4.29919E+03 1.27077E+04 GRID ID 10101 ---- 0.00000E+00 FIBER 2 = Z2 1.88759E+03 1.86123E+04 -6.30875E+00 -8.99784E+01 1.86123E+04 1.88759E+03 8.36237E+03 1.77440E+04 GRID ID 10101 ---- 0.00000E+00 FIBER 3 = MID 1.88759E+03 1.86123E+04 -6.30875E+00 -8.99784E+01 1.86123E+04 1.88759E+03 8.36237E+03 1.77440E+04 GRID ID 10102 ---- 0.00000E+00 FIBER 1 = Z1 5.99818E+03 1.45966E+04 -2.12169E+00 -8.99859E+01 1.45966E+04 5.99818E+03 4.29919E+03 1.27077E+04 GRID ID 10102 ---- 0.00000E+00 FIBER 2 = Z2 3.83133E+03 1.66978E+04 -1.29028E+01 -8.99425E+01 1.66978E+04 3.83132E+03 6.43326E+03 1.51500E+04 GRID ID 10102 ---- 0.00000E+00 FIBER 3 = MID 3.83133E+03 1.66978E+04 -1.29028E+01 -8.99425E+01 1.66978E+04 3.83132E+03 6.43326E+03 1.51500E+04 DATA BLOCK CODE 1 DICT NAME:SQD4R ELEM TYPE 1 (STRESS-QUAD4 ) APPROACH:STATICS PROJECT 1 PATH 1 SEID 0 SUBCASE 1 DESIGN CYCLE 0 P-ITERATION 0 ELEM ID 1 ---- 0.00000E+00 -5.00000E-02 -3.90633E+02 -9.89847E+03 -3.34236E+02 -2.01085E+00 -3.78898E+02 -9.91020E+03 9.72629E+03 5.00000E-02 -3.90633E+02 -9.89847E+03 -3.34236E+02 -2.01085E+00 -3.78898E+02 -9.91020E+03 9.72629E+03 ELEM ID 2 ---- 0.00000E+00 -5.00000E-02 -3.40616E+02 -5.74298E+03 -8.58873E+02 -8.81933E+00 -2.07359E+02 -5.87624E+03 5.77536E+03 5.00000E-02 -3.40616E+02 -5.74298E+03 -8.58873E+02 -8.81933E+00 -2.07359E+02 -5.87624E+03 5.77536E+03 ELEM ID 3 ---- 0.00000E+00 -5.00000E-02 9.54975E+02 -2.55262E+03 -1.20264E+03 -1.72199E+01 1.32771E+03 -2.92535E+03 3.76889E+03 5.00000E-02 9.54975E+02 -2.55262E+03 -1.20264E+03 -1.72199E+01 1.32771E+03 -2.92535E+03 3.76889E+03 ELEM ID 4 ---- 0.00000E+00 -5.00000E-02 3.92762E+03 -5.30515E+02 -1.30795E+03 -1.52016E+01 4.28303E+03 -8.85918E+02 4.78786E+03 5.00000E-02 3.92762E+03 -5.30515E+02 -1.30795E+03 -1.52016E+01 4.28303E+03 -8.85918E+02 4.78786E+03 ELEM ID 5 ---- 0.00000E+00 -5.00000E-02 7.59926E+03 4.14896E+02 -1.19995E+03 -9.23584E+00 7.79439E+03 2.19775E+02 7.68685E+03

Page 220: MSC.Access User's Manual Version 2005.1

5.00000E-02 7.59926E+03 4.14896E+02 -1.19995E+03 -9.23584E+00 7.79439E+03 2.19775E+02 7.68685E+03 ELEM ID 6 ---- 0.00000E+00 -5.00000E-02 9.48650E+03 1.72584E+03 -8.69122E+02 -6.31242E+00 9.58264E+03 1.62970E+03 8.88066E+03 5.00000E-02 9.48650E+03 1.72584E+03 -8.69122E+02 -6.31242E+00 9.58264E+03 1.62970E+03 8.88066E+03 ELEM ID 7 ---- 0.00000E+00 -5.00000E-02 -2.74285E+02 -7.55177E+03 -9.63625E+02 -7.41639E+00 -1.48851E+02 -7.67720E+03 7.60387E+03 5.00000E-02 -2.74285E+02 -7.55177E+03 -9.63625E+02 -7.41639E+00 -1.48851E+02 -7.67720E+03 7.60387E+03 ELEM ID 8 ---- 0.00000E+00 -5.00000E-02 -1.24403E+02 -3.97377E+03 -2.47472E+03 -2.60632E+01 1.08598E+03 -5.18415E+03 5.80385E+03 5.00000E-02 -1.24403E+02 -3.97377E+03 -2.47472E+03 -2.60632E+01 1.08598E+03 -5.18415E+03 5.80385E+03 ELEM ID 9 ---- 0.00000E+00 -5.00000E-02 1.14535E+03 -1.28974E+03 -3.46623E+03 -3.53229E+01 3.60166E+03 -3.74605E+03 6.36371E+03 5.00000E-02 1.14535E+03 -1.28974E+03 -3.46623E+03 -3.53229E+01 3.60166E+03 -3.74605E+03 6.36371E+03 ELEM ID 10 ---- 0.00000E+00 -5.00000E-02 3.90654E+03 3.63394E+02 -3.77900E+03 -3.24416E+01 6.30861E+03 -2.03868E+03 7.53765E+03 5.00000E-02 3.90654E+03 3.63394E+02 -3.77900E+03 -3.24416E+01 6.30861E+03 -2.03868E+03 7.53765E+03 DATA BLOCK CODE 1 DICT NAME:STR3R ELEM TYPE 4 (STRESS-TRIA3 ) APPROACH:STATICS PROJECT 1 PATH 1 SEID 0 SUBCASE 1 DESIGN CYCLE 0 P-ITERATION 0 ELEM ID 50 ---- 0.00000E+00 -5.00000E-02 3.69424E+01 1.00370E+04 3.69424E+01 8.97883E+01 1.00371E+04 3.68060E+01 1.00187E+04 5.00000E-02 3.69424E+01 1.00370E+04 3.69424E+01 8.97883E+01 1.00371E+04 3.68060E+01 1.00187E+04 DATA BLOCK CODE 1 DICT NAME:SQD4R ELEM TYPE 1 (STRESS-QUAD4 ) APPROACH:STATICS PROJECT 1 PATH 1 SEID 0 SUBCASE 2 DESIGN CYCLE 0 P-ITERATION 0 ELEM ID 1 ---- 0.00000E+00 -5.00000E-02 1.34051E+03 2.94299E+04 3.32397E+02 8.93221E+01 2.94338E+04 1.33657E+03 2.87888E+04 5.00000E-02 1.34051E+03 2.94299E+04 3.32397E+02 8.93221E+01 2.94338E+04 1.33657E+03 2.87888E+04 ELEM ID 2 ---- 0.00000E+00 -5.00000E-02 3.16622E+03 2.34241E+04 8.53288E+02 8.75923E+01 2.34600E+04 3.13034E+03 2.20620E+04 5.00000E-02 3.16622E+03 2.34241E+04 8.53288E+02 8.75923E+01 2.34600E+04 3.13034E+03 2.20620E+04 ELEM ID 3 ---- 0.00000E+00 -5.00000E-02 3.88633E+03 1.82539E+04 1.19096E+03 8.52934E+01 1.83519E+04 3.78828E+03 1.67816E+04 5.00000E-02 3.88633E+03 1.82539E+04 1.19096E+03 8.52934E+01 1.83519E+04 3.78828E+03 1.67816E+04 ELEM ID 4 ---- 0.00000E+00 -5.00000E-02 3.21360E+03 1.40386E+04 1.29515E+03 8.32714E+01 1.41914E+04 3.06079E+03 1.29355E+04 5.00000E-02 3.21360E+03 1.40386E+04 1.29515E+03 8.32714E+01 1.41914E+04 3.06079E+03 1.29355E+04 ELEM ID 5 ---- 0.00000E+00 -5.00000E-02 1.49319E+03 1.12852E+04 1.17612E+03 8.32462E+01 1.14244E+04 1.35391E+03 1.08112E+04 5.00000E-02 1.49319E+03 1.12852E+04 1.17612E+03 8.32462E+01 1.14244E+04 1.35391E+03 1.08112E+04

Page 221: MSC.Access User's Manual Version 2005.1

ELEM ID 6 ---- 0.00000E+00 -5.00000E-02 3.60914E+02 9.45280E+03 8.87037E+02 8.44794E+01 9.53853E+03 2.75180E+02 9.40396E+03 5.00000E-02 3.60914E+02 9.45280E+03 8.87037E+02 8.44794E+01 9.53853E+03 2.75180E+02 9.40396E+03 ELEM ID 7 ---- 0.00000E+00 -5.00000E-02 1.22424E+03 2.70955E+04 9.58482E+02 8.78812E+01 2.71309E+04 1.18878E+03 2.65565E+04 5.00000E-02 1.22424E+03 2.70955E+04 9.58482E+02 8.78812E+01 2.71309E+04 1.18878E+03 2.65565E+04 ELEM ID 8 ---- 0.00000E+00 -5.00000E-02 2.94933E+03 2.16669E+04 2.46205E+03 8.26305E+01 2.19853E+04 2.63089E+03 2.07950E+04 5.00000E-02 2.94933E+03 2.16669E+04 2.46205E+03 8.26305E+01 2.19853E+04 2.63089E+03 2.07950E+04 ELEM ID 9 ---- 0.00000E+00 -5.00000E-02 3.68814E+03 1.70056E+04 3.44455E+03 7.63238E+01 1.78438E+04 2.84996E+03 1.66033E+04 5.00000E-02 3.68814E+03 1.70056E+04 3.44455E+03 7.63238E+01 1.78438E+04 2.84996E+03 1.66033E+04 ELEM ID 10 ---- 0.00000E+00 -5.00000E-02 3.21480E+03 1.31624E+04 3.73574E+03 7.15453E+01 1.44091E+04 1.96812E+03 1.35328E+04 5.00000E-02 3.21480E+03 1.31624E+04 3.73574E+03 7.15453E+01 1.44091E+04 1.96812E+03 1.35328E+04 DATA BLOCK CODE 1 DICT NAME:STR3R ELEM TYPE 4 (STRESS-TRIA3 ) APPROACH:STATICS PROJECT 1 PATH 1 SEID 0 SUBCASE 2 DESIGN CYCLE 0 P-ITERATION 0 ELEM ID 50 ---- 0.00000E+00 -5.00000E-02 1.00370E+04 3.69424E+01 3.69424E+01 2.11661E-01 1.00371E+04 3.68060E+01 1.00187E+04 5.00000E-02 1.00370E+04 3.69424E+01 3.69424E+01 2.11661E-01 1.00371E+04 3.68060E+01 1.00187E+04 DATA BLOCK CODE 1 DICT NAME:SQD4R ELEM TYPE 1 (STRESS-QUAD4 ) APPROACH:STATICS PROJECT 1 PATH 1 SEID 0 SUBCASE 3 DESIGN CYCLE 0 P-ITERATION 0 ELEM ID 1 ---- 0.00000E+00 -5.00000E-02 9.49873E+02 1.95314E+04 -1.83884E+00 -8.99943E+01 1.95314E+04 9.49873E+02 1.90742E+04 5.00000E-02 9.49873E+02 1.95314E+04 -1.83884E+00 -8.99943E+01 1.95314E+04 9.49873E+02 1.90742E+04 ELEM ID 2 ---- 0.00000E+00 -5.00000E-02 2.82560E+03 1.76811E+04 -5.58418E+00 -8.99785E+01 1.76811E+04 2.82560E+03 1.64513E+04 5.00000E-02 2.82560E+03 1.76811E+04 -5.58418E+00 -8.99785E+01 1.76811E+04 2.82560E+03 1.64513E+04 ELEM ID 3 ---- 0.00000E+00 -5.00000E-02 4.84131E+03 1.57012E+04 -1.16765E+01 -8.99384E+01 1.57012E+04 4.84129E+03 1.39267E+04 5.00000E-02 4.84131E+03 1.57012E+04 -1.16765E+01 -8.99384E+01 1.57012E+04 4.84129E+03 1.39267E+04 ELEM ID 4 ---- 0.00000E+00 -5.00000E-02 7.14122E+03 1.35081E+04 -1.28013E+01 -8.98848E+01 1.35081E+04 7.14119E+03 1.17048E+04 5.00000E-02 7.14122E+03 1.35081E+04 -1.28013E+01 -8.98848E+01 1.35081E+04 7.14119E+03 1.17048E+04 ELEM ID 5 ---- 0.00000E+00 -5.00000E-02 9.09246E+03 1.17000E+04 -2.38393E+01 -8.94762E+01 1.17003E+04 9.09224E+03 1.06388E+04 5.00000E-02 9.09246E+03 1.17000E+04 -2.38393E+01 -8.94762E+01 1.17003E+04 9.09224E+03 1.06388E+04 ELEM ID 6 ---- 0.00000E+00

Page 222: MSC.Access User's Manual Version 2005.1

-5.00000E-02 9.84741E+03 1.11786E+04 1.79151E+01 8.92291E+01 1.11789E+04 9.84717E+03 1.05761E+04 5.00000E-02 9.84741E+03 1.11786E+04 1.79151E+01 8.92291E+01 1.11789E+04 9.84717E+03 1.05761E+04 ELEM ID 7 ---- 0.00000E+00 -5.00000E-02 9.49959E+02 1.95437E+04 -5.14244E+00 -8.99842E+01 1.95437E+04 9.49958E+02 1.90865E+04 5.00000E-02 9.49959E+02 1.95437E+04 -5.14244E+00 -8.99842E+01 1.95437E+04 9.49958E+02 1.90865E+04 ELEM ID 8 ---- 0.00000E+00 -5.00000E-02 2.82492E+03 1.76931E+04 -1.26696E+01 -8.99512E+01 1.76931E+04 2.82491E+03 1.64634E+04 5.00000E-02 2.82492E+03 1.76931E+04 -1.26696E+01 -8.99512E+01 1.76931E+04 2.82491E+03 1.64634E+04 ELEM ID 9 ---- 0.00000E+00 -5.00000E-02 4.83349E+03 1.57159E+04 -2.16809E+01 -8.98858E+01 1.57159E+04 4.83345E+03 1.39424E+04 5.00000E-02 4.83349E+03 1.57159E+04 -2.16809E+01 -8.98858E+01 1.57159E+04 4.83345E+03 1.39424E+04 ELEM ID 10 ---- 0.00000E+00 -5.00000E-02 7.12134E+03 1.35258E+04 -4.32658E+01 -8.96130E+01 1.35261E+04 7.12105E+03 1.17194E+04 5.00000E-02 7.12134E+03 1.35258E+04 -4.32658E+01 -8.96130E+01 1.35261E+04 7.12105E+03 1.17194E+04 DATA BLOCK CODE 1 DICT NAME:STR3R ELEM TYPE 4 (STRESS-TRIA3 ) APPROACH:STATICS PROJECT 1 PATH 1 SEID 0 SUBCASE 3 DESIGN CYCLE 0 P-ITERATION 0 ELEM ID 50 ---- 0.00000E+00 -5.00000E-02 1.00739E+04 1.00739E+04 7.38849E+01 4.50000E+01 1.01478E+04 1.00000E+04 1.00747E+04 5.00000E-02 1.00739E+04 1.00739E+04 7.38849E+01 4.50000E+01 1.01478E+04 1.00000E+04 1.00747E+04