You are on page 1of 222

MSC.

Access User's Manual


Version 2005.1

Main Index

Corporate
MSC.Software Corporation 2 MacArthur Place Santa Ana, CA 92707 Telephone: (800) 345-2078 FAX: (714) 784-4056

Europe
MSC.Software GmbH Am Moosfeld 13 81829 Munich GERMANY Telephone: (49) (89) 43 19 87 0 Fax: (49) (89) 43 61 71 6

Asia Pacific
MSC.Software Japan Ltd. Shinjuku First West 8F 23-7 Nishi Shinjuku 1-Chome, Shinjuku-Ku Tokyo 160-0023, JAPAN Telephone: 0120-924-832 (toll free, Japan only) Mobile phone: 03-6911-1222 Fax: (81) (3)-6911-1201

Worldwide Web
www.mscsoftware.com

Disclaimer
MSC.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, 2011 NA:2012:Z:Z:Z:DC-REL

Main Index

C H A P T E R 1 ............................................................................................................. 7 MSC ACCESS ........................................................................................................................ 7 1.1 Definitions and Acronyms ........................................................................................ 8 1.2 Compatibility with Previous Versions of MSC.Access .......................................... 10 1.3 DBC Module Differences ....................................................................................... 10 1.4 Data base Input/Output (DBIO) Differences .......................................................... 11 1.5 Timeline for MSC.Access and MSC.Nastran Releases .......................................... 12 1.6 Interrelationships of MSC.Access with Other MSC Products ................................ 14 1.6.1 MSC.Nastran Version 66 and Subsequent Versions............................................... 15 C H A P T E R 2 ................................................................................................................. 17 DATA BASE CONVERTER MODULE (DBC) ............................................................. 17 2.1 DBC Functions........................................................................................................ 17 2.1.1 DBC Default Values ............................................................................................... 17 2.1.1.1 MSC.Patran and MSC/XL Data Base Type ............................................................ 18 2.1.1.2 No DBCDIAG Output ............................................................................................ 18 2.1.1.3 Updating of Pre-Existing Data Blocks .................................................................... 18 2.1.1.4 Single Data Base ..................................................................................................... 18 2.1.2 Overriding DBC Default Values ............................................................................. 19 2.1.2.1 MSC/GRASP Data base Type ................................................................................ 19 2.1.2.2 DBCDIAG Output .................................................................................................. 19 2.1.2.3 No Overwrites on Pre-Existing Data Blocks .......................................................... 20 2.1.2.4 Multiple Data Bases ................................................................................................ 20 2.1.2.5 Data Bases with Increased Block Size .................................................................... 21 C H A P T E R 3 ....................................................................................................................... 23 CREATION OF MSC.Access DATA BASES .................................................................... 23 3.1 Conversion Using MSC.Nastran Version 66 and Subsequent Versions .................. 23 3.2 Conversion Using Pre-MSC.Nastran Version 66 .................................................... 24 C H A P T E R 4 ....................................................................................................................... 25 CONTENTS OF MSC.ACCESS DATA BASE................................................................... 25 4.1 Data Base Dictionary Entry Description .................................................................. 26 4.1.1 Object Name Field ................................................................................................... 27 4.1.2 Project Attribute Field.............................................................................................. 29 4.1.3 Superelement/Part Attribute Field .......................................................................... 29 4.1.4 Path Attribute Field .................................................................................................. 30 4.1.5 SUBCASE Attribute Field ....................................................................................... 31 4.1.6 Set Attribute Field .................................................................................................... 31 4.1.7 Approach Attribute Field ......................................................................................... 32 4.1.8 Design Cycle Attribute Field ................................................................................... 33 4.1.9 P-element Iteration Attribute Field .......................................................................... 33 4.1.10 Undefined Fields ...................................................................................................... 34 4.1.11 Determination of Object Attribute Usage ................................................................ 34 4.2 Data Block Description ............................................................................................ 34 4.2.1 Keyed Entries ........................................................................................................... 35 4.2.2 Sequential Object ..................................................................................................... 35

Main Index

C H A P T E R 5 ....................................................................................................................... 37 ACCESSING THE DATA BASE ............................................................................................ 37 5.1 General Access Data Base Processing ......................................................................... 37 5.1.1 Data Base Validation ................................................................................................... 38 5.1.2 Access Block (Page) Allocation .................................................................................. 38 5.1.3 OPEN/CLOSE of an Access Data Base ....................................................................... 41 5.1.3.1 Opening the Access Data Base .................................................................................... 41 5.1.3.2 Closing the Access Data Base ...................................................................................... 41 5.1.4 Access Data Base Dictionary Inquiry .......................................................................... 41 5.1.4.1 DICENT ....................................................................................................................... 42 5.1.4.2 DICPRT ....................................................................................................................... 43 5.1.4.3 DICRDR ...................................................................................................................... 43 5.1.5 Allocating/Freeing Access Objects .............................................................................. 44 5.1.5.1 Opening Access Objects .............................................................................................. 44 5.1.5.2 Closing Access Objects................................................................................................ 44 5.1.6 Working Access Object Entries ................................................................................... 44 5.1.6.1 Object Entry Read Procedures ..................................................................................... 44 5.1.6.2 Object Entry Write Procedures .................................................................................... 46 5.1.6.3 Object Entry Deletion .................................................................................................. 46 5.1.7 Access Purge Object .................................................................................................... 46 5.2 Access Data Base Usage Hints .................................................................................... 46 5.2.1 Memory Allocation ...................................................................................................... 46 5.2.2 MSC.Nastran Type Definition ..................................................................................... 48 5.2.3 Element Data Recovery Naming Conventions ............................................................ 48 5.2.4 External versus Internal Object Access Keys .............................................................. 49 5.2.5 Access Object Capacity Limit Derivations .................................................................. 50 5.2.6 Special Key Usage ....................................................................................................... 52 5.2.7 Special Number Usage ................................................................................................. 52 5.3.2 The CBAR, CBEAM, and CGAP Objects................................................................... 53 C H A P T E R 6 ................................................................................................................ 54 INTERFACING TO THE DATA DEFINITION LANGUAGE (DDL) ................................... 54 6.1 The Data Definition Language ..................................................................................... 54 6.1.1 The MSC.Access Data Definition Language ............................................................... 54 6.2 Starting the Data Definition Language Interface ......................................................... 55 6.2.1 Labeled Commons Populated by Function MSCLDD................................................. 56 6.2.2 Usage of Word Index Functions .................................................................................. 57 6.3 Version Matching DDL to Analysis Data Base ........................................................... 57 6.4 Using Attribute Definition Functions .......................................................................... 59 6.5 DDL Control Entry Description ................................................................................... 59 6.5.1 Working with the DDL control entry ........................................................................... 60 6.5.1 Working with an Object Entry DDL ............................................................................ 60 6.5 Working with the DDL and an Object/Entry ............................................................... 62 C H A P T E R 7 ................................................................................................................ 64 MSC.ACCESS UTILITIES AND DEMONSTRATION PROGRAMS .................................. 64 7.1 The MSC.Access Sampler Demonstration Program (SMPLR) ................................... 64

Main Index

7.2 The Demonstration Program DEMO1 ......................................................................... 65 7.3 The Demonstration Program DEMO2 ......................................................................... 65 7.4 The Data Definition Language Program DDLADD .................................................... 66 7.5 The Data Definition Language Demonstration Program DDLPRT ............................. 66 7.6 The Data Definition Language Demonstration Program DDLQRY ............................ 67 7.7 Utility Program QAPRT .............................................................................................. 68 7.8 Utility Program RECEIVE........................................................................................... 69 7.9 Utility Program TRANS .............................................................................................. 70 C H A P T E R 8 ......................................................................................................... 75 MSC.Access PROTOTYPE PROGRAM ................................................................................. 75 8.1 Flow Diagram of the MSC.Access Prototype Program SMPLR ................................. 75 8.2 Subroutine Components of the SMPLR Program ........................................................ 81 8.3 Common Blocks used by the SMPLR Program ........................................................... 82 C H A P T E R 9 ......................................................................................................... 83 ADDITIONAL MSC.ACCESS EXAMPLE PROGRAMS (DEMO1 and DEMO2)............... 83 9.1 General Description of the Two Demo Programs ........................................................ 83 9.2 DEMO1 Example Program .......................................................................................... 85 9.2.1 Driver Program for Example 1 (DEMO1) ................................................................... 86 9.2.2 Data base Inquiry for Example 1 (DATINT) ............................................................... 88 9.2.3 Grid Point Data in Example 1 (PRTGRD) .................................................................. 92 9.2.4 Element Connectivity in Example 1 (PRTCON) ......................................................... 94 9.2.5 Displacement Data in Example 1 (PRTDIS) ............................................................... 95 9.2.6 Grid Point Stress Data in Example 1 (PRTGPS) ......................................................... 97 9.3 DEMO2 Example Program .......................................................................................... 99 9.3.1 Driver Program for Example 2 (DEMO2) ................................................................. 100 9.3.2 Data base Inquiry and Grid Point Data for Example 2 (PRTGRD) ........................... 102 9.3.3 Data base Inquiry and Connectivity Data for Example 2 (PRTCON) ....................... 104 9.3.4 Data base Inquiry and Displacement Data for Example 2 (PRTDIS) ........................ 106 9.3.5 Data base Inquiry and Grid Point Stress Data for Example 2 (PRTGPS) ................. 108 C H A P T E R 10 ....................................................................................................... 111 USAGE OF DATA DEFINITION LANGUAGE INTERFACE ............................................ 111 10.1 High Level Interactive Driver .................................................................................... 111 10.2 Support Subroutine to Process DDL Schema ............................................................ 119 C H A P T E R 11 ....................................................................................................... 127 INSTALLATION .................................................................................................................... 127 11.1 Building DDLPRT ..................................................................................................... 127 11.2 Building DDLQRY .................................................................................................... 128 11.3 Building DEMO1 ....................................................................................................... 128 11.4 Building DEMO2 ....................................................................................................... 128 11.5 Building SMPLR ....................................................................................................... 129 APPENDIX A ............................................................................................................................ 130 MSC.Access DBIO SUBROUTINE DESCRIPTIONS .......................................................... 130 DBIO Subroutine Descriptions ............................................................................................... 130 Subroutine Name: CLOSGR.................................................................................................. 130 Subroutine Name: DBCLOS .................................................................................................. 131

Main Index

Subroutine Name: DBOPEN ................................................................................................. 132 Subroutine Name: DBFLOC .................................................................................................. 134 Subroutine Name: DBVALD ................................................................................................. 135 Subroutine Name: DELREC .................................................................................................. 136 Subroutine Name: DICENT ................................................................................................... 137 Subroutine Name: DICPRT ................................................................................................... 138 Subroutine Name: DICRDR .................................................................................................. 139 Subroutine Name: GRPURG ................................................................................................. 140 Subroutine Name: OPENC .................................................................................................... 142 Subroutine Name: OPENR .................................................................................................... 143 Subroutine Name: OPENS ..................................................................................................... 144 Subroutine Name: OPENSQ .................................................................................................. 145 Subroutine Name: PAGCFGX PAGCFG ............................................................................. 146 Subroutine Name: PAGCLR.................................................................................................. 148 Subroutine Name: READBS.................................................................................................. 149 Subroutine Name: READR .................................................................................................... 150 Subroutine Name: READS .................................................................................................... 151 Subroutine Name: READSQ ................................................................................................. 153 Subroutine Name: WRITEI ................................................................................................... 155 Subroutine Name: WRITES .................................................................................................. 156 BLOCK DATA DESCRIPTIONS .......................................................................................... 157 Block Data: DBCTBD ........................................................................................................... 157 Differences from MSC.Nastran .............................................................................................. 158 Block Data: GRSPBD ............................................................................................................. 161 ADDITIONAL DBIO INFORMATION................................................................................. 162 Additional DBIO Subroutines ................................................................................................. 162 Labeled Common Blocks ........................................................................................................ 163 APPENDIX B ............................................................................................................................ 164 MSC.Access DATA DEFINTION LANAGUAGE INTERFACE ROUTINES .................... 164 Subroutine Name: MSCASM ................................................................................................ 165 Function Name: MSCDLC .................................................................................................... 166 Function Name: MSCKTY .................................................................................................... 167 Function Name: MSCLDD ..................................................................................................... 168 Function Name: MSCLRA .................................................................................................... 169 Function Name: MSCLRT ...................................................................................................... 170 Subroutine Name: MSCPIV .................................................................................................. 171 Subroutine Name: MSCPPT .................................................................................................. 172 Subroutine Name: MSCPTX ................................................................................................. 173 Function Name: MSCRTI ....................................................................................................... 174 Function Name: MSCTFA ..................................................................................................... 175 Function Name: MSCVDR .................................................................................................... 176 Function Name: MSCXII ....................................................................................................... 177 Function Name: MSCXTI...................................................................................................... 178 Static COMMON Specifications ............................................................................................ 179 Additional Support Routines .................................................................................................. 179

Main Index

APPENDIX C ............................................................................................................................ 180 INPUT/OUTPUT EXAMPLES .......................................................................................... 180 C.1 MSC.Nastran Input Data ................................................................................................. 180 C.2 MSC.Nastran Output ....................................................................................................... 184 C.3 MSC.Access SMPLR Program Output ........................................................................... 202

Main Index

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. 2. 3. 4. 5. 6. Improved performance of the data base input/output access capability Improved data base dictionary content descriptions Increased types of analysis results data available Increased number of MSC.Nastran elements supported Larger data base size, number of databases and logical files allowed 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.

Main Index

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

Main Index

TRANS

Utility Program used to translate database to machine neutral format

Main Index

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.

Main Index

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 reactivated 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

Main Index

closed, the application can re-execute the routine to change the memory configurations, however, ALL databases MUST BE CLOSED. See application interface section for further discussion. 1.5 Timeline for MSC.Access and MSC.Nastran Releases

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 1982 MSC.Access Release 1 MSC.Nastran Release 62 Product / Object or Approach Availability MSC/GRASP introduced Basic geometry, loads, results such as displacements, stresses & forces Supported Linear Statics, Real Eigenvalues, Transient & Frequency solutions Support of Nonlinear Solutions Support of scalar and mass elements 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 Introduced Acoustic elements and results Added Grid and Element Discontinuity objects Supported Buckling Analysis Approach 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 Support for Part Superelements Added BUSH and Absorber elements p-element supported expanded to include Beam & Shell elements MSC.Patran integrated via DRA interface Added support for Enthalpy and MPC forces objects Added BUSH1D element support MSC/EMAS support discontinued Added support for Aeroelastic Model Added Hyperelastic elements and Plain Strain Surface Recovery Minor corrections to object attributes Added Element Kinetic Energy and Energy Loss per Cycle objects WELD element supported Allow database to have variable block sizes Allow databases to operate hetrogeneously between platforms DMIG/GENEL limited element support Composite output for QUADR/TRIAR elements MAXMIN (grid) responses (MAXMIN (element) missing)

1983 1985 1989

2 3 4

63 65 66

1991

67

1994

68

68

1996

69

69

1997 1998 1998

70 70.5 70.6

70 70.5 70.6

1999 2001 2001 2004

70.7 2001.0 2001.0.5 2004

70.7 2001.0 2001.0.5 2004

Main Index

2005

2005

2005

Superelement Map object support identical/mirrors Scaled Response Spectra Analysis BBBT Storage Method Added to Keyed Objects FASTNER element supported SEAM weld element supported Cyclic Symmetry Attribute added to object definitions

Main Index

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.

Main Index

1.6.1

MSC.Nastran Version 66 and Subsequent Versions


Bulk Data MSC.Patran MSC.Nastran DBC Module MSC Utilities QAPRT DDLQRY DDLADD CAD/CAM Systems

Machine 1 Environment

MSC.Access Database

MSC.Nastran Data Base

MSC.Trans Transmitter

MSC.Access

MSC.Nastran Toolkit

Neutral File

User Developed Applications

Inter-Machine Transport

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

Neutral File

Machine 2 Environment

MSC.Trans Receiver MSC.Patran

MSC.Access Database

MSC.Access

User Developed Applications

CAD/CAM Systems

Main Index

Main Index

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 predetermined 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.

Main Index

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.

Main Index

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 pelement 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 0 1 2 4 8 16 32 No diagnostics

DBCDIAG Description

Grid object entries Element connection object entries Internal module begin messages Internal module statistics Internal module CPU time, and begin message in performance summary table DBC database dictionary entries

Main Index

64 128 256 512 534288 1048576 2097152

Messages for null MSC.Nastran logical file connections Store diagnostics when geometry updates occur Store grid point factor objects for data recovery Suppress grid point stress objects for data recovery Block manager information Dictionary splitting information 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 PARAM,LOADU,lunit PARAM,POSTU,punit Geometric information Static load information Data Recovery information Default gunit = 40 Default lunit = GEOMU 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.

Main Index

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:

Main Index

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 0 1 2 3 4 Description HK Method, XL Dynamic Factors HK Method, GRASP Static Factors HK Default, BBBT Auto, XL Dynamic Factors HK Default, BBBT Auto, GRASP Static Factors BBBT Method Only

Main Index

CHAPTER 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.

Main Index

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.

Main Index

CHAPTER 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. 2. 3. 4. Grid Locations and Coordinate Systems Element Descriptions (Connection, Material, and Property) Rigid Elements 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

Main Index

2. 3. 4. 5. 6. 7. 8. 9. 10. 11.

Superelement enumeration SUBCASE Identifications Modal Information Time List Frequency List Eigenvalue Tables Buckling Table P-element Error Values Design History and Response Information 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 1-2 3 4 5 6 7 Word Descriptor Object Name Project Number Superelement Identification Path Number SUBCASE Identification Set Identification Format 2A4 I I I I I

Main Index

8 9 10 11 12

Solution Approach Code Design Cycle p-Iteration Cycle Cyclic Symmetry Segment Unused

I I I I 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/

Main Index

(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. 2. 3. 4. Element generic names, like QUAD4. Number of vertices supported by the element. Length of various objects entries. 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 E F G H N S T U B K Connectivity Information Element Strain Data Recovery Element Force Data Recovery Composite Element Laminate Strain Data Recovery Hyperelastic Element Stress Recovery Element Nonlinear Data Recovery Element Stress Data Recovery Composite Element Laminate Stress Data Recovery Element Strain Energy Data Recovery Element Energy Loss per Cycle 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 Connectivity Data Strain Recovery Data Composite Strain Recovery Data Force Recovery Data Nonlinear Recovery Data Stress Recovery Data Composite Stress Recovery Data Strain Energy Recovery Data Object Name(s) CQD4 EQD4MP EQD4R EQD4RI GQD4R FQD4MP FQD4R FQD4RI NQD4R SQD4MP SQD4R SQD4RI TQD4R UQD4R

Main Index

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 its 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

Main Index

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.

Main Index

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.

Main Index

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 0 1 2 3 4 5 6 7 8 21 Corresponding MSC.Nastran Solution Class Old data recovery (refer to prototype for "best guess" logic) Static Data Recovery Transient Response Data Recovery Frequency Response Data Recovery Real Eigenvalue Data Recovery Nonlinear Statics Data Recovery Buckling Data Recovery Complex Eigenvalue Data Recovery Aerodynamic Analysis Scaled Response Spectra Analysis - ABS

Main Index

22 23 24

Scaled Response Spectra Analysis - SRSS Scaled Response Spectra Analysis NRL 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.

Main Index

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 objects 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 X 120 121 1 2 5.0 2.5 Y 2.5 5.0 Z 0.0 0.0 Coordinate Systems Input 0 0 Output 0 0 23456 13456 Constraint Flags T1 5.0 2.5 Input Systems T2 2.5 5.0 T3 0.0 0.0

Main Index

10000 10001

3 4

1.0 1.1

0.0 0.0

0.0 0.0

1 1

1 1

3456 3456

1.0 1.1

0.0 0.0

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:
KEY 1 ... KEY n ITEM 1 ITEM 1 ... ... ... ... ITEM m ITEM 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. 1. 2. 3. 4. 4.2.2 Open data block Read from data block Write to data block Close data block - DBFLOC, OPENC, OPENR, or OPENSQ - READBS, READR, or READSQ - WRITEI - CLOSGR

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:
ITEM l ... ITEM n

where n = the number of items in the object. The SUPERS object is an example of a sequential object. The following routines documented in Appendix A must be used to process all sequential

Main Index

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

Main Index

CHAPTER 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. 2. 3. 4. 5. 6. 7. Database Validation Block Management Open/Close of a Database Database Inquiry Allocate/Free Database Objects Read/Write Operations Purge Objects

These functions are structured as illustrated by the following diagram.


Data Base Validation Block ( Page ) Management OPEN Data Base Data Base Inquiry Allocate Object READ Object WRITE Object Free Object Purge Object

CLOSE Data Base

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.

Main Index

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. 2. 3. 4. 5. 5.1.1 Reading object entry information with READBS, READR, READS, and READSQ Deleting entries from keyed objects using DELREC Dictionary processing with DICENT, DICPRT, and DICRDR Purging of objects with GRPURG Writing object entry information with WRITEI and WRITES 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:

Main Index

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.

Main Index

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

Main Index

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

Access Database Dictionary Inquiry

Three procedures are provided to query the contents of the database: DICENT, DICPRT, and

Main Index

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

Main Index

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 13 1 0 16 0 0 1 42 0 2 198 1 39 1 0 0 199 0 40 1 0 48 0 0 12 42 0 0 0 0 85 40 0 0 48 0 0 0 0

EDGE

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. 2. 3. 4. 5. 6. Internal block number Data block format Block number of the primary map for the object Block number of the first data area of the object Number of words per entry, keyed objects only Maximum number of records per block, keyed objects only

The third line contains the following information: 1. 2. 3. 4. 5. 6. Minimum key value, keyed objects only Either number of entries for keyed objects or number of words for sequential objects Number of data blocks Number of secondary index blocks Maximum key value, keyed objects only 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

Main Index

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 OPENR OPENS OPENSQ Creates a keyed object Opens an existing keyed object for update Opens a sequential object for reading or writing 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 READR Reads the previous entry based on the current object cursor position. Reads an entry based on the key value from a keyed object

Main Index

READS READSQ

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

Main Index

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 WRITES Inserts or updates entries in a keyed object 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.

Main Index

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

Main Index

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 1 2 3 4 5

Path Extension INT RS BCD RD LOG

Data Type Integer Real Single Precision MSC.Nastran BCD Real Double Precision 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 S F

Output Recovery Class Element Stress Data Recovery Element Force Data Recovery

Main Index

N H E T G D Q U K B

Element Nonlinear Data Recovery Element Hyperelastic Stress Data Recovery Element Strain Data Recovery Composite Element Laminate Stress Data Recovery Composite Element Laminate Strain Data Recovery Element Discontinuity Data Recovery Element Gradient and Flux Data Recovery Element Strain Energy Data Recovery Element Kinetic Energy Data Recovery 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

Main Index

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 Object Factor 10000 OLB1 OLB1 OLB1 OLB1 OLB1 10000 10000 10000 10000 10000

MSC.Access Object SUBCASE TOL FOL MODE NLLF SHAPE Factor 1 10000 10000 10000 10000 10000

Statics Transient Frequency Modal Nonlinear Buckling

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

Main Index

Primary Secondary Data Area

25 3 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

Main Index

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.

Main Index

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 6 7 GO UNDEF UNDEF ORIENTATION GRID

or
5 6 7 Xl ORIENTATION Sequential DIRECTION 1 X2 ORIENTATION Sequential DIRECTION 2 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.

Main Index

C H A P T E R

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. 2. 3. 4. 5. Construction of object dictionary entries from name and environment Determination of object entry token via keyword rather than enumerated position The binary typing of a token within an object entry for formatting The mapping between object names and surrogate keys 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

Main Index

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

Main Index

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.
Data Base Validation Block ( Paging ) Management Configuration Data Base OPEN <- for DDL Determine Version and Date Determine attributes used by objects Inquire DDL for objects

Close DDL mapping object Data Base CLOSE <- for DDL

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 MSCDLP Variables DDLDB DDLMAP RELNUM KEYNUM WRDNUM RELPTR RELDIC KEYPTR KEYDIC WRDPTR WRDDIC Type Integer Integer Character Integer Character Integer Character Content Description 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 Indices to the object words Object names in character packed format Indices to the keyword words Keyword names in character packed format Indices to the dictionary words Dictionary words in character packed format

MSCDPR MSCDCR MSCDPK MSCDCK MSCDPW MSCDCW

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

Main Index

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 MSCASM MSCPPT MSCPTX Concerts a character string of a class into an enumerated value Assemble a text string with words delimited by a character and filled to end of string by an additional character Recover the word enumerated list associated with a topic 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

Main Index

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 2 PNAM2 3 PVER 4 MONTH 5 DAY 6 YEAR 7 MCOD 8 VENDOR 9 VENDOR 10 VENDOR 11 VENDOR 12 VENDOR 13 MODEL 14 MODEL 15 MODEL 16 MODEL 17 MODEL 18 OPSYS 19 OPSYS 20 OPSYS 21 OPSYS 22 OPSYS 23 SVER

A A A I I I I A A A A A A A A A A A A A A A A

PRODUCT PRODUCT PRODUCT MONTH DAY YEAR MACHINE MACHINE MACHINE MACHINE MACHINE MACHINE MACHINE MACHINE MACHINE MACHINE MACHINE MACHINE MACHINE MACHINE MACHINE MACHINE PRODUCT

NAME NAME

CODE VENDOR VENDOR VENDOR VENDOR VENDOR MODEL MODEL MODEL MODEL MODEL OPERATING OPERATING OPERATING OPERATING OPERATING SECONDARY

SYSTEM SYSTEM SYSTEM SYSTEM SYSTEM 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

Main Index

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 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Attribute Location 3 4 5 6 7 7 7 8 9 10 6 7 7 4 11 Attribute Definition Project Superelement Path Subcase Set Identification Surface Identification Volume Identification Approach Design Cycle P Iteration Aero Mach, Q and Symmetry enumeration Aero configuration List Identification Component Identification 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 1 2 3 4 5 6 7 8 9 10 Description Surrogate Object Key Pool location for the DDL process codes Encrypted attribute code and object class information Pool location for the Title Pool location for the Nastran Data Blocks used Number of words in DDL control area Number of token for keyword descriptors Number of test values used Number of tokens used for the title Number of tokens used for the Nastran Data Blocks

Main Index

11 12

Not used 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:
10 STR = 0 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

Main Index

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 1 2 3 4 Content Index into the Keyword (KEYPTR) array Binary format code 1->integer 2->real 3->BCD 4->logical 5->double Starting index into dictionary index array 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 1 2 3 4 5 Content -1 Relative Starting Index of group Relative Ending index of group The number of repeats of the group 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 Indices (WRDPTR) Record Structure Group Ctrl Token Ctrl 1 -> 1 SUBCASE I SUBCASE NUMBER 1519,1,1,2 1 926 2 654 2 -> 2 STITLE A SUBCASE TITLE INFORMATION -1,2,2,32,0 1507,3,3,3 3 926 4 973 5 514 Item 2 is repeated 32 times. 3 -> 34 SUBTIT A SUBCASE SUBTITLE INFORMATION -1,3,3,32,0 1520,3,6,3 6 926 7 929 8 514 Item 34 is repeated 32 times. 4 -> 66 LABEL A SUBCASE LABEL INFORMATION -1,4,4,32,0 991,3,9,3 9 926 10 544 11 514 Item 66 is repeated 32 times. Note: Total Instance length is 97 words. KEYPTR -> KEYDIC WRDPTR -> WRDDIC

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

Main Index

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 1 2 3 4 5 Content -2 Relative Starting Index of group Relative Ending index of group The number of token in the clause 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 MSCXTI MSCRTI MSCXII MSCKTY Load interface for fixed DDL object and locate token by keyword Extract token information by relative position Load interface for variable DDL object, with entry, and locate token by keyword Extract token information by relative position Determine the key type of an object

The MSCLRT function should be executed first and its return examined to check if the alternate

Main Index

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.

Main Index

C H A P T E R

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

Main Index

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

Main Index

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 rewrites 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 autodetection 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.

Main Index

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.

Main Index

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

Main Index

This option specifies the name of the output formatted file stride window stride=skip window=entries Default: 0 15 All entries are formatted 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".

Main Index

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 No Output is a disk file 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.

Main Index

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.

Main Index

MSC.Nastran IEEE

Architecture Byte Word Order Size Big Big Little Little Little Big Big Big Big No Big Big Big Big Big Little 64 64 32 32 32 32 32 32 32 32 32 64 32 32

Compaq Alpha TR TR Copy Copy TR TR Copy1 TR Copy1 TR Copy1 TR TR TR Copy1 TR TR Copy1 TR Copy1 TR Copy1 Copy

Compaq VAX TR TR TR TR Copy TR TR TR TR TR TR TR TR TR TR TR

Cray UNICOS Cray IEEE T90 UNICOS Compaq Alpha UNIX Compaq Alpha OpenVMS Compaq VAX OpenVMS Fujitsu VPP, VX UXP/V HP HP-UX, SPP-UX HP C-Series ConvexOS Hitachi S-Series HI-OSF/1-MJ IBM S-390 MVS/XA, VM IBM RS/6000 AIX NEC SUPER-UX SGI IRIX, IRIX64 Sun SPARC Solaris Intel Linux, Windows

No Yes Yes Yes No Yes Yes Yes No No Yes Yes Yes Yes Yes Yes

Postprocessor Platform SGI HP IBM RS/ 6000 TR TR TR TR TR Copy1 TR Copy1 TR Copy Copy Copy TR TR Copy TR Copy Copy Copy TR Copy1 TR TR Copy1 TR Copy1 TR Copy Copy Copy TR TR Copy TR Copy Copy Copy TR Copy1 TR TR Copy1 TR Copy1 TR Copy Copy Copy TR TR Copy TR Copy Copy Copy TR Copy1

Sun SPARC TR TR TR Copy1 TR Copy1 TR Copy Copy Copy TR TR Copy TR Copy Copy Copy TR Copy1

Intel

TR TR Copy TR Copy1 TR TR Copy1 TR Copy1 TR Copy1 TR TR TR Copy1 TR TR Copy1 TR Copy1 TR Copy1 Copy

32 32

1. 2.

3. 4.

Copy indicates that XDB files can be transferred between the systems without using TRANS and RECEIVE programs. Copy1 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. TR indicates that XDB files must be transferred between the systems using TRANS and RECEIVE programs. 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.

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-

Main Index

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 No Output is a disk file 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=- \

Main Index

| 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.

Main Index

C H A P T E R

MSC.Access PROTOTYPE PROGRAM

The MSC.Access prototype program SMPLR was developed for two main reasons. 1. 2. An example of how to extract data from MSC/XL and MSC.Access data bases 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 pelement 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.

Main Index

Initialize Input and Output Units

Get data base and Output file

Open Output file on FORTRAN Unit 11

Perform Data Base Validation (DBVALD)

Configure Memory Based on DBVALD returns

Configure Block Management Area (PAGCFGX) 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.

A1

Main Index

A1

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 B

A2
B

Main Index

A2

SUBGRID Exist? Grid Processing Yes

No Element Processing

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

Yes Done? No

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.

G A3

Main Index

B C

D E

A3

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.

No SUBELEM

Exists?
Process Element Yes 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

Yes Done?? C B D A4 E I No H

Main Index

B C

D E

A4

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

Main Index

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 CLEAR OUTGRD FILTER

OUTELC OUTSRF FIXUP OUTELM

OUTVOL INSERT OUTELR SETFLT

OUTGPF SMPLR

Main Index

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 EXTCOM GRDCOM NAMCON PASSAP PASSIT PASSNM PASSQL SEINFO TEMP WRKSPC Defined In NAMEBD NAMEBD NAMEBD NAMEBD SMPLR SMPLR NAMEBD SMPLR SMPLR SMPLR Length 3 6 57 50 (char.) 6 12 5 300 16 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.

Main Index

C H A P T E R

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.
Data Base Validation Block ( Paging ) Management Configuration Data Base OPEN Data Base Inquire Object Allocation READ/WRITE Operations Data Entry Operations ( Printing ) Object De-allocation Object Purge Data Base CLOSE

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

Main Index

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.
PROJECT Project SUPERS Superelement DHIST Design Cycle GRIDX Grid location information

PATHQUAL Path

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.
PROJECT Project SUPERS Superelement DHIST Design Cycle CQD4 CQD8 CTR3 CTR6 CSHR Plate connection objects

PATHQUAL Path

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.

Main Index

PROJECT Project

SUPERS Superelement

DISPR SOLVE Approach Grid displacement in real data recovery PINFO p-Iteration

DHIST Design Cycle PATHQUAL Path

SUBGRID Subcase

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

Main Index

9.2.1

Driver Program for Example 1 (DEMO1)


C PROGRAM DEMO1 IMPLICIT INTEGER (A-Z) CHARACTER*120 DBNAME COMMON /UNITIF/ INPUT,OUTPUT,DBNUM 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 ) 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 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

C C*

Main Index

NOW VERIFY THE BUFFER SIZE AND THAT THE DATA DEFINITION WILL FIT 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

__________ ___ C C C

ENDIF

Main Index

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 Section D2 Section D3 Section D4 Section D5 Section D6 Path Project Superelement Identifications Approach Code Subcase Surface Identifications

C C C C C C C C C C C C

SUBROUTINE DATINT (IERR) TEST SUBROUTINE DATINT ENTRY POINT: DATINT PURPOSE: A TEST PROCEDURE TO INQUIRE THE CONTENTS OF SELECTED SELECTED ENTITIES WITH THE DATABASE AND TO STORE THE DATABASE INFORMATION IMPLICIT INTEGER (A-Z) PARAMETER (DBELEN=12, DATALN=200) PARAMETER (SUPMAX=200, SUBMAX=200, SUFMAX=20) INTEGER PROHDR(DBELEN),PATHDR(DBELEN),SUPHDR(DBELEN) INTEGER SUBHDR(DBELEN),SOLHDR(DBELEN),SUFHDR(DBELEN) INTEGER DATARA(DATALN) COMMON /UNITIF/ INPUT,OUTPUT,DBNUM COMMON /DBTBLS/ NUMSUP,SEID(200),NGRD,NELM,PROJEC,PATH,APPROH, 1 NUMSUB,SUBID(200),NUMSUF,SUFID(20) 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/

Main Index

Attribute Name ______ C C PATH

Attribute Object Containing Key PATHQUAL

Qualification Attributes None

C C D1 C 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 RECOVER THE MAXIMUM PATH INDEX USED CALL READR (PATFIL,DATARA,-7,ERRCOD) IF (ERRCOD.NE.0) THEN UNABLE TO FIND PATH PATH = 0 ELSE PATH FOUND PATH = DATARA(2) ENDIF RELEASE THE PATH RELATION CALL CLOSGR (PATFIL) ELSE UNABLE TO FIND PATH PATH = 0 ENDIF Attribute Name Attribute Object Containing Key PROJECT Qualification Attributes None

________ C C

PROJEC

C C D2 C 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 RECOVER THE MAXIMUM PROJECT INDEX CALL READR (PROFIL,DATARA,-1,ERRCOD) IF (ERRCOD.NE.0) THEN UNABLE TO FIND PROJECT PROJEC = 0 ELSE PROJECT FOUND PROJEC = DATARA(2) ENDIF RELEASE THE PROJECT RELATION CALL CLOSGR (PROFIL) ELSE UNABLE TO FIND PROJECT PROJEC = 0 ENDIF

Main Index

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 ________ C C APPROH Attribute Object Containing Keys SOLVE Qualification Attributes PROJEC Qualification Position (3)

__________ C C

Program Table Attribute Object Qualification Containing Attributes Containing Keys Attributes SEID(1) id1 SUPERS PROJEC (2) Id2 (3) idn Note: n = NUMSUP (Number of superelements)

Qualification Position (3)

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

Main Index

__________ C C

Program Table Attribute Object Qualification Containing Attributes Containing Keys Attributes SUBID(1) id1 SUBGRID PROJEC (2) id2 PATH APPROH (n) idn Note: n = NUMSUB (Number of SUBCASEs)

Qualification Position (3) (5) (8)

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 SUFID(1) id1 (2) id2 (n) idn Attribute Object Containing Keys SURFSET Qualification Attributes PROJEC SEID PATH APPROH DESIGN Qualification Position (3) (4) (5) (8) (9)

__________ C C

Note: n = NUMSUF (Number of surfaces) Note: Surface Set for Residual (SEID=0) and no Design Cycles (DESIGN=0) SURFACE CHECK SUFHDR(3) = PROJEC SUFHDR(5) = PATH SUFHDR(8) = APPROH NUMSUF = 0 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

D6

Main Index

200

D6

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

NUMREC = 1 CALL READSQ (SUFFIL,DATARA,NUMREC,NUMREC,IEOR,ERRCOD) IF (ERRCOD.NE.0) GOTO 250 IF (NUMSUF+1.GT.SUFMAX) GOTO 250 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)

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 Section E12 Section E13 Section E14 Cycles over all the superelements in the model Allocates the grid point coordinate object Cycles over the grid point coordinate data for reading and printing Frees the grid point coordinate object

Main Index

C C C C C C C C C C C C

SUBROUTINE PRTGRD TEST SUBROUTINE PRTGRD ENTRY POINT: PRTGRD PURPOSE: A TEST OUTPUT PROCEDURE TO PRINT THE GRID POINT DATA FROM A GRAPHICAL DATABASE. IMPLICIT INTEGER (A-Z) PARAMETER (DBELEN=12) INTEGER GRDHDR(DBELEN),GRDINT(12) REAL GRDREL(12) COMMON /UNITIF/ INPUT,OUTPUT,DBNUM COMMON /DBTBLS/ NUMSUP,SEID(200),NGRD,NELM,PROJEC,PATH,APPROH, 1 NUMSUB,SUBID(200),NUMSUF,SUFID(20) EQUIVALENCE (GRDINT(1),GRDREL(1)) DATA GRDHDR/4HGRID,4HX ,10*0/ CYCLE OVER THE GRID DATA FOR ALL SUPERELEMENTS

C C C C 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

Main Index

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 Section E22 Cycles over all the superelements in the model Allocates selected element connectivity objects (QUAD4, QUAD8, TRIA3, TRlA6, and SHEAR) Cycles over the element connectivity data for reading and printing Frees the element connectivity object
SUBROUTINE PRTCON TEST SUBROUTINE PRTCON ENTRY POINT: PRTCON PURPOSE: A TEST OUTPUT PROCEDURE TO PRINT THE CONNECTIVITY FROM A GRAPHICAL DATABASE. IMPLICIT INTEGER (A-Z) PARAMETER (DBELEN=12) INTEGER ELMNAM(3,5),ELMHDR(DBELEN),ELMINT(50) COMMON/UNITIF/ INPUT,OUTPUT,DBNUM COMMON/DBTBLS/ NUMSUP,SEID(200),NGRD,NELM,PROJEC,PATH,APPROH, 1 NUMSUB,SUBID(200),NUMSUF,SUFID(20) DATA ELMHDR/12*0/ ELEMENT NAME # OF GRIDS DATA ELMNAM/4HCQD4,4H , 4, 4HCQD8,4H , 8, 4HCTR3,4H , 3, 4HCTR6,4H , 6, 4HCSHR,4H , 4/ DATA NUMELM /5/

Section E23 Section E24

C C C C C C C C C C C

C C

1 2 3 4

Main Index

C C* C __________C

CYCLE OVER THE CONNECTIVITY FOR ALL SUPERELEMENTS ELMHDR(3) = PROJEC ELMHDR(5) = PATH

DO 300 ISUP= 1,NUMSUP 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 C*

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 Section E32 Section E33 Section E34
C C C C C C

Cycles over all the superelements subcases within the model Allocates displacement objects Cycles over the displacement data for reading and printing Frees the displacement object
SUBROUTINE PRTDIS TEST SUBROUTINE PRTDIS ENTRY POINT: PRTDIS PURPOSE: A TEST OUTPUT PROCEDURE TO PRINT DISPLACEMENT DATA. EXAMPLE IS FOR REAL DATA RECOVERY ONLY IE, STATICS, NORMAL MODES TRANSIENT, NON-LINEAR BUT WILL NOT WORK FOR COMPLEX FORM

Main Index

IMPLICIT INTEGER (A-Z) PARAMETER (DBELEN=12) INTEGER DISHDR(DBELEN) INTEGER IDDIS(20) REAL DISDAT(20) COMMON/UNITIF/ INPUT,OUTPUT,DBNUM COMMON/DBTBLS/ NUMSUP,SEID(200),NGRD,NELM,PROJEC,PATH,APPROH, 1 NUMSUB,SUBID(200),NUMSUF,SUFID(20) EQUIVALENCE (DISDAT(1),IDDIS(1)) DATA DISHDR/4HDISP,4HR ,10*0/ WHERE THERE ANY ANALYSIS RESULTS DETECTED IF (NUMSUB.EQ.0) RETURN DISHDR(3) = PROJEC DISHDR(5) = PATH DISHDR(8) = APPROH DO 300 ISUP= 1,NUMSUP DO 200 ISUB= 1,NUMSUB 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) IF (ERRCOD.EQ.0) THEN WRITE (OUTPUT,1000) (DISHDR(I),I=1,6),DISHDR(8) 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') NREC= 1 CALL READSQ (DISFIL,DISDAT,NREC,NREC,IEOR,ERRCOD) IF (ERRCOD.NE.0) GOTO 1050 IF (IDDIS(1)) 100,1030,1010 WRITE (OUTPUT,1020) IDDIS(1),(DISDAT(LDAT),LDAT=2,7) FORMAT(1X,I8,2X,6F10.5) GOTO 100 WRITE (OUTPUT,1040) IDDIS(2) FORMAT (' OBJECT FACTOR =',I6) GOTO 100 RELEASE THE DISPLACEMENT FILE CALL CLOSGR(DISFIL) ENDIF SUBCASE CYCLE CONTINUE SUPERELEMENT CYCLE CONTINUE RETURN END

C C C C* C*

________________ C C*

E32 1000

_ _ _ _ _ _ _______ 100 E31 E32 1010 1020 1030 1040 _ _ _ _ _ _ __________ C* E34 1050 C* 200 C* ________________ 300 C

Main Index

9.2.6

Grid Point Stress Data in Example 1 (PRTGPS)

The following procedure reads and prints grid point stress data (Section D in the driver procedure). The functions of this procedure are: Section E41 Section E42 Section E43 Section E44 Section E45 Section E46 Section E47 Cycles over all the superelements within the model Extract the Grid Key factor from EQEXING object Cycle over all the SUBCASEs within the model Cycles over the grid point stress surfaces within the model Allocates grid point stress objects Cycles over the grid point stress data for reading and printing Frees the grid point stress objects

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

C C C*

C C*

Main Index

C __________________ C* C*

GPSPTR(3) = PROJEC GPSPTR(5) = PATH GPSPTR(8) = APPROH GPTHDR(3) = PROJEC GPTHDR(5) = PATH GPTHDR(8) = APPROH CYCLE OVER THE GRID POINT STRESS DATA FOR ALL SUPERELEMENTS DO 500 ISUP= 1,NUMSUP 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 EXTRACT THE MSC.Access FACTOR FOR THE TABLE CALL READR (EQGFIL,GRDMAP,0,ERRCOD) IF (ERRCOD.EQ.0) THEN MSC.Nastran V67 AND LATER CONVENTIONS GFACT = GRDMAP(2) ELSE CONVENTIONS PRIOR TO MSC.Nastran V67 GFACT = 10 ENDIF GPSPTR(4)= SEID(ISUP) GPTHDR(4)= SEID(ISUP) LOOP OVER POSSIBLE SUBCASES DO 400 ISUB= 1,NUMSUB GPSPTR(6)= SUBID(ISUB) GPTHDR(6)= SUBID(ISUB) LOOP OVER THE SURFACES WITHIN A SUBCASE DO 300 ISUF= 1,NUMSUF 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 RECOVER THE POINTER MSC.Access FACTOR CALL READR (PFIL,SRFMAP,0,ERRCOD) IF (ERRCOD.EQ.0) THEN PFACT = SRFMAP(2) ELSE PFACT = 10000 ENDIF 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) FORMAT (1X,2A4,' PROJECT= ',I4, ' SUPERELEMENT= ',I4,' PATH= ',I4, ' SUBCASE= ',I8,' SURFACE= ',I4,' APPROACH=',I2/ ' EXTID FIBRE GRID POINT STRESS DATA') REWIND THE EXTERNAL TO INTERNAL MAPPING TABLE CALL READR (EQGFIL,GRDMAP,-99,ERRCOD)

E42

C* C C

C _ _ _ _ _ _ _ _ _ _ _ C*

C ____________ C* C*

C*

E41 E43 E44 E45

C*

1000

____ _ C C*

* * *

Main Index

CALL READR (EQGFIL,GRDMAP,-99,ERRCOD) SEQUENTIALLY PASS ALL POSSIBLE GRIDS 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 C* 100

Main Index

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)
C C C C C PROGRAM DEMO2 IMPLICIT INTEGER (A-Z) CHARACTER*80 DBNAME COMMON /UNITIF/ INPUT,OUTPUT,DBNUM 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 ) 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) INITIALIZE THE OPERATING SYSTEM AND LOGICAL DATABASE UNITS INPUT = 5 OUTPUT = 6 DBNUM = 1

C C*

Main Index

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)

____________________ C

Main Index

___________________ C* C C C* ___________________ C* C* D C* C*

IF (IERR.EQ.0) THEN ALLOCATION OF DATABASE CALL DBOPEN (DBNUM,0,0,IERR,DBNAME) LOAD AND PRINT SELECTED DATA FROM THE DATABASE IF (IERR.EQ.0) THEN PRINT GRID POINT DATA CALL PRTGRD PRINT ELEMENT CONNECTIVITY DATA CALL PRTCON PRINT DISPLACEMENT DATA CALL PRTDIS PRINT GRID POINT STRESS DATA CALL PRTGPS ELSE WRITE (OUTPUT,1020) IERR FORMAT (' *** UNABLE TO ATTACH TO THE DATABASE, ', ' ERROR = ',I3/5x,'SEE DBOPEN DESCRIPTION') ENDIF

1020 ___________________ C C*

CLOSE MAIN DATABASE 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 Section D12 Section D13 Section D14 Searches the data base for grid point objects Allocates the grid point coordinate object Cycles over the grid point coordinate entries for reading and printing Frees the grid point coordinate object

Main Index

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

Main Index

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 Section D22 Section D23 Section D24 Section D25 Section D26 Cycle over the data base dictionary entries Cycles over all selected element types Searches the entry for selected element connectivity objects Allocates selected element connectivity objects (QUAD4, QUAD8, TRIA3, TRlA6, and SHEAR) Cycles over the element connectivity entries for reading and printing Free the element connectivity object

C C C C C C C C C C

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

Main Index

________________

C C* C* 100 C*

D21

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) D22 1000 FORMAT (1X,2A4,' PROJECT= ',I4,' SUPERELEMENT= ',I4, * ' PATH=',I4/ ' EXTID CONNECTION GRIDS') 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 ____________ 200

C ____________ C*

REWIND THE POINTER INTO THE DATABASE DICTIONARY DBPTR = 0 EXTRACT THE NEXT DATABASE DICTIONARY ENTRY CALL DICENT (DBNUM,DBPTR,NOPRT,DBENT,IKEEP) CHECK IF THERE WAS A DICTIONARY ENTRY IF (DBPTR.LT.0) RETURN

Main Index

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 Section D32 Section D33 Section D34 Section D35

Loop over data base dictionary entries Searches entry for displacement objects Allocates the displacement object Cycles over the displacement entry for reading and printing Differentiate data entry from factor entry by key=0 Free the displacement object

C C C C C C C C C

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

Main Index

_________________ C C* C* 100 C* D32 C C*

REWIND THE POINTER INTO THE DATABASE DICTIONARY DBPTR = 0 EXTRACT THE NEXT DATABASE DICTIONARY ENTRY CALL DICENT (DBNUM,DBPTR,NOPRT,DBENT,IKEEP) CHECK IF THERE WAS A DICTIONARY ENTRY IF (DBPTR.LT.0) RETURN CHECK IF THE CURRENT ENTRY IS A DISPLACEMENT RELATION IF (DBENT(1).EQ.DISNAM) THEN 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) 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') NREC= 1 CALL READSQ (DISFIL,DISDAT,NREC,NREC,IEOR,ERRCOD) IF (ERRCOD.NE.0) GOTO 300 IF (IDDIS(1)) 200,1050,1010 WRITE (OUTPUT,1020) IDDIS(1),(DISDAT(J),J=2,7) FORMAT(1X,I8,2X,6F10.5) IF (DSPLEN.GT.7) THEN WRITE (OUTPUT,1030) (DISDAT(J),J=8,13) FORMAT (11X,6F10.5) ENDIF GOTO 200 WRITE (OUTPUT,1060) IDDIS(2) FORMAT (' OBJECT FACTOR =',I6) GOTO 200 RELEASE THE DISPLACEMENT FILE CALL CLOSGR (DISFIL) ENDIF ENDIF DATABASE DICTIONARY CYCLE GOTO 100 END

_________________ C*

D33

1000

D31 _________________ 200

D34

1010 1020 1030 1050 1060 C* 300 C C*

_________________ D35

______________

Main Index

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 Section D42 Section D43 Section D44 Section D45 Section D46 Loop over data base dictionary entries Searches the entry for grid point stress pointer object Allocates the grid point stress point and value objects Cycles over the grid point stress point entries for keys into value object Cycle over surface pointer entry for layers for reading and printing 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 TEST SUBROUTINE PRTGPS ENTRY POINT: PRTGPS PURPOSE: A TEST OUTPUT PROCEDURE TO PRINT GRID POINT STRESS DATA. IMPLICIT INTEGER (A-Z) PARAMETER (DBELEN=12) INTEGER DBENT(DBELEN),EQGHDR(DBELEN),GPTHDR(DBELEN) INTEGER GRDMAP(3),SRFMAP(4),LAB(3),GPSPTR(2) REAL GPRECR(9) COMMON /UNITIF/ INPUT,OUTPUT,DBNUM EQUIVALENCE (GPRECR(1),IDGPS) DATA LAB/2HZ1,2HZ2,3HMID/, NOPRT/1/ DATA GPSPTR/4HSGSP,4HR / DATA EQGHDR/4HEQEX,4HING ,10*0/ DATA GPTHDR/4HSGSV,4HR ,10*0/ REWIND THE POINTER INTO THE DATABASE DICTIONARY DBPTR = 0 EXTRACT THE NEXT DATABASE DICTIONARY ENTRY CALL DICENT (DBNUM,DBPTR,NOPRT,DBENT,IKEEP) CHECK IF THERE WAS A DICTIONARY ENTRY IF (DBPTR.LT.0) RETURN CHECK IF THE CURRENT ENTRY IS A DISPLACEMENT RELATION IF (DBENT(1).EQ.GPSPTR(1) .AND. DBENT(2).EQ.GPSPTR(2)) THEN

C C C C C C

C C C

_________________ C C* D41 C* 100 C* C C*

D42

Main Index

__________________ C C*

C* 110 C* C C D41 D43 C* C*

C* 120 _ _ _ _ _______ 1000 * * *

C C* D44 C* 200

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

C*

Main Index

__________ D45

C*

1010 D41 D44 _ _ ____________ D46 250 C* 300 400

C C* ____________

GOTO 200 RELEASE THE STRESS FILES CALL CLOSGR (VFIL) CALL CLOSGR (PFIL) CALL CLOSGR (EQGFIL) ENDIF ENDIF DATABASE DICTIONARY CYCLE GOTO 100 END

OUTPUT THE STRESS RECORD FOR EACH FIBER DO 250 IFIB= 1,3 KEY = SRFMAP(IFIB+1) 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) FORMAT(1X,I8,1X,A3,1X,8F8.1) ENDIF CONTINUE ENDIF

Main Index

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)

Main Index

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 C Now boot the data definition language arrays into memory 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

Main Index

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) ) Check if QUIT task if ( string(1:1).eq.'Q') then Call CLOSGR (ddlmap) if ( ddltok.gt.0 ) Call CLOSGR (ddltok) return endif 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

C C

C C

Main Index

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

Main Index

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 C 330 continue Request user for the object name WRITE (output,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) ) 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 continue nsloc = nsloc + 1 sloc(nsloc) = jp + 1

340

Main Index

C C

410 C

420 C

430 *

440 450

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 Presume a single term for token idx = MSCDLC (string,slen,wrdptr,wrdnum,wrddic) if (idx.le.0) then WRITE (output,410) string(1:slen) Format (' *** Token ',a,' is not in the Data Definition') goto 495 endif 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 continue else 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) Format (' *** Token ',a, ' could not be matched in the Data Definition') goto 495 endif loop = ABS(loop) do 450 k=1,loop 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 continue endif continue endif

Main Index

C C C

460 C 470 480

C 490 495 500 C

510

520

530 540

Cannot operate on first list ONLY if ( pass.gt.1 ) then Delimiters of "&" AND or "|" OR are acceptable if ( card(lstdel:lstdel).eq.'&' ) then 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 continue else if ( card(lstdel:lstdel).eq.'|' ) then Perform an OR operation do 470 i=1,relnum if ( iar(jp+i).ne.0 ) iar(i) = 1 continue else WRITE (output,480) card(lstdel:lstdel) Format (' *** Invalid token delimiter ',a) goto 495 endif endif else Initialize for first string encountered do 490 i=1,relnum iar(i) = iar(jp+i) continue endif continue lstdel = sloc(pass) continue 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 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) 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 continue istr = istr + 1 card(istr:istr) = ' ' continue

Main Index

550

560

570 580

if (istr.gt.0) WRITE (conout,520) card(1:istr) if ( lstip.eq.1 ) then WRITE (output,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) 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 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) format(' Object : ',20a1) Call DBESPT (2,stack) endif continue endif endif goto 320 endif goto 100

C C end

Main Index

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 C C C C C C C C 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'/ Routine used to format the information concerning an object from a supplied control instance. THIS PROGRAM IS CONFIDENTIAL AND A TRADE SECRET OF THE MSC.SOFTWARE CORPORATION. THE RECEIPT OR POSSESSION OF THIS PROGRAM DOES NOT CONVEY ANY RIGHTS TO REPRODUCE OR DISCLOSE ITS CONTENTS, SELL, LEASE, OR OTHERWISE TRANSFER IT TO ANY THIRD PARTY, IN WHOLE OR IN PART, WITHOUT THE SPECIFIC WRITTEN CONSENT OF THE MSC.SOFTWARE CORPORATION. Implicit Integer (a-z)

Main Index

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 C if ( iopt.eq.1 ) then 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

Main Index

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

Main Index

This section starts the interpretation section of the entrys 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 C C C C Begin the Output Area for the Object Description WRITE (output,510) 510 format (' Record Structure') Pull the information output the data base concerning Object Call MSCPIV (ddlmap,rec,inst,ni,values,nv,local,0) Now cycle through the instructions word = 0 trap = 0 total = 0 count = 0 either = .false. intptr = -3 varflg = 0

Main Index

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 C Check if word description of opcode if (inst(intptr).gt.0) goto 650 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 Standard ENTRY/ENDENTRY Clause total = total + lenint*count stppos = 0 else 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

Main Index

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

Main Index

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 C Standard instruction, first pull the keyword string 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

Main Index

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

Main Index

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.

Main Index

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:

Main Index

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.

Main Index

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.

Main Index

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 DUMMY Integer-input Integer-input Logical data base number to close Currently unused. For prior releases, this argument represented the memory address for an I/O buffer work area. Return code from the routine 0 -> Normal data base close 1 -> Logical data base already closed 2 -> DBNUM value outside valid range

IRET

Integer-output

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.

Main Index

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 MODE Input-integer Input-integer Logical data base number to open 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 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. 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 Physical file name stored as character variable and supplied according to operating system standards.

BLKSIZ

Integer-input

IRET

Integer-output

FILNAM

Char-input

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

Main Index

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.

Main Index

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 FILNUM FLEN FNUM IRET Array-input Integer-output Integer-output Integer-output Integer-output Dictionary entry of an object name Logical file number assigned to the opened object The length of an instance for a keyed object or the total length in words for a sequential object The number of entries for keyed object or "1" for sequential objects 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.

Main Index

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 Physical file name stored as character variable and supplied according to operating system standards. The size of FILNAM in characters. When data base exists, the block size in words of the platform. When data base exists, the encrypted size of the data definition language Native platform flag. 0 -> Native to current platform 1 -> Big/little endian, 32 bit platforn word construction

FILNAM NAML BLKSIZ DDLSIZ NATIVE

Character-input Integer-input Integer-output Integer-output Integer-output

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.

Main Index

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 KEY IRET Integer-input Integer-input Integer-output Open logical file containing entries to be deleted Key of the entry to delete from the object 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.

Main Index

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 ENTRY Integer-input Integer-in/out Logical data base number 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 Optional print control flag for file output 0 -> Print dictionary content before returning first entry 1 -> No optional print recovery Contains the retrieved dictionary entry values. The array must be at least twelve words in length. Current data base block being processed

PRTFLG

Integer-input

NAME

Array-output

BLK

Integer-in/out

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.

Main Index

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 OPTION Integer-Input Integer-Input Logical data base number 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.

Main Index

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 NAME DAT Integer-input Array-input Array-output Logical data base number Dictionary entry to locate 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.

Main Index

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 NAME D1 D2 D3 PRINT Integer-input Array-input Logical data base number Dictionary entry to delete (purge)

Integer-input

Currently unused. In earlier releases, these arguments represented locations of three I/O buffer work areas Print echo option flag 0 -> Do not print entry deletion messages on output file. 1 -> Print entry deletion messages on output file. Return code from the routine 0 -> Dictionary entry(s) deleted 1 -> Dictionary entry not deleted

Integer-input

IRET

Integer-output

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: **** -1 MSC.Nastran BCD Integer values for words 1 and 2 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.

Main Index

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.

Main Index

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 NAME WRDREC FILNUM D1 Integer-input Array-input Integer-input Integer-output Integer-input Logical data base number Dictionary entry and keyed object name to create Number of words per logical record in object Logical file number assigned to the object Currently unused. In prior releases, this argument represented the number of I/O buffers available

D2 D3 D4 D5 D6 IRET

Integer-input

Currently unused. In prior releases, these arguments represented memory addresses for I/O buffer work areas.

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.

Main Index

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 NAME WRDREC FILNUM D1 Integer-input Array-input Integer-output Integer-output Integer-input Logical data base number Dictionary entry and object name to update Number of words per record in object Logical file number assigned to the object Currently unused. In prior releases, this argument represented the number of I/O buffers available

D2 D3 D4 D5 D6 IRET

Integer-input

Currently unused. In prior releases, these arguments represented memory addresses for I/O buffer work areas.

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.

Main Index

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 NAME FLAG Integer-input Array-input Integer-input Logical data base number Dictionary entry to create/update/re-use Logical file open status flag 0 -> Open object to read 1 -> Open object to write Logical file number assigned to object Currently unused. In prior releases, this argument represented the memory address of an I/O buffer work area. 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

FILNUM D1

Integer-output Integer-input

IRET

Integer-output

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.

Main Index

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 NAME FILNUM D1 Integer-input Array-input Integer-output Integer-input Logical data base number Object dictionary entry and object to open Logical file number assigned to object Currently unused. In prior releases, this argument represented the memory address of an I/O buffer work area. 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

IRET

Integer-output

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.

Main Index

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 STRLOC LENGTH MAXBUF MAXDDL DICFLG NATIVE Integer-input Integer-input Integer-input Integer-input Integer-input Integer-input Integer-input The FORTRAN unit for error messages and other formatted output. Index into /DBCXXX/ for start of paging pool Number of words available in /DBCXXX/ past STRLOC Number of words in the largest block The maximum DDL size returned by DBVALD Dictionary cache allocation parameter Flag denoting if all data base processing to be platform native 0 -> NATIVE processing only 1 -> Heterogeneous platform information exchange possible Return code from the routine 0 -> Paging pool established 1 -> Insufficient memory allocated for paging pool

IRET

Integer-output

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

Main Index

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.

Main Index

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.

Main Index

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 ARRAY IRET Integer-input Array-output Integer-output Logical file number assigned by open routine Used to store the objects entry 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.

Main Index

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 ARRAY KEY IRET Integer-input Integer-input Integer-input Integer-output Logical file number assigned in open routine Array used to store the object entry First word of the entry to locate 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.

Main Index

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 ARRAY ROOM NREAD EOR Integer-input Array-Output Integer-input Integer-Output Integer-Output Logical file number assigned in open routine Area to contain the sequential information Number of words requested from the object current cursor location Number of words returned (up to maximum of ROOM) Read transfer status indicator 0 -> All requested data returned 1 -> Not all requested data returned 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

IRET

Integer-Output

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

Main Index

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

Main Index

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 ARRAY ROOM Integer-input Array-Output Integer-input Logical file number assigned in open routine Area containing the read entries Number of entries to read +ROOM -> Number of entries to return -ROOM -> Advance file cursor by ROOM entries, but return no data Number of words returned in ARRAY Read transfer status indicator 0 -> All requested data was returned 1 -> Not all requested data was returned 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

NREAD EOR

Integer-output Integer-output

IRET

Integer-output

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

Main Index

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.

Main Index

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 REC IRET Integer-input Array-input Integer-output Logical file number assigned in open routine Area containing the entry to be inserted/updated 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.

Main Index

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 REC Integer-input Array-input The logical file number assigned from open routine The area containing the word(s) to append to the current sequential record The length in words of the REC area 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

NWRDS IRET

Integer-input Integer-output

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.

Main Index

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 .... .... CONTINUE

xxx

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. 2. 3. 4. 5. 6. 7. First half of element name (A4) Second half of element name (A4) Element type number MSC.Access file mnemonic for stress and force data recovery Label mnemonic for table and xyplot request in recover Sort position in the output file processing Class Grouping 1-> 1D elements such as RODs, BEAMs, etc 2 -> 2D element plates 3 -> 3D element solids Maximum number of grid points for the element type. (Missing grid numbers are denoted by -1" or zero.) Number of faces in the FACE/GRASP object Number of entries within connection object Name of property data block Number of entries within property object Minimum number of grid points on an element MSC.Nastran internal base element number derived from GPTABD Unused

8. 9. 10. 11. 12. 13. 14. 15.

Main Index

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 Programmers 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 AABSF AEROBEAM AEROQ4 AEROT3 AXIF2 AXIF3 AXIF4 BAR BARS BEAM BEAMP BEND BUSH BUSH1D CHBDYE

MSC.Access Element Types 48 50 52 51 12 13 10 88 54 47 92 44

MSC.Nastran Element Types 101 16 72 15 47 48 49 34 100 2 105 69 102 40 107

Main Index

CHBDYG CHBDYP CONE CONM1 CONM2 CONROD CONV CONVM CVINT DAMP1 DAMP2 DAMP3 DAMP4 DAMP5 DUM3 DUM4 DUM5 DUM6 DUM7 DUM8 DUM9 ELAS1 ELAS2 ELAS3 ELAS4 FLMASS FLUID2 FLUID3 FLUID4 GAP

45 46 30 31 8 20 21 22 23 16 17 18 19 15

108 109 35 29 30 10 110 111 192 20 21 22 23 106 55 56 57 58 59 60 61 11 12 13 14 46 43 44 45 38

Main Index

HACAB HACBR HBDY HEXA HEXAP HEXPR MASS1 MASS2 MASS3 MASS4 PENPR PENTA PENTAP PLOTEL QUAD QUAD4 QUAD8 QUADP QUADR QUADX QVECT QVOL RADBC ROD SFINT SHEAR SLIF1D SLOT3 SLOT4 TETPR

32 33 2 41 35 24 25 26 27 36 6 42 49 94 1 3 86 29 95 9 11 37

83 84 52 67 141 76 25 26 27 28 77 68 142 31 164 33 64 103 82 171 113 114 115 1 197 4 116 50 51 78

Main Index

TETRA TETRAP TRIA3 TRIA6 TRIAP TRIAR TRIAX TRIAX6 TUBE VISC VUBEM VUHBDY VUHEXA VUPENTA VUQUAD VUTETRA VUTRIA WELD

14 43 4 7 87 34 96 28 5 93 91 38 39 89 40 90 53

39 143 74 75 104 70 168 53 3 24 191 199 145 146 189 147 190 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) /GRDBLK/ (572) /GRFIST/ (838) /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.

Main Index

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.

Main Index

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 DBCTA1 DBCXXX DEBUG GRDBLK GRFIST SYSFIL Defined In DBCTBD SMPLR PAGCFGX PAGCFGX PAGCFGX PAGCFGX Length 1440 100000 30 572 838 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.

Main Index

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.

Main Index

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 LENGTH Integer-input DELIMIT Char-input FILL STR LIST NLIST Char-input Integer-in/out Integer-input Integer-input Local application character string to return word tokens Maximum character length of the "line" string Character to be used to delimit the tokens Character to be used to fill the remainder of the assembled line Starting location, initialized to zero and reset on return to current list location The dictionary word pointer list obtained via an application call to MSCPPT 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.

Main Index

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 Character string to locate within a schema mapping table The length in characters of string The mapping pointer table to be utilized The number of entries in the associated pointer table The character dictionary associated with the pointer table

STRING Char-input SLEN PTR NUM DIC Integer-input Integer-input Integer-input Char-input

Method: The words comprising the dictionary are searched for a match and the enumerated value of the word is returned.

Main Index

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 name to locate in the schema stored as a string of length eight 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

OBJECT Char-input KEYTYP Integer-output

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.

Main Index

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 Logical file number associated with the schema mapping object Logical data base application assigned to the schema data base 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

DDLMAP Integer-output DDLBD Integer-input FLAG Integer-input

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.

Main Index

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 name to locate in the schema stored as a two word integer Integer array conforming to an MSC.Access dictionary standard The current environment table

OBJECT BCD-input NAME ENV Integer-output Integer-input

The list below indicate the location and the order of the environment array: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Project Superelement Path Subcase Set Identification Surface Identification Volume Identification Approach Design Cycle P Iteration Aero Mach, Q and Symmetry enumeration Aero configuration List Identification 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.

Main Index

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 The object name to locate within the schema The length of the MNAME string in characters The token name to locate within the object The length of the TNAME string in characters The word displacement within the entry where the token is positioned The format type of the token 1 -> Long Integer 2 -> Real Single Precision 3 -> MSC.Nastran Character Format 4 -> Logical 5 -> Real Double Precision The number of times the token appears in the entry The word displacement between the token(s) in the entry

MNAME Char-input RLEN Integer-input

TNAME Char-input TLEN STR Integer-input Integer-output

FTYPE Integer-output

KNT

Integer-output

STRIDE Integer-output

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.

Main Index

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 RECORD Integer-input INST NINST Integer-output Integer-output Logical file handler assigned to the schema database Control instant for enumerated object obtained from DDLMAP An array of instruction codes used to describe an object entry The length of "INST" in words An array of integer/real values pointed to by the "INST" array The length of "VALUES" in words Application area used for description enumeration data recovery Flag to indicate if description enumeration is to be recovered 0 -> Recover description enumeration 1 -> Skip description enumeration recovery

VALUES Mixed-output NVAL DESC FLAG Integer-output Integer-output Integer-input

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.

Main Index

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 ADDR LIST NLIST Integer-input Integer-output Integer-output Logical file handler assigned to the schema data base List address obtained from DDLMAP object to specific information Local application work area used to return list values 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.

Main Index

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 SLEN INDEX PTR DIC Integer-output Integer-input Integer-input Char-input Local application character string to return word token Length of the token in characters The tokens enumerated value Mapping pointer table to use when resolving the enumeration 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.

Main Index

Function Name: MSCRTI 1. Entry Point: MSCRTI 2. Purpose: Initializes memory for interfacing to a specific object when entry is needed.
STRIDE)

3. Calling Sequence: IRET = MSCRTI (MNAME,RLEN,TNAME,TLEN, ENTRY,ENTLEN,STR, FTYPE, KNT,


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 The object name to locate within the schema The length of the MNAME string in characters The token name to locate within the object The length of the TNAME string in characters Object entry to be used to resolve DDL clauses The length of the object entr The word displacement within the entry where the token is positioned The format type of the token 1 -> Long Integer 2 -> Real Single Precision 3 -> MSC.Nastran Character Format 4 -> Logical 5 -> Real Double Precision The number of times the token appears in the entry The word displacement between the token(s) in the entry

MNAME Char-input RLEN Integer-input

TNAME Char-input TLEN Integer-input

ENTRY Array-input ENTLEN Integer-input STR Integer-output

FTYPE Integer-output

KNT

Integer-output

STRIDE Integer-output

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.

Main Index

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 name to locate in the schema stored as a string of length eight Attribute enumeration (see MSCLRA for enumeration list)

OBJECT Char-input ATTR Integer-input

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.

Main Index

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 The primary version stamp The secondary version stamp The enumerated month the DDL was compiled The enumerated day the DDL was compiled The enumerated year the DDL was compiler as a four digit value

PVER SVER MON DAY YEAR

Integer-output Integer-output Integer-output Integer-output Integer-output

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 1900s or 2000+ can be distinguished.

Main Index

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 Token's word displacement into the object instant Object entry to extract information by word location The character string associated with the token The length in characters of the token The format type of the token 1 -> Long Integer 2 -> Real Single Precision 3 -> MSC.Nastran Character Format 4 - >Logical 5 - >Real Double Precision

IWORD Integer-input ENTRY Array-input TNAME Char-output TLEN Integer-output

FTYPE Integer-output

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.

Main Index

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 Token's word displacement into the object instant The character string associated with the token The length in characters of the token The format type of the token 1 -> Long Integer 2 -> Real Single Precision 3 -> MSC.Nastran Character Format 4 - >Logical 5 - >Real Double Precision

IWORD Integer-input TNAME Char-output TLEN Integer-output

FTYPE Integer-output

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.

Main Index

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.

Main Index

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.

Main Index

$ 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

Main Index

GRID GRID GRID GRID GRID GRID GRID GRID GRID GRID GRID GRID GRID GRID GRID GRID GRID GRID GRID GRID CQUAD4 CQUAD4 CQUAD4 CQUAD4 CQUAD4 CQUAD4 CQUAD4 CQUAD4 CQUAD4 CQUAD4 CQUAD4 CQUAD4 CQUAD4 CQUAD4 CQUAD4 CQUAD4 CQUAD4 CQUAD4 CQUAD4 CQUAD4 CQUAD4 CQUAD4 CQUAD4 CQUAD4 CQUAD4 CQUAD4 CQUAD4 CQUAD4 CQUAD4 CQUAD4 CQUAD4 CQUAD4 CQUAD4 CQUAD4 CQUAD4 CQUAD4 CQUAD4 CQUAD4 CQUAD4 CQUAD4 CQUAD4 CQUAD4 MAT1 +AT1 SPC1 +M00000 SPC1

10405 10500 10501 10502 10503 10504 10505 10600 10601 10602 10603 10604 10605 10700 10701 10702 10703 10704 10705 10706 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 1 1 10006 1

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 30.+6 2 2

3.5 1. 1.1 1.25 1.5 2.1 3.5 1. 1.1 1.25 1.5 2.1 3.5 1. 1.1 1.25 1.5 2.1 3.5 5. 10000 10001 10002 10003 10004 10005 10100 10101 10102 10103 10104 10105 10200 10201 10202 10203 10204 10205 10300 10301 10302 10303 10304 10305 10400 10401 10402 10403 10404 10405 10500 10501 10502 10503 10504 10505 10600 10601 10602 10603 10604 10605 10000 10700

55. 70. 70. 70. 70. 70. 70. 80. 80. 80. 80. 80. 80. 90. 90. 90. 90. 90. 90. 90. 10001 10002 10003 10004 10005 10006 10101 10102 10103 10104 10105 10106 10201 10202 10203 10204 10205 10206 10301 10302 10303 10304 10305 10306 10401 10402 10403 10404 10405 10406 10501 10502 10503 10504 10505 10506 10601 10602 10603 10604 10605 10606 .3 1 10001 10701

0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 10101 10102 10103 10104 10105 10106 10201 10202 10203 10204 10205 10206 10301 10302 10303 10304 10305 10306 10401 10402 10403 10404 10405 10406 10501 10502 10503 10504 10505 10506 10601 10602 10603 10604 10605 10606 10701 10702 10703 10704 10705 10706 10002 10702

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 10100 10101 10102 10103 10104 10105 10200 10201 10202 10203 10204 10205 10300 10301 10302 10303 10304 10305 10400 10401 10402 10403 10404 10405 10500 10501 10502 10503 10504 10505 10600 10601 10602 10603 10604 10605 10700 10701 10702 10703 10704 10705 10003 10703

3456 3456 3456 3456 3456 3456 3456 3456 3456 3456 3456 3456 3456 3456 3456 3456 3456 3456 3456 3456

MAT1 10004 10704 10005 10705 +M00000 +M00001

Main Index

+M00001 GRID GRID GRID GRID GRID GRID GRID CTRIA3 PSHELL GRID GRID RBE3 +BE31 +BE32 RBE3 +BE33 +BE34 FORCE FORCE

10706 10106 0 10206 0 10306 0 10606 0 10506 0 10406 0 10806 50 1 1 1 120 121 51 123 10106 .74948121235 52 123 10606 .74948121234 1 120 2 121

5. .881635 0.0 3456 5. 1.81985 0.0 3456 5. 3.50104 0.0 3456 .881635 5. 0.0 3456 1.81985 5. 0.0 3456 3.50104 5. 0.0 3456 5. 5. 3456 10306 10806 10406 .1 5. 2.5 23456 2.5 5. 13456 120 1 .4408175123 10006 1.309702123 10206 1.590075123 10806 121 2 .4408175123 10706 1.309702123 10506 1.590075123 10806 5.+3 1. 5.+3 1.

.9099256RBE31 10306 RBE32 .9099256RBE33 10406 RBE34

ENDDATA

Main Index

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.

Main Index

MACHINE IBM RS/6000 === Day_Time Elapsed I/O_Mb

MODEL 370/375/37T (gallup)

OPERATING SYSTEM AIX 4.3

MSC.Nastran VERSION 2001.0

BUILD DATE FEB 1, 2001 ===

RUN DATE APR 2, 2001

M S C . N a s t r a n Del_Mb CPU_Sec Del_CPU .0 .0 .0 ID =

E X E C U T I O N Subroutine SEMTRN SEMTRN DBINIT 1 T H E DBSET ----MASTER DBALL OBJSCR SCRATCH SCRATCH SCRATCH DBINIT XCSA T H E DBSET ----MASTER MSCOBJ MSCSOU 2.2 .0 .0 .0 1.1 F I L E XCSA CGPI CGPI LINKER LINKER P R I M A R Y STATUS -----NEW NEW NEW NEW NEW END BGN D E L I V E R Y STATUS -----OLD OLD OLD END BGN END BGN END BGN END BGN

S U M M A R Y

8:39:02 0:00 .0 .0 8:39:02 0:00 .0 .0 8:39:02 0:00 .0 .0 ** CURRENT PROJECT ID = ' "BLANK" ' S U M M A R Y O F F I L E

.0 .0 .0 ** CURRENT VERSION

A S S I G N M E N T

F O R

D A T A B A S E BUFFSIZE -------8193 8193 8193 8193 8193

( DBSNO

1, V2001.0 ) TIME STAMP -----------010402083903 010402083904 010402083905 010402083906 010402083907

ASSIGNED PHYSICAL FILE NAME (/ORIGINAL) --------------------------------------/x/kkk/a101x.T17832_49.MASTER /x/kkk/a101x.T17832_49.DBALL /x/kkk/a101x.T17832_49.OBJSCR **** MEM FILE **** /x/kkk/a101x.T17832_49.SCRATCH /x/kkk/a101x.T17832_49.SCR300 8:39:03 0:01 .0 .0 8:39:03 0:01 .0 .0 S U M M A R Y O F F I L E

LOGICAL NAME -----------MASTER DBALL OBJSCR * N/A * SCRATCH SCR300 .1 .1 .1 .0 F O R

CLUSTER SIZE -----------1 1 1 1 1

A S S I G N M E N T

D A T A B A S E

( DBSNO

2, V2001.0 ) TIME STAMP -----------010330195319 010330195324 010330195325

ASSIGNED PHYSICAL FILE NAME (/ORIGINAL) --------------------------------------/nast/msc2001t1/aix/SSS.MASTERA /./SSS.MASTERA /nast/msc2001t1/aix/SSS.MSCOBJ /./SSS.MSCOBJ /nast/msc2001t1/aix/SSS.MSCSOU /./SSS.MSCSOU 8:39:13 0:11 23.0 23.0 8:39:13 0:11 23.0 .0 8:39:13 0:11 23.0 .0 8:39:13 0:11 23.0 .0 8:39:30 0:28 33.0 10.0 S U M M A R Y O F

LOGICAL NAME -----------MASTERA MSCOBJ MSCSOU 2.3 2.3 2.3 2.3 3.4

BUFFSIZE -------8193 8193 8193

CLUSTER SIZE -----------1 1 1

P H Y S I C A L

I N F O R M A T I O N MODE ---R/W R/W R/W R/W R/W R/O FLAGS ----L G L G L G L G L G

ASSIGNED PHYSICAL FILE NAME -----------------------------------------------------------/x/kkk/a101x.T17832_49.SCRATCH /x/kkk/a101x.T17832_49.OBJSCR /x/kkk/a101x.T17832_49.MASTER /x/kkk/a101x.T17832_49.DBALL /x/kkk/a101x.T17832_49.SCR300 /nast/msc2001t1/aix/SSS.MASTERA

RECL (BYTES) -----------32768 32768 32768 32768 32768 32768

/nast/msc2001t1/aix/SSS.MSCOBJ FLAG VALUES ARE -G FILE ON FILESYSTEM SUPPORTING FILES LARGER THAN 2GB L FILE HAS BEEN LOCKED R FILE BEING ACCESSED IN 'RAW' MODE

32768

R/O

** 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 EXECUTIVE SYSTEM WORK AREA = 218510 MASTER(RAM) = 37922 SCRATCH(MEM) AREA = 819300 BUFFER POOL AREA (GINO/EXEC) = 303511 TOTAL MSC.NASTRAN MEMORY LIMIT = Day_Time 8:39:31 8:39:31 8:39:31 8:39:31 8:39:31 8:39:32 8:39:32 8:39:32 Elapsed I/O_Mb 34.0 35.0 35.0 35.0 35.0 35.0 35.0 35.0 Del_Mb 1.0 1.0 .0 .0 .0 .0 .0 .0 COUNT:ENTRY 42:CQUAD4 2:PARAM .0 .0 .0 .0 .0 .0 .0 1.0 .0 .0 .0 .0 .0 .0 .0 .0 .0 .0 8388604 CPU_Sec WORDS WORDS WORDS WORDS ( WORDS ( WORDS Del_CPU SubDMAP Line (S)SubDMAP/Module XSEMDR BEGN SESTATIC23 (S)IFPL IFPL 35 IFP1 IFPL 76 XSORT IFPL 76 XSORT IFPL 154 (S)IFPS IFPS 14 IFP IFP COUNT:ENTRY 2:FORCE 2:RBE3 IFPS 70 IFPS 77 IFPS 91 IFPL 159 IFPL 160 IFPL 175 IFPL 180 IFPL 210 IFPS1 14 IFPS1 46 IFPS1 49 IFPS1 50 IFPS1 51 IFPS1 52 SESTATIC45 PHASE0 31 PHASE0 32 PHASE0 35 BEGN * BEGN BEGN END BEGN BEGN COUNT:ENTRY 1:GRDSET 2:SPC1 COUNT:ENTRY 59:GRID * * * 4.2 4.2 4.3 4.3 4.4 4.4 4.4 4.4 4.4 4.4 4.4 4.4 4.5 4.5 4.5 4.5 4.5 4.5 .3 .0 .0 .1 .0 .0 .0 .0 .0 .0 .0 .0 .0 .0 .0 .0 .0 .0 MODGM2 BEGN PVT BEGN GP1 BEGN SEPR1 BEGN DBDELETEBEGN PROJVER BEGN PVT BEGN (S)IFPS1 BEGN DTIIN BEGN PLTSET BEGN MSGHAN BEGN MSGHAN BEGN GP0 BEGN MSGHAN BEGN (S)PHASE0 BEGN PVT BEGN PROJVER BEGN DTIIN BEGN

100 BUFFERS) 37 BUFFERS)

0:29 0:29 0:29 0:29 0:29 0:30 0:30 0:30 * COUNT:ENTRY * 1:CORD2C * 1:MAT1 * PARAM: DBCDIAG 8:39:32 0:30 8:39:32 0:30 8:39:32 0:30 8:39:33 0:31 8:39:33 0:31 8:39:33 0:31 8:39:33 0:31 8:39:33 0:31 8:39:33 0:31 8:39:33 0:31 8:39:33 0:31 8:39:33 0:31 8:39:33 0:31 8:39:33 0:31 8:39:33 0:31 8:39:33 0:31 8:39:33 0:31 8:39:33 0:31

3.6 .2 3.7 .0 3.7 .0 3.7 .0 3.9 .2 3.9 .0 3.9 .0 3.9 .0 COUNT:ENTRY 1:CTRIA3 1:PSHELL

POST 35.0 35.0 35.0 35.0 35.0 35.0 35.0 36.0 36.0 36.0 36.0 36.0 36.0 36.0 36.0 36.0 36.0 36.0

8:39:33 0:31 8:39:33 0:31 8:39:34 0:32 8:39:34 0:32 8:39:34 0:32 8:39:34 0:32 8:39:34 0:32 8:39:34 0:32 8:39:34 0:32 8:39:34 0:32 8:39:35 0:33 8:39:35 0:33 8:39:35 0:33 8:39:35 0:33 8:39:35 0:33 8:39:35 0:33 8:39:35 0:33 8:39:35 0:33 8:39:35 0:33 8:39:35 0:33 8:39:35 0:33 8:39:36 0:34 8:39:36 0:34 8:39:36 0:34 8:39:36 0:34 8:39:36 0:34 8:39:36 0:34 8:39:36 0:34 8:39:36 0:34 Data block TEMPALL 8:39:36 0:34 8:39:36 0:34 8:39:36 0:34 8:39:36 0:34 8:39:36 0:34 8:39:36 0:34 8:39:36 0:34 8:39:36 0:34 8:39:36 0:34 8:39:36 0:34 8:39:37 0:35 8:39:37 0:35 8:39:37 0:35 8:39:37 0:35 8:39:37 0:35 8:39:37 0:35 8:39:37 0:35 8:39:37 0:35 8:39:37 0:35 8:39:37 0:35 8:39:37 0:35 8:39:37 0:35

36.0 36.0 36.0 36.0 36.0 36.0 36.0 36.0 36.0 36.0 37.0 37.0 37.0 37.0 37.0 37.0 37.0 37.0 37.0 37.0 37.0 37.0 37.0 37.0 37.0 37.0 38.0 38.0 38.0 has changed. 38.0 38.0 38.0 38.0 38.0 38.0 38.0 38.0 38.0 38.0 38.0 38.0 38.0 38.0 38.0 38.0 38.0 38.0 39.0 39.0 39.0 39.0

.0 .0 .0 .0 .0 .0 .0 .0 .0 .0 1.0 .0 .0 .0 .0 .0 .0 .0 .0 .0 .0 .0 .0 .0 .0 .0 1.0 .0 .0 .0 .0 .0 .0 .0 .0 .0 .0 .0 .0 .0 .0 .0 .0 .0 .0 .0 .0 1.0 .0 .0 .0

4.5 4.6 4.6 4.6 4.6 4.6 4.7 4.7 4.7 4.8 5.0 5.0 5.0 5.0 5.1 5.1 5.1 5.1 5.1 5.2 5.2 5.2 5.2 5.2 5.2 5.3 5.3 5.4 5.4 5.4 5.4 5.4 5.4 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.6 5.7 5.7 5.7 5.7 5.7 5.7 5.8 5.8 5.8 5.8

.0 .0 .0 .0 .0 .0 .0 .1 .0 .0 .2 .0 .0 .0 .0 .0 .0 .0 .0 .0 .1 .0 .0 .0 .0 .0 .1 .0 .0 .0 .0 .0 .0 .0 .0 .0 .0 .0 .0 .0 .1 .1 .0 .0 .0 .0 .0 .0 .0 .0 .0

PHASE0 130 SEP1X PHASE0 145 GP1 PHASE0 150 GP2 PHASE0 165 TA1 PHASE0 166 TASNP2 PHASE0 171 SEP1 PHASE0 192 DBC PHASE0 237 TABPRT PHASE0 238 SEP3 PHASE0 375 PVT PHASE0 804 (S)SETQ PHASE0 924 GP2 PHASE0 937 GPJAC PHASE0 970 GP3 PHASE0 973 LCGEN PHASE0 979 VECPLOT PHASE0 1013 BCDR PHASE0 1014 CASE PHASE0 1015 PVT PHASE0 1051 GP4 PHASE0 1095 MATGEN PHASE0 1096 APPEND PHASE0 1144 BCDR PHASE0 1189 (S)SELA1 PHASE0 1191 UPARTN PHASE0 1275 DBC SESTATIC48 (S)SETQ SESTATIC52 MATGEN SESTATIC53 RESTART SESTATIC55 SESTATIC89 PHASE1DR114 PHASE1DR115 PHASE1DR130 PHASE1DR132 PHASE1A 43 PHASE1A 52 PHASE1A 53 SEMG 25 SEMG 31 SEMG 116 SEMG 169 SEMG 172 SEMG 174 PHASE1A 55 PHASE1A 56 PHASE1A 57 PHASE1A 67 PHASE1A 114 PHASE1A 115 SELG 18

BEGN BEGN BEGN BEGN BEGN BEGN BEGN BEGN BEGN BEGN BEGN BEGN BEGN BEGN BEGN BEGN BEGN BEGN BEGN BEGN BEGN BEGN BEGN BEGN BEGN BEGN BEGN BEGN BEGN

DTIIN BEGN (S)PHASE1DRBEGN PVT BEGN (S)SETQ BEGN (S)DBSETOFFBEGN (S)PHASE1A BEGN TA1 BEGN MSGHAN BEGN (S)SEMG BEGN ELTPRT BEGN EMG BEGN EMA BEGN (S)XMTRXIN BEGN (S)SEMG1 BEGN PROJVER BEGN MSGHAN BEGN MSGHAN BEGN (S)SESUM BEGN VECPLOT BEGN * MSGHAN BEGN (S)SELG BEGN SSG1 BEGN

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

8:39:40 0:38 41.0 .0 8:39:40 0:38 42.0 1.0 8:39:40 0:38 42.0 .0 8:39:40 0:38 42.0 .0 8:39:40 0:38 42.0 .0 8:39:40 0:38 42.0 .0 *** USER INFORMATION MESSAGE 4153 (DFNSB) FBS METHOD S2 TIME ESTIMATE TO FORM UL 8:39:40 0:38 42.0 .0 8:39:40 0:38 42.0 .0 8:39:40 0:38 42.0 .0 8:39:40 0:38 42.0 .0 8:39:40 0:38 42.0 .0 8:39:40 0:38 42.0 .0 8:39:40 0:38 42.0 .0 8:39:40 0:38 43.0 1.0 8:39:40 0:38 43.0 .0 8:39:40 0:38 43.0 .0 8:39:40 0:38 43.0 .0 8:39:40 0:38 43.0 .0 8:39:40 0:38 43.0 .0 8:39:41 0:39 43.0 .0 8:39:41 0:39 43.0 .0 8:39:41 0:39 43.0 .0 8:39:41 0:39 43.0 .0 8:39:41 0:39 43.0 .0 8:39:41 0:39 43.0 .0 8:39:41 0:39 43.0 .0 8:39:41 0:39 43.0 .0 8:39:41 0:39 43.0 .0 8:39:41 0:39 43.0 .0 8:39:41 0:39 43.0 .0 8:39:41 0:39 43.0 .0 8:39:41 0:39 43.0 .0 8:39:41 0:39 43.0 .0 8:39:41 0:39 43.0 .0 8:39:41 0:39 43.0 .0 8:39:41 0:39 43.0 .0 8:39:41 0:39 43.0 .0 8:39:41 0:39 43.0 .0 8:39:41 0:39 43.0 .0 8:39:41 0:39 43.0 .0 8:39:41 0:39 43.0 .0 8:39:42 0:40 43.0 .0 8:39:42 0:40 43.0 .0 8:39:42 0:40 43.0 .0 8:39:42 0:40 43.0 .0 8:39:42 0:40 43.0 .0 8:39:42 0:40 43.0 .0 8:39:42 0:40 43.0 .0 8:39:42 0:40 43.0 .0 8:39:42 0:40 43.0 .0

6.8 6.8 6.8 6.8 6.8 6.8 - CPU= 6.9 6.9 6.9 6.9 6.9 6.9 6.9 6.9 7.0 7.1 7.1 7.1 7.1 7.1 7.2 7.2 7.2 7.2 7.2 7.3 7.3 7.3 7.3 7.3 7.3 7.4 7.5 7.5 7.5 7.5 7.6 7.6 7.7 7.7 7.7 7.8 7.9 7.9 7.9 8.0 8.0 8.0 8.0 8.0

.1 .0 .0 .0 .0 .0

PHASE1C 33 PHASE1C 37 PHASE1C 38 SESTATIC141 STATRS 90 STATRS 95

(S)SESUM (S)SELRRS (S)SESUM (S)STATRS MSGHAN SSG3

BEGN * BEGN * BEGN BEGN * BEGN BEGN 1

0, I/O= 0, TOTAL= 0, PASSES= .0 STATRS 119 MSGHAN BEGN .0 SESTATIC237 PVT BEGN .0 SESTATIC237 PVT END .0 SESTATIC238 APPEND BEGN .0 SESTATIC244 COPY BEGN .0 SESTATIC253 BCDR BEGN .0 SESTATIC254 (S)SESUM BEGN .0 SESTATIC272 (S)SUPER3 BEGN * .1 SUPER3 130 SEP4 BEGN .0 SUPER3 217 SEDRDR BEGN .0 .0 SUPER3 230 PVT BEGN .0 SUPER3 247 SEDR BEGN .0 SUPER3 264 PVT BEGN .0 SUPER3 290 (S)DBSETOFFBEGN .0 SUPER3 310 LCGEN BEGN .0 SUPER3 391 (S)SEDISP BEGN .0 SEDISP 112 BCDR BEGN .0 SEDISP 113 PVT BEGN .1 SEDISP 273 (S)SEGOA BEGN .0 SEDISP 274 SDR1 BEGN .1 SEDISP 360 BCDR BEGN .0 SEDISP 374 COPY BEGN .0 SEDISP 390 COPY BEGN .0 SEDISP 587 (S)SESUM BEGN .1 SUPER3 392 PVT BEGN * .1 SUPER3 600 DBC BEGN .0 SUPER3 604 (S)SEDRCVR BEGN .0 SEDRCVR 45 VECPLOT BEGN .0 SEDRCVR 138 SDR2 BEGN .1 SEDRCVR 141 SDR2 BEGN .0 SEDRCVR 183 SDRX BEGN .1 SEDRCVR 385 (S)GPSTRESSBEGN .0 GPSTRESS10 PLTSET BEGN .0 GPSTRESS12 GPSTR1 BEGN .1 GPSTRESS16 GPSTR2 BEGN .1 GPSTRESS16 GPSTR2 END .0 GPSTRESS18 STDCON BEGN .0 GPSTRESS23 GPSTR2 BEGN .0 SEDRCVR 494 OFP BEGN .0 SEDRCVR 497 OFP BEGN .0 SEDRCVR 501 OFP BEGN .0 SEDRCVR 510 OFP BEGN .0 SEDRCVR 554 OFP BEGN

8:39:42 8:39:42 8:39:42 8:39:42 8:39:42 8:39:42 8:39:42 8:39:42 8:39:42 8:39:43 8:39:43

0:40 0:40 0:40 0:40 0:40 0:40 0:40 0:40 0:40 0:41 0:41

43.0 43.0 43.0 43.0 43.0 43.0 43.0 43.0 43.0 43.0 43.0

.0 .0 .0 .0 .0 .0 .0 .0 .0 .0 .0

8.0 8.1 8.2 8.2 8.2 8.2 8.2 8.2 8.3 8.3 8.3

.0 .1 .0 .0 .0 .0 .0 .0 .0 .0 .0

SEDRCVR 596 SEDRCVR 597 SEDRCVR 598 SEDRCVR 600 SEDRCVR 601 SESTATIC318 PRTSUM 27 PRTSUM 28 PRTSUM 29 SESTATIC319 SESTATIC320

DBC DBC DBC DBC DBC (S)PRTSUM PROJVER DBDICT PRTPARM MSGHAN EXIT

BEGN BEGN BEGN BEGN BEGN BEGN BEGN BEGN BEGN BEGN BEGN

*** TOTAL MEMORY AND DISK USAGE STATISTICS *** +---------- SPARSE SOLUTION MODULES -----------+ HIWATER SUB_DMAP DMAP (WORDS) DAY_TIME NAME MODULE 1475181 08:39:39 SEKRRS 53 DCMP *** DATABASE USAGE STATISTICS *** +------------------ LOGICAL DBSETS ------------------+ DBSET ALLOCATED BLOCKSIZE USED USED (BLOCKS) (WORDS) (BLOCKS) % MASTER DBALL OBJSCR SCRATCH 5000 250000 5000 500100 8192 8192 8192 8192 54 3 117 11 1.08 .00 2.34 .00 +------------------------- DBSET FILES -------------------------+ FILE ALLOCATED HIWATER HIWATER I/O TRANSFERRED (BLOCKS) (BLOCKS) (MB) (GB) MASTER DBALL OBJSCR (MEMFILE SCRATCH SCR300 5000 250000 5000 100 250000 250000 54 3 117 95 1 1 1.688 .094 3.656 2.969 .031 .031 .029 .000 .006 .000) .000 .000 ============== TOTAL: .035 +------------- MAXIMUM DISK USAGE -------------+ HIWATER SUB_DMAP DMAP (MB) DAY_TIME NAME MODULE 5.500 08:39:43 SESTATIC 320 EXIT

*** BUFFER POOL AND SCRATCH 300 USAGE STATISTICS *** +----------------- BUFFER POOL -----------------+ OPTION BLOCKS BLOCKS BLOCKS SELECTED ALLOCATED REUSED RELEASED GINO,EXEC 37 1865 495 *** SUMMARY OF PHYSICAL FILE I/O ACTIVITY *** ASSIGNED PHYSICAL FILE NAME -----------------------------------------------------------/x/kkk/a101x.T17832_49.SCRATCH /x/kkk/a101x.T17832_49.OBJSCR /x/kkk/a101x.T17832_49.MASTER /x/kkk/a101x.T17832_49.DBALL /x/kkk/a101x.T17832_49.SCR300 RECL (BYTES) -----------32768 32768 32768 32768 32768 READ/WRITE COUNT -----------1 185 939 7 1 +-------------------------- SCRATCH 300 --------------------------+ OPTION HIWATER SUB_DMAP DMAP OPN/CLS SELECTED (BLOCKS) DAY_TIME NAME MODULE COUNTER 2 1 8:39:02 PREFACE 0 PREFACE 0

/nast/msc2001t1/aix/SSS.MASTERA /nast/msc2001t1/aix/SSS.MSCOBJ

32768 32768

62 216

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. * * * * * * * * * * * * * * * * * * * * * * * 1 0 0 N A S T R A N F I L E A N D * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 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 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * APRIL P A R A M E T E R * * * * * * * * * * * * * * * * * * * * * * * 2, 2001 MSC.NASTRAN 2/ 1/01 PAGE 1

S Y S T E M

E C H O

1 0 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 APRIL 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

2, 2001

MSC.NASTRAN

2/ 1/01

PAGE

1 0 0

ID MSC, A101X $ JGB $ID TEST,A101 $ EXAMPLE FOR MSC/ACCESS WITHOUT MESH OPTION SOL 101 TIME 6 CEND SQUARE PLATE WITH CIRCULAR HOLE (NO MESH - SOL 101) A101X MEMBRANE PROPERTIES OF QUAD4 AND TRIA3 ELEMENTS C A S E COMMAND COUNT 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 C O N T R O L E C H O

APRIL

2, 2001

MSC.NASTRAN

2/ 1/01

PAGE

0 1 0 0

TITLE=SQUARE PLATE WITH CIRCULAR HOLE (NO MESH - SOL 101) 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 INPUT BULK DATA ENTRY COUNT = 124 SQUARE PLATE WITH CIRCULAR HOLE (NO MESH - SOL 101) A101X APRIL MEMBRANE PROPERTIES OF QUAD4 AND TRIA3 ELEMENTS S O R T E D ENTRY COUNT 1234567891011. 1 .. CORD2C 1 +ORD1 1. CQUAD4 1 CQUAD4 2 CQUAD4 3 CQUAD4 4 CQUAD4 5 CQUAD4 6 CQUAD4 7 CQUAD4 8 CQUAD4 9 2 .. 1 1 1 1 1 1 1 1 1 3 .. 4 .. B U L K 5 .. D A T A 6 .. 7

A101X

2, 2001 E C H O .. 8

MSC.NASTRAN

2/ 1/01

PAGE

.. 1.

.. 10 CORD1

10000 10001 10002 10003 10004 10005 10100 10101 10102

10001 10002 10003 10004 10005 10006 10101 10102 10103

10101 10102 10103 10104 10105 10106 10201 10202 10203

10100 10101 10102 10103 10104 10105 10200 10201 10202

1 0 0

12CQUAD4 10 1 10103 13CQUAD4 11 1 10104 14CQUAD4 12 1 10105 15CQUAD4 13 1 10200 16CQUAD4 14 1 10201 17CQUAD4 15 1 10202 18CQUAD4 16 1 10203 19CQUAD4 17 1 10204 20CQUAD4 18 1 10205 21CQUAD4 19 1 10300 22CQUAD4 20 1 10301 23CQUAD4 21 1 10302 24CQUAD4 22 1 10303 25CQUAD4 23 1 10304 26CQUAD4 24 1 10305 27CQUAD4 25 1 10400 28CQUAD4 26 1 10401 29CQUAD4 27 1 10402 30CQUAD4 28 1 10403 31CQUAD4 29 1 10404 32CQUAD4 30 1 10405 33CQUAD4 31 1 10500 34CQUAD4 32 1 10501 35CQUAD4 33 1 10502 36CQUAD4 34 1 10503 37CQUAD4 35 1 10504 38CQUAD4 36 1 10505 39CQUAD4 37 1 10600 40CQUAD4 38 1 10601 41CQUAD4 39 1 10602 42CQUAD4 40 1 10603 43CQUAD4 41 1 10604 44CQUAD4 42 1 10605 45CTRIA3 50 1 10306 46FORCE 1 120 47FORCE 2 121 48GRDSET 49GRID 120 5. 50GRID 121 2.5 SQUARE PLATE WITH CIRCULAR HOLE (NO MESH - SOL 101) MEMBRANE PROPERTIES OF QUAD4 AND TRIA3 ELEMENTS S O R T E D ENTRY COUNT 51525354555657. 1 GRID GRID GRID GRID GRID GRID GRID .. 2 10000 10001 10002 10003 10004 10005 10006 .. 1 1 1 1 1 1 1 3 .. 4 1. 1.1 1.25 1.5 2.1 3.5 5.

10104 10105 10106 10201 10202 10203 10204 10205 10206 10301 10302 10303 10304 10305 10306 10401 10402 10403 10404 10405 10406 10501 10502 10503 10504 10505 10506 10601 10602 10603 10604 10605 10606 10806 5.+3 5.+3 2.5 5. A101X

10204 10205 10206 10301 10302 10303 10304 10305 10306 10401 10402 10403 10404 10405 10406 10501 10502 10503 10504 10505 10506 10601 10602 10603 10604 10605 10606 10701 10702 10703 10704 10705 10706 10406 1.

10203 10204 10205 10300 10301 10302 10303 10304 10305 10400 10401 10402 10403 10404 10405 10500 10501 10502 10503 10504 10505 10600 10601 10602 10603 10604 10605 10700 10701 10702 10703 10704 10705 1. 3456 23456 13456 2, 2001 E C H O 7 .. 8 3456 3456 3456 3456 3456 3456 3456 .. 9 .. 10 .

APRIL D A T A .. 1 1 1 1 1 1 1

MSC.NASTRAN

2/ 1/01

PAGE

B U L K .. 5 0.0 0.0 0.0 0.0 0.0 0.0 0.0

.. 6 0.0 0.0 0.0 0.0 0.0 0.0 0.0

1 0 0

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

10. 10. 10. 10. 10. 10. .881635 20. 20. 20. 20. 20. 20. 1.81985 35. 35. 35. 35. 35. 35. 3.50104 55. 55. 55. 55. 55. 55. 5. 70. 70. 70. 70. 70. 70. 5. 80. 80. 80. 80. 80. 80. 5. 90. A101X

0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 APRIL D A T A .. 1 1 1 7

3456 3456 3456 3456 3456 3456 3456 3456 3456 3456 3456 3456 3456 3456 3456 3456 3456 3456 3456 3456 3456 3456 3456 3456 3456 3456 3456 3456 3456 3456 3456 3456 3456 3456 3456 3456 3456 3456 3456 3456 3456 3456 3456 2, 2001 E C H O .. 8 3456 3456 3456 ..

MSC.NASTRAN

2/ 1/01

PAGE

B U L K .. 5 90. 90. 90.

.. 6 0.0 0.0 0.0

..

10

1041051061071081091101111121131141151161171181191201211220

GRID GRID GRID GRID MAT1 +AT1 PARAM PARAM PSHELL RBE3 +BE31 +BE32 RBE3 +BE33 +BE34 SPC1 +M00000 SPC1 +M00001 ENDDATA TOTAL COUNT=

10704 10705 10706 10806 1

1 1 1 30.+6

2.1 3.5 5. 5.

90. 90. 90. 5. .3 1

0.0 0.0 0.0

1 1 1

3456 3456 3456 3456 MAT1

DBCDIAG 32 POST 0 1 1 51 123 10106 .74948121235 52 123 10606 .74948121234 1 2 10006 1 2 10706 123 M O D E L

.1 120 1 1.309702123 10806 121 2 1.309702123 10806 10000 10001 10700 10701

.4408175123 10006 10206 1.590075123 .4408175123 10706 10506 1.590075123 10002 10702 10003 10703 10004 10704

.9099256RBE31 10306 RBE32 .9099256RBE33 10406 RBE34 10005 10705 +M00000 +M00001

S U M M A R Y POINTS = 59 42 1 2 APRIL 2, 2001 MSC.NASTRAN 2/ 1/01 PAGE 7

NUMBER OF GRID NUMBER OF CQUAD4 NUMBER OF CTRIA3 1 0 MSC.XL DATA BASE CONVERSION STARTED PRODUCT PROJECT PATHQUAL PATHLINK PATHQUAL PATHLINK PATHINT SUPERS CSTM 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1

ELEMENTS = ELEMENTS =

NUMBER OF RBE3 ELEMENTS = SQUARE PLATE WITH CIRCULAR HOLE (NO MESH - SOL 101) A101X MEMBRANE PROPERTIES OF QUAD4 AND TRIA3 ELEMENTS

0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0

UNDEFORMED GEOMETRY RECOVERY INITIATED UNDEFORMED GEOMETRY RECOVERY FOR SUPERELEMENT PSHELL 1 0 1 MAT1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

POST-PROCESSING DATA RECOVERY INITIATED OUTPUT RECOVERY FOR SUPERELEMENT LOADS DATA RECOVERY INITIATED LOADS DATA RECOVERY FOR SUPERELEMENT 1 0 MSC.XL DATA BASE CONVERSION STARTED PROJECT PATHQUAL PATHLINK PATHINT CSTM 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 A101X APRIL 2, 2001 MSC.NASTRAN 2/ 1/01 PAGE 8 0

MSC.XL DATA BASE CONVERSION FINISHED SQUARE PLATE WITH CIRCULAR HOLE (NO MESH - SOL 101) MEMBRANE PROPERTIES OF QUAD4 AND TRIA3 ELEMENTS

UNDEFORMED GEOMETRY RECOVERY INITIATED UNDEFORMED GEOMETRY RECOVERY FOR SUPERELEMENT GRIDX 1 0 1 CQD4 1 0 1 CTR3 1 0 1 LIMITS 1 0 1 RBE3 1 0 1 RBEPOOL 1 0 1 POST-PROCESSING DATA RECOVERY INITIATED OUTPUT RECOVERY FOR SUPERELEMENT EQEXING 1 0 EQEXINE 1 0 LOADS DATA RECOVERY INITIATED LOADS DATA RECOVERY FOR SUPERELEMENT SID 1 0 FORCE 1 0 FORCE 1 0 SPC1 1 0 1 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 0 1 1 1 1 0 0 0 0 0 1 2 1 A101X 0 0 0 0 0 0 0 0 APRIL 0 0 0 0 2, 2001 0 0 0 0 MSC.NASTRAN 0 0 0 0 2/ 1/01 PAGE 9 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

MSC.XL DATA BASE CONVERSION FINISHED SQUARE PLATE WITH CIRCULAR HOLE (NO MESH - SOL 101) MEMBRANE PROPERTIES OF QUAD4 AND TRIA3 ELEMENTS

SUBCASE/ DAREA ID 0 1

1 0

LOAD TYPE T1 T2 T3 R1 FX 5.000000E+03 ---------FY ---0.000000E+00 ---0.000000E+00 FZ ------0.000000E+00 0.000000E+00 MX ---------0.000000E+00 MY ------------MZ ------------TOTALS 5.000000E+03 0.000000E+00 0.000000E+00 0.000000E+00 2 FX 0.000000E+00 ---------FY ---5.000000E+03 ---0.000000E+00 FZ ------0.000000E+00 0.000000E+00 MX ---------0.000000E+00 MY ------------MZ ------------TOTALS 0.000000E+00 5.000000E+03 0.000000E+00 0.000000E+00 SQUARE PLATE WITH CIRCULAR HOLE (NO MESH - SOL 101) A101X MEMBRANE PROPERTIES OF QUAD4 AND TRIA3 ELEMENTS

R2 R3 0.000000E+00 -1.250000E+04 ---0.000000E+00 0.000000E+00 ---------0.000000E+00 ------0.000000E+00 0.000000E+00 -1.250000E+04 0.000000E+00 0.000000E+00 ---1.250000E+04 0.000000E+00 ---------0.000000E+00 ------0.000000E+00 0.000000E+00 1.250000E+04 APRIL 2, 2001 MSC.NASTRAN

2/ 1/01 SUBCASE 1

PAGE

10

*** 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 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 MEMBRANE PROPERTIES OF QUAD4 AND TRIA3 ELEMENTS 0 MSC.XL DATA BASE CONVERSION STARTED PROJECT PATHQUAL PATHLINK PATHINT 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0

EPSILONS LARGER THAN APRIL

.001 ARE FLAGGED WITH ASTERISKS MSC.NASTRAN 2/ 1/01 PAGE 11

2, 2001

0 0 0 0 1 1

0 0 0 0 0 0

0 0 0 0 0 0

0 0 0 0 0 0

0 0 0 0 0 0

POST-PROCESSING DATA RECOVERY INITIATED SUBCASES 1 0 SUBCASE 1 0 OUTPUT RECOVERY FOR SUPERELEMENT LOADS DATA RECOVERY INITIATED LOADS DATA RECOVERY FOR SUPERELEMENT 1 0

0 A101X APRIL 2, 2001 MSC.NASTRAN 2/ 1/01 PAGE 12

MSC.XL DATA BASE CONVERSION FINISHED SQUARE PLATE WITH CIRCULAR HOLE (NO MESH - SOL 101) MEMBRANE PROPERTIES OF QUAD4 AND TRIA3 ELEMENTS

*** 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. 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 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 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 MEMBRANE PROPERTIES OF QUAD4 AND TRIA3 ELEMENTS 0 MSC.XL DATA BASE CONVERSION STARTED 0 PROJECT PATHQUAL PATHLINK PATHINT 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

PAGE PAGE PAGE

13 14 15

POST-PROCESSING DATA RECOVERY INITIATED OUTPUT RECOVERY FOR SUPERELEMENT SUBGRID 1 0 SUBCTITL 1 0 DISPR 1 0 DISPR 1 0 DISPR 1 0 LOADR 1 0 LOADR 1 0 LOADR 1 0 SPCFR 1 0 SPCFR 1 0 SPCFR 1 0 SOLVE 1 0 SUBELEM 1 0 0 1 1 1 1 1 1 1 1 1 1 1 0 1 0 0 1 2 3 1 2 3 1 2 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

SUBCTITL SQD4R STR3R SQD4R STR3R SQD4R STR3R SOLVE SURFSET SGSPR SGSVR SUBGRID SGSPR SGSVR SGSPR SGSVR SGSPR SGSVR SGSPR SGSVR SGSPR SGSVR

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1

0 1 1 2 2 3 3 0 0 1 1 0 1 1 2 2 2 2 3 3 3 3

0 0 0 0 0 0 0 0 0 1 1 0 7 7 1 1 7 7 1 1 7 7

1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

LOADS DATA RECOVERY INITIATED LOADS DATA RECOVERY FOR SUPERELEMENT 1 0 MSC.XL DATA BASE CONVERSION STARTED PROJECT PATHQUAL PATHLINK PATHINT 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 A101X APRIL 2, 2001 MSC.NASTRAN 2/ 1/01 PAGE 16

MSC.XL DATA BASE CONVERSION FINISHED SQUARE PLATE WITH CIRCULAR HOLE (NO MESH - SOL 101) MEMBRANE PROPERTIES OF QUAD4 AND TRIA3 ELEMENTS

UNDEFORMED GEOMETRY RECOVERY INITIATED UNDEFORMED GEOMETRY RECOVERY FOR SUPERELEMENT POST-PROCESSING DATA RECOVERY INITIATED OUTPUT RECOVERY FOR SUPERELEMENT LOADS DATA RECOVERY INITIATED LOADS DATA RECOVERY FOR SUPERELEMENT 1 0 A101X APRIL 2, 2001 MSC.NASTRAN 2/ 1/01 PAGE 17 0 0

MSC.XL DATA BASE CONVERSION FINISHED SQUARE PLATE WITH CIRCULAR HOLE (NO MESH - SOL 101)

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 * * *

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

Main Index

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 12 1 37 1 42 1 CSTM 1 0 1 8 1 25 1 1 1 CTR3 1 0 1 13 1 40 50 1 1 DDLFORDB 0 0 0 1 2 0 0 5311 5317 DISPR 1 0 1 27 1 80 0 60 1 DISPR 1 0 1 28 1 83 0 60 1 DISPR 1 0 1 29 1 86 0 60 1 EQEXINE 1 0 1 18 1 55 -4 46 1 EQEXING 1 0 1 17 1 52 -1 61 1 FORCE 1 0 1

0 38 1 0 26 1 0 41 1 0 5 0 1 81 1 2 84 1 3 87 1 0 56 1 0 53 1 0

0 12 42 0 24 1 0 10 50 0 0 0 0 7 59 0 7 59 0 7 59 0 2 50 0 3 10806 1

0 0 0 0 1 1 1 0 0 0

0 85 38 0 42 26 0 102 41 0 0 10 0 145 81 0 145 84 0 145 87 0 510 56 0 340 53 0

0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0

FORCE GRIDX LIMITS LOADR LOADR LOADR MAT1 PATHINT PATHLINK PATHQUAL PRODUCT PROJECT PSHELL RBE3 RBEPOOL SGSPR SGSPR

20 120 1 21 121 1 11 120 1 14 0 1 30 0 1 31 0 1 32 0 1 10 1 0 6 1 0 5 1 0 4 -7 0 2 0 0 3 -1 1 9 1 1 15 51 1 16 -1 1 45 -1 1 47

1 1 0 1 1 0 1 59 0 1 1 0 1 60 0 1 60 0 1 60 0 1 1 0 1 4 0 1 4 0 1 8 0 2 23 0 1 2 0 1 1 0 1 2 0 1 11 0 1 59 0 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1

61 1 0 64 1 0 34 1 0 43 1 1 89 1 2 92 1 3 95 1 0 31 1 0 21 1 0 18 1 0 15 1 0 0 24 0 12 1 0 28 1 0 46 1 0 48 1 1 134 1 1 142

62 1 2 65 1 0 35 1 0 44 1 0 90 1 0 93 1 0 96 1 0 32 1 0 22 1 0 19 1 0 16 1 0 11 0 0 13 1 0 29 1 0 47 1 0 49 1 1 135 1 7 143

6 120 0 6 121 0 11 10806 0 7 0 1 7 59 1 7 59 1 7 59 0 12 1 0 21 4 0 7 4 0 2 1 0 0 0 0 16 1 0 11 1 0 5 52 0 15 10 1 4 59 1 4

170 62 0 170 65 0 92 35 0 145 44 0 145 90 0 145 93 0 145 96 0 85 32 0 48 22 0 145 19 0 510 16 0 0 11 0 63 13 0 92 29 0 204 47 0 68 49 0 255 135 0 255

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

-1 SGSPR SGSPR SGSPR SGSPR SGSVR SGSVR SGSVR SGSVR SGSVR SGSVR SID SOLVE SPC1 SPCFR SPCFR SPCFR SQD4R 1 49 -1 1 51 -1 1 53 -1 1 55 -1 1 46 1 1 48 1 1 50 1 1 52 1 1 54 1 1 56 1 1 19 1 1 36 1 1 22 10000 1 33 0 1 34 0 1 35 0 1 38 -1 0 0 0 0 0 0 0 0 0 0 0 0 0

59 1 1 59 1 1 59 1 1 59 1 1 59 1 1 171 1 1 171 1 1 171 1 1 171 1 1 171 1 1 171 1 1 2 0 1 1 1 1 14 0 1 60 0 1 60 0 1 60 0 1 44 1 1 1 1

1 2 149 1 2 156 1 3 163 1 3 170 1 1 137 2 1 145 2 2 152 2 2 159 2 3 166 2 3 173 2 0 58 1 0 107 1 0 67 1 1 98 1 2 101 1 3 104 1 1 113 1

1 1 150 1 7 157 1 1 164 1 7 171 1 1 138 1 7 146 1 1 153 1 7 160 1 1 167 1 7 174 1 0 59 1 0 108 1 1 68 1 0 99 1 0 102 1 0 105 1 0 114 1

59 1 4 59 1 4 59 1 4 59 1 4 59 1 9 171 1 9 171 1 9 171 1 9 171 1 9 171 1 9 171 0 2 2 0 2 1 0 7 10706 1 7 59 1 7 59 1 7 59 1 17 42

143 0 255 150 0 255 157 0 255 164 0 255 171 0 113 140 0 113 148 0 113 155 0 113 162 0 113 169 0 113 176 0 510 59 0 510 108 0 145 68 0 145 99 0 145 102 0 145 105 0 60 114

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

SQD4R SQD4R STR3R STR3R STR3R SUBCASE SUBCASES SUBCTITL SUBELEM SUBGRID SUPERS SURFSET

1 40 -1 1 42 -1 1 39 -1 1 41 -1 1 43 -1 1 24 1 1 23 1 1 26 1 1 37 1 1 25 1 1 7 -7 1 44 1

0 1 44 0 1 44 0 1 3 0 1 3 0 1 3 0 2 4 0 1 3 0 1 3 0 1 3 0 1 3 0 2 1 0 1 2

1 119 1 1 125 1 1 116 1 1 122 1 1 129 1 1 0 5 1 70 1 1 77 1 1 110 1 1 74 1 0 0 2 1 132 1 1

2 120 1 3 126 1 1 117 1 2 123 1 3 130 1 0 73 0 0 71 1 0 78 1 0 111 1 0 75 1 0 24 0 0 133 1 TITLE :

0 17 42 0 17 42 0 17 1 0 17 1 0 17 1 0 0 0 0 8 3 0 97 3 0 28 3 0 29 3 0 0 0 0 3 7

1 1 1 1 1 1 1 1 1 1 0 1

0 60 120 0 60 126 0 60 117 0 60 123 0 60 130 0 0 73 0 127 71 0 10 78 0 36 111 0 35 75 0 0 24 0 340 133

0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0

ACCESS PROJECT 1 NASTRAN RESTART VERSION MSC PRODUCT: NASTRAN RELEASE 2001 MSC.Nastran QUALIFER: 0 QUALIFER: 0 QUALIFER: 0 QUALIFER: 0 PATH INDEX 1 MODEL TYPE:INT SOLID HIGHQUAL AUXMID TYPE:INT TYPE:INT TYPE:INT

NUMBER NUMBER NUMBER NUMBER

1 1 1 1

VALUES FOLLOWING ON NEXT LINE(S) .... VALUES FOLLOWING ON NEXT LINE(S) .... VALUES FOLLOWING ON NEXT LINE(S) .... VALUES FOLLOWING ON NEXT LINE(S) ....

DATA BLOCK CODE 1 DICTIONARY NAME:DISPR PROJECT 1 PATH 1 SEID 0 GRID ID GRID GRID GRID GRID GRID GRID GRID GRID GRID 120 1.83749E-03 ID 121 0.00000E+00 ID 10000 1.10024E-03 ID 10001 1.11034E-03 ID 10002 1.11848E-03 ID 10003 1.13370E-03 ID 10004 1.21602E-03 ID 10005 1.56928E-03 ID 10006 2.02355E-03 ID 10100 1.05410E-03

APPROACH:STATICS SUBCASE 1 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00

(DISPLACEMENT) DESIGN CYCLE 0 P-ITERATION 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00

---0.00000E+00 0.00000E+00 0.00000E+00 ---0.00000E+00 -5.64702E-04 0.00000E+00 ---0.00000E+00 0.00000E+00 0.00000E+00 ---0.00000E+00 0.00000E+00 0.00000E+00 ---0.00000E+00 0.00000E+00 0.00000E+00 ---0.00000E+00 0.00000E+00 0.00000E+00 ---0.00000E+00 0.00000E+00 0.00000E+00 ---0.00000E+00 0.00000E+00 0.00000E+00 ---0.00000E+00 0.00000E+00 0.00000E+00 ---0.00000E+00 -2.59923E-04 0.00000E+00

DATA BLOCK CODE 4 DICTIONARY NAME:SPCFR PROJECT 1 PATH 1 SEID 0 GRID ID GRID GRID GRID GRID GRID GRID GRID GRID GRID 120 0.00000E+00 ID 121 0.00000E+00 ID 10000 0.00000E+00 ID 10001 0.00000E+00 ID 10002 0.00000E+00 ID 10003 0.00000E+00 ID 10004 0.00000E+00 ID 10005 0.00000E+00 ID 10006 0.00000E+00 ID 10100 0.00000E+00

APPROACH:STATICS SUBCASE 1 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00

(CONSTRAINT FORCES) DESIGN CYCLE 0 P-ITERATION 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 (LOAD) DESIGN CYCLE 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0 P-ITERATION

---0.00000E+00 0.00000E+00 0.00000E+00 ---0.00000E+00 0.00000E+00 0.00000E+00 ---0.00000E+00 5.66691E+01 0.00000E+00 ---0.00000E+00 9.93207E+01 0.00000E+00 ---0.00000E+00 8.11467E+01 0.00000E+00 ---0.00000E+00 5.18784E+01 0.00000E+00 ---0.00000E+00 -1.21092E+01 0.00000E+00 ---0.00000E+00 -1.26546E+02 0.00000E+00 ---0.00000E+00 -1.50360E+02 0.00000E+00 ---0.00000E+00 0.00000E+00 0.00000E+00

DATA BLOCK CODE 5 DICTIONARY NAME:LOADR PROJECT 1 PATH 1 SEID 0

APPROACH:STATICS SUBCASE 1

GRID ID GRID GRID GRID GRID GRID GRID GRID GRID GRID

120 5.00000E+03 ID 121 0.00000E+00 ID 10000 0.00000E+00 ID 10001 0.00000E+00 ID 10002 0.00000E+00 ID 10003 0.00000E+00 ID 10004 0.00000E+00 ID 10005 0.00000E+00 ID 10006 0.00000E+00 ID 10100 0.00000E+00

---0.00000E+00 0.00000E+00 0.00000E+00 ---0.00000E+00 0.00000E+00 0.00000E+00 ---0.00000E+00 0.00000E+00 0.00000E+00 ---0.00000E+00 0.00000E+00 0.00000E+00 ---0.00000E+00 0.00000E+00 0.00000E+00 ---0.00000E+00 0.00000E+00 0.00000E+00 ---0.00000E+00 0.00000E+00 0.00000E+00 ---0.00000E+00 0.00000E+00 0.00000E+00 ---0.00000E+00 0.00000E+00 0.00000E+00 ---0.00000E+00 0.00000E+00 0.00000E+00

0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 APPROACH:STATICS SUBCASE 1 1 = Z1 4.81915E+00 2 = Z2 4.81915E+00 3 = MID 4.81915E+00 1 = Z1 9.86067E-01 2 = Z2 9.86067E-01 3 = MID 9.86067E-01 1 = Z1 9.86067E-01 2 = Z2 -6.56650E-01 3 = MID -6.56650E-01 1 = Z1 9.86067E-01 2 = Z2 -2.34253E+00 3 = MID -2.34253E+00 1 = Z1 -6.56650E-01 2 = Z2 -1.45433E+00

0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00

0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0 P-ITERATION 1.24559E+04 1.24559E+04 1.24559E+04 8.38656E+03 8.38656E+03 8.38656E+03 8.38656E+03 4.38386E+03 4.38386E+03 8.38656E+03 2.98627E+03 2.98627E+03 4.38386E+03 5.39064E+03 0

DATA BLOCK CODE 7 DICTIONARY NAME:SGSVR PROJECT 1 PATH 1 SEID 0 GRID ID 10000 -7.94082E+02 GRID ID 10000 -7.94082E+02 GRID ID 10000 -7.94082E+02 GRID ID 10001 -6.21777E+02 GRID ID 10001 -6.21777E+02 GRID ID 10001 -6.21777E+02 GRID ID 10002 -6.21777E+02 GRID ID 10002 -2.14120E+02 GRID ID 10002 -2.14120E+02 GRID ID 10003 -6.21777E+02 GRID ID 10003 1.87503E+03 GRID ID 10003 1.87503E+03 GRID ID 10004 -2.14120E+02 GRID ID 10004 5.39521E+03 ---0.00000E+00 FIBER -1.27099E+04 1.01180E+03 ---0.00000E+00 FIBER -1.27099E+04 1.01180E+03 ---0.00000E+00 FIBER -1.27099E+04 1.01180E+03 ---0.00000E+00 FIBER -8.67669E+03 1.38681E+02 ---0.00000E+00 FIBER -8.67669E+03 1.38681E+02 ---0.00000E+00 FIBER -8.67669E+03 1.38681E+02 ---0.00000E+00 FIBER -8.67669E+03 1.38681E+02 ---0.00000E+00 FIBER -4.48617E+03 -4.89693E+01 ---0.00000E+00 FIBER -4.48617E+03 -4.89693E+01 ---0.00000E+00 FIBER -8.67669E+03 1.38681E+02 ---0.00000E+00 FIBER -1.55681E+03 -1.40624E+02 ---0.00000E+00 FIBER -1.55681E+03 -1.40624E+02 ---0.00000E+00 FIBER -4.48617E+03 -4.89693E+01 ---0.00000E+00 FIBER 1.95853E+01 -1.36566E+02

(GRID POINT STRESS SURFACE) SURFACE ID 1 DESIGN CYCLE -1.27952E+04 -1.27952E+04 -1.27952E+04 -8.67908E+03 -8.67908E+03 -8.67908E+03 -8.67908E+03 -4.48673E+03 -4.48673E+03 -8.67908E+03 -1.56257E+03 -1.56257E+03 -4.48673E+03 1.61182E+01 6.04321E+03 6.04321E+03 6.04321E+03 4.02984E+03 4.02984E+03 4.02984E+03 4.02984E+03 2.13659E+03 2.13659E+03 4.02984E+03 1.72167E+03 1.72167E+03 2.13659E+03 2.69128E+03

-7.08778E+02 -7.08778E+02 -7.08778E+02 -6.19390E+02 -6.19390E+02 -6.19390E+02 -6.19390E+02 -2.13558E+02 -2.13558E+02 -6.19390E+02 1.88078E+03 1.88078E+03 -2.13558E+02 5.39868E+03

GRID ID GRID GRID GRID GRID GRID GRID GRID GRID GRID GRID GRID GRID GRID GRID GRID

10004 5.39521E+03 ID 10005 -2.14120E+02 ID 10005 8.44496E+03 ID 10005 8.44496E+03 ID 10006 -2.14120E+02 ID 10006 1.02669E+04 ID 10006 1.02669E+04 ID 10100 1.87503E+03 ID 10100 -6.69237E+02 ID 10100 -6.69237E+02 ID 10101 1.87503E+03 ID 10101 -1.55507E+01 ID 10101 -1.55507E+01 ID 10102 1.87503E+03 ID 10102 1.11877E+03 ID 10102 1.11877E+03

---0.00000E+00 FIBER 1.95853E+01 -1.36566E+02 ---0.00000E+00 FIBER -4.48617E+03 -4.89693E+01 ---0.00000E+00 FIBER 1.18999E+03 -8.55874E+01 ---0.00000E+00 FIBER 1.18999E+03 -8.55874E+01 ---0.00000E+00 FIBER -4.48617E+03 -4.89693E+01 ---0.00000E+00 FIBER 2.56622E+03 2.26108E+02 ---0.00000E+00 FIBER 2.56622E+03 2.26108E+02 ---0.00000E+00 FIBER -1.55681E+03 -1.40624E+02 ---0.00000E+00 FIBER -1.03717E+04 1.50030E+03 ---0.00000E+00 FIBER -1.03717E+04 1.50030E+03 ---0.00000E+00 FIBER -1.55681E+03 -1.40624E+02 ---0.00000E+00 FIBER -7.05868E+03 -1.90979E+01 ---0.00000E+00 FIBER -7.05868E+03 -1.90979E+01 ---0.00000E+00 FIBER -1.55681E+03 -1.40624E+02 ---0.00000E+00 FIBER -4.09973E+03 -1.20762E+03 ---0.00000E+00 FIBER -4.09973E+03 -1.20762E+03

3 = MID -1.45433E+00 1 = Z1 -6.56650E-01 2 = Z2 -6.75797E-01 3 = MID -6.75797E-01 1 = Z1 -6.56650E-01 2 = Z2 1.68040E+00 3 = MID 1.68040E+00 1 = Z1 -2.34253E+00 2 = Z2 8.59242E+00 3 = MID 8.59242E+00 1 = Z1 -2.34253E+00 2 = Z2 -1.55360E-01 3 = MID -1.55360E-01 1 = Z1 -2.34253E+00 2 = Z2 -1.24179E+01 3 = MID -1.24179E+01

5.39868E+03 -2.13558E+02 8.44597E+03 8.44597E+03 -2.13558E+02 1.02735E+04 1.02735E+04 1.88078E+03 -4.42542E+02 -4.42542E+02 1.88078E+03 -1.54990E+01 -1.54990E+01 1.88078E+03 1.38468E+03 1.38468E+03

1.61182E+01 -4.48673E+03 1.18898E+03 1.18898E+03 -4.48673E+03 2.55959E+03 2.55959E+03 -1.56257E+03 -1.05984E+04 -1.05984E+04 -1.56257E+03 -7.05873E+03 -7.05873E+03 -1.56257E+03 -4.36564E+03 -4.36564E+03

2.69128E+03 2.13659E+03 3.62849E+03 3.62849E+03 2.13659E+03 3.85697E+03 3.85697E+03 1.72167E+03 5.07792E+03 5.07792E+03 1.72167E+03 3.52162E+03 3.52162E+03 1.72167E+03 2.87516E+03 2.87516E+03

5.39064E+03 4.38386E+03 7.91871E+03 7.91871E+03 4.38386E+03 9.26288E+03 9.26288E+03 2.98627E+03 1.03842E+04 1.03842E+04 2.98627E+03 7.05100E+03 7.05100E+03 2.98627E+03 5.19819E+03 5.19819E+03 0 P-ITERATION 1.27912E+04 1.27912E+04 1.27912E+04 8.63429E+03 8.63429E+03 8.63429E+03 8.63429E+03 5.01286E+03 0

DATA BLOCK CODE 7 DICTIONARY NAME:SGSVR PROJECT 1 PATH 1 SEID 0 GRID ID 10000 -4.98782E+02 GRID ID 10000 -4.98782E+02 GRID ID 10000 -4.98782E+02 GRID ID 10001 -4.48765E+02 GRID ID 10001 -4.48765E+02 GRID ID 10001 -4.48765E+02 GRID ID 10002 -4.48765E+02 GRID ID 10002 2.05532E+02 ---0.00000E+00 FIBER -1.30052E+04 4.89390E+02 ---0.00000E+00 FIBER -1.30052E+04 4.89390E+02 ---0.00000E+00 FIBER -1.30052E+04 4.89390E+02 ---0.00000E+00 FIBER -8.84970E+03 -3.52465E+01 ---0.00000E+00 FIBER -8.84970E+03 -3.52465E+01 ---0.00000E+00 FIBER -8.84970E+03 -3.52465E+01 ---0.00000E+00 FIBER -8.84970E+03 -3.52465E+01 ---0.00000E+00 FIBER -4.90582E+03 -6.08948E+01

APPROACH:STATICS SUBCASE 1 1 = Z1 2.23749E+00 2 = Z2 2.23749E+00 3 = MID 2.23749E+00 1 = Z1 -2.40381E-01 2 = Z2 -2.40381E-01 3 = MID -2.40381E-01 1 = Z1 -2.40381E-01 2 = Z2 -6.82471E-01

(GRID POINT STRESS SURFACE) SURFACE ID 7 DESIGN CYCLE -1.30243E+04 -1.30243E+04 -1.30243E+04 -8.84985E+03 -8.84985E+03 -8.84985E+03 -8.84985E+03 -4.90655E+03 6.27232E+03 6.27232E+03 6.27232E+03 4.20062E+03 4.20062E+03 4.20062E+03 4.20062E+03 2.55640E+03

-4.79661E+02 -4.79661E+02 -4.79661E+02 -4.48617E+02 -4.48617E+02 -4.48617E+02 -4.48617E+02 2.06258E+02

GRID ID GRID GRID GRID GRID GRID GRID GRID GRID GRID GRID GRID GRID GRID GRID GRID GRID GRID GRID GRID GRID GRID

10002 2.05532E+02 ID 10003 -4.48765E+02 ID 10003 2.39898E+03 ID 10003 2.39898E+03 ID 10004 2.05532E+02 ID 10004 5.87345E+03 ID 10004 5.87345E+03 ID 10005 2.05532E+02 ID 10005 8.78289E+03 ID 10005 8.78289E+03 ID 10006 2.05532E+02 ID 10006 1.06701E+04 ID 10006 1.06701E+04 ID 10100 2.39898E+03 ID 10100 -3.82434E+02 ID 10100 -3.82434E+02 ID 10101 2.39898E+03 ID 10101 -2.82484E+02 ID 10101 -2.82484E+02 ID 10102 2.39898E+03 ID 10102 4.08827E+02 ID 10102 4.08827E+02

---0.00000E+00 FIBER -4.90582E+03 -6.08948E+01 ---0.00000E+00 FIBER -8.84970E+03 -3.52465E+01 ---0.00000E+00 FIBER -2.08076E+03 -7.16339E+01 ---0.00000E+00 FIBER -2.08076E+03 -7.16339E+01 ---0.00000E+00 FIBER -4.90582E+03 -6.08948E+01 ---0.00000E+00 FIBER -4.58648E+02 -8.23709E+01 ---0.00000E+00 FIBER -4.58648E+02 -8.23709E+01 ---0.00000E+00 FIBER -4.90582E+03 -6.08948E+01 ---0.00000E+00 FIBER 8.52057E+02 -6.17921E+01 ---0.00000E+00 FIBER 8.52057E+02 -6.17921E+01 ---0.00000E+00 FIBER -4.90582E+03 -6.08948E+01 ---0.00000E+00 FIBER 2.16301E+03 2.69041E+02 ---0.00000E+00 FIBER 2.16301E+03 2.69041E+02 ---0.00000E+00 FIBER -2.08076E+03 -7.16339E+01 ---0.00000E+00 FIBER -1.06585E+04 -1.39999E+02 ---0.00000E+00 FIBER -1.06585E+04 -1.39999E+02 ---0.00000E+00 FIBER -2.08076E+03 -7.16339E+01 ---0.00000E+00 FIBER -6.79175E+03 -1.15786E+03 ---0.00000E+00 FIBER -6.79175E+03 -1.15786E+03 ---0.00000E+00 FIBER -2.08076E+03 -7.16339E+01 ---0.00000E+00 FIBER -3.38978E+03 -2.00061E+03 0.00000E+00 FIBER ----3.38978E+03 -2.00061E+03

3 = MID -6.82471E-01 1 = Z1 -2.40381E-01 2 = Z2 -9.15884E-01 3 = MID -9.15884E-01 1 = Z1 -6.82471E-01 2 = Z2 -7.45163E-01 3 = MID -7.45163E-01 1 = Z1 -6.82471E-01 2 = Z2 -4.46377E-01 3 = MID -4.46377E-01 1 = Z1 -6.82471E-01 2 = Z2 1.80959E+00 3 = MID 1.80959E+00 1 = Z1 -9.15884E-01 2 = Z2 -7.80392E-01 3 = MID -7.80392E-01 1 = Z1 -9.15884E-01 2 = Z2 -9.79172E+00 3 = MID -9.79172E+00 1 = Z1 -9.15884E-01 2 = Z2 -2.32440E+01 3 = MID -2.32440E+01

2.06258E+02 -4.48617E+02 2.40012E+03 2.40012E+03 2.06258E+02 5.87452E+03 5.87452E+03 2.06258E+02 8.78337E+03 8.78337E+03 2.06258E+02 1.06786E+04 1.06786E+04 2.40012E+03 -3.80527E+02 -3.80527E+02 2.40012E+03 -8.26587E+01 -8.26587E+01 2.40012E+03 1.26811E+03 1.26811E+03

-4.90655E+03 -8.84985E+03 -2.08191E+03 -2.08191E+03 -4.90655E+03 -4.59719E+02 -4.59719E+02 -4.90655E+03 8.51576E+02 8.51576E+02 -4.90655E+03 2.15450E+03 2.15450E+03 -2.08191E+03 -1.06604E+04 -1.06604E+04 -2.08191E+03 -6.99157E+03 -6.99157E+03 -2.08191E+03 -4.24906E+03 -4.24906E+03

2.55640E+03 4.20062E+03 2.24102E+03 2.24102E+03 2.55640E+03 3.16712E+03 3.16712E+03 2.55640E+03 3.96590E+03 3.96590E+03 2.55640E+03 4.26206E+03 4.26206E+03 2.24102E+03 5.13993E+03 5.13993E+03 2.24102E+03 3.45446E+03 3.45446E+03 2.24102E+03 2.75859E+03 2.75859E+03 0

5.01286E+03 8.63429E+03 3.88481E+03 3.88481E+03 5.01286E+03 6.11735E+03 6.11735E+03 5.01286E+03 8.39006E+03 8.39006E+03 5.01286E+03 9.78099E+03 9.78099E+03 3.88481E+03 1.04753E+04 1.04753E+04 3.88481E+03 6.95061E+03 6.95061E+03 3.88481E+03 5.00509E+03 5.00509E+03

DATA BLOCK CODE 1 DICTIONARY NAME:DISPR PROJECT 1 PATH 1 SEID 0 GRID ID 120 -5.64702E-04 GRID ID 121 0.00000E+00

APPROACH:STATICS SUBCASE 2 0.00000E+00 0.00000E+00

(DISPLACEMENT) DESIGN CYCLE 0 P-ITERATION 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00

---0.00000E+00 0.00000E+00 0.00000E+00 ---0.00000E+00 1.83749E-03 0.00000E+00

GRID ID 10000 -4.17106E-04 GRID ID 10001 -4.43562E-04 GRID ID 10002 -4.64091E-04 GRID ID 10003 -4.78164E-04 GRID ID 10004 -4.98751E-04 GRID ID 10005 -5.90846E-04 GRID ID 10006 -7.20318E-04 GRID ID 10100 -3.71053E-04

---0.00000E+00 0.00000E+00 0.00000E+00 ---0.00000E+00 0.00000E+00 0.00000E+00 ---0.00000E+00 0.00000E+00 0.00000E+00 ---0.00000E+00 0.00000E+00 0.00000E+00 ---0.00000E+00 0.00000E+00 0.00000E+00 ---0.00000E+00 0.00000E+00 0.00000E+00 ---0.00000E+00 0.00000E+00 0.00000E+00 ---0.00000E+00 2.59675E-04 0.00000E+00

0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00

0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00

0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0

DATA BLOCK CODE 4 DICTIONARY NAME:SPCFR PROJECT 1 PATH 1 SEID 0 GRID ID GRID GRID GRID GRID GRID GRID GRID GRID GRID 120 0.00000E+00 ID 121 0.00000E+00 ID 10000 0.00000E+00 ID 10001 0.00000E+00 ID 10002 0.00000E+00 ID 10003 0.00000E+00 ID 10004 0.00000E+00 ID 10005 0.00000E+00 ID 10006 0.00000E+00 ID 10100 0.00000E+00

APPROACH:STATICS SUBCASE 2 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00

(CONSTRAINT FORCES) DESIGN CYCLE 0 P-ITERATION 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 (LOAD) DESIGN CYCLE 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0 P-ITERATION

---0.00000E+00 0.00000E+00 0.00000E+00 ---0.00000E+00 0.00000E+00 0.00000E+00 ---0.00000E+00 -1.56313E+02 0.00000E+00 ---0.00000E+00 -3.31012E+02 0.00000E+00 ---0.00000E+00 -4.12946E+02 0.00000E+00 ---0.00000E+00 -6.65053E+02 0.00000E+00 ---0.00000E+00 -1.22627E+03 0.00000E+00 ---0.00000E+00 -1.51762E+03 0.00000E+00 ---0.00000E+00 -6.90789E+02 0.00000E+00 ---0.00000E+00 0.00000E+00 0.00000E+00

DATA BLOCK CODE 5 DICTIONARY NAME:LOADR PROJECT 1 PATH 1 SEID 0 GRID ID 120 0.00000E+00 GRID ID 121 0.00000E+00 GRID ID 10000 0.00000E+00 GRID ID 10001 0.00000E+00

APPROACH:STATICS SUBCASE 2 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00

---0.00000E+00 0.00000E+00 0.00000E+00 ---0.00000E+00 5.00000E+03 0.00000E+00 ---0.00000E+00 0.00000E+00 0.00000E+00 ---0.00000E+00 0.00000E+00 0.00000E+00

0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00

GRID ID GRID GRID GRID GRID GRID

10002 0.00000E+00 ID 10003 0.00000E+00 ID 10004 0.00000E+00 ID 10005 0.00000E+00 ID 10006 0.00000E+00 ID 10100 0.00000E+00

---0.00000E+00 0.00000E+00 0.00000E+00 ---0.00000E+00 0.00000E+00 0.00000E+00 ---0.00000E+00 0.00000E+00 0.00000E+00 ---0.00000E+00 0.00000E+00 0.00000E+00 ---0.00000E+00 0.00000E+00 0.00000E+00 ---0.00000E+00 0.00000E+00 0.00000E+00

0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 APPROACH:STATICS SUBCASE 2 1 = Z1 -8.75450E+01 2 = Z2 -8.75450E+01 3 = MID -8.75450E+01 1 = Z1 -8.94918E+01 2 = Z2 -8.94918E+01 3 = MID -8.94918E+01 1 = Z1 -8.94918E+01 2 = Z2 -8.99305E+01 3 = MID -8.99305E+01 1 = Z1 -8.94918E+01 2 = Z2 8.95607E+01 3 = MID 8.95607E+01 1 = Z1 -8.99305E+01 2 = Z2 8.93589E+01 3 = MID 8.93589E+01 1 = Z1 -8.99305E+01 2 = Z2 8.95498E+01 3 = MID 8.95498E+01

0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00

0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0 P-ITERATION 3.33656E+04 3.33656E+04 3.33656E+04 2.66461E+04 2.66461E+04 2.66461E+04 2.66461E+04 1.98455E+04 1.98455E+04 2.66461E+04 1.47836E+04 1.47836E+04 1.98455E+04 1.15982E+04 1.15982E+04 1.98455E+04 9.86287E+03 9.86287E+03 0

DATA BLOCK CODE 7 DICTIONARY NAME:SGSVR PROJECT 1 PATH 1 SEID 0 GRID ID GRID GRID GRID GRID GRID GRID GRID GRID GRID GRID GRID GRID GRID GRID GRID GRID GRID 10000 4.62745E+02 ID 10000 4.62745E+02 ID 10000 4.62745E+02 ID 10001 2.13852E+03 ID 10001 2.13852E+03 ID 10001 2.13852E+03 ID 10002 2.13852E+03 ID 10002 3.76291E+03 ID 10002 3.76291E+03 ID 10003 2.13852E+03 ID 10003 3.92687E+03 ID 10003 3.92687E+03 ID 10004 3.76291E+03 ID 10004 2.62550E+03 ID 10004 2.62550E+03 ID 10005 3.76291E+03 ID 10005 9.98008E+02 ID 10005 9.98008E+02 ---0.00000E+00 FIBER 3.35039E+04 -1.41924E+03 ---0.00000E+00 FIBER 3.35039E+04 -1.41924E+03 ---0.00000E+00 FIBER 3.35039E+04 -1.41924E+03 ---0.00000E+00 FIBER 2.76481E+04 -2.26296E+02 ---0.00000E+00 FIBER 2.76481E+04 -2.26296E+02 ---0.00000E+00 FIBER 2.76481E+04 -2.26296E+02 ---0.00000E+00 FIBER 2.76481E+04 -2.26296E+02 ---0.00000E+00 FIBER 2.14575E+04 -2.14732E+01 ---0.00000E+00 FIBER 2.14575E+04 -2.14732E+01 ---0.00000E+00 FIBER 2.76481E+04 -2.26296E+02 ---0.00000E+00 FIBER 1.63497E+04 9.52609E+01 ---0.00000E+00 FIBER 1.63497E+04 9.52609E+01 ---0.00000E+00 FIBER 2.14575E+04 -2.14732E+01 ---0.00000E+00 FIBER 1.26843E+04 1.12570E+02 ---0.00000E+00 FIBER 1.26843E+04 1.12570E+02 ---0.00000E+00 FIBER 2.14575E+04 -2.14732E+01 ---0.00000E+00 FIBER 1.03231E+04 7.32832E+01 ---0.00000E+00 FIBER 1.03231E+04 7.32832E+01

(GRID POINT STRESS SURFACE) SURFACE ID 1 DESIGN CYCLE 3.35647E+04 3.35647E+04 3.35647E+04 2.76501E+04 2.76501E+04 2.76501E+04 2.76501E+04 2.14575E+04 2.14575E+04 2.76501E+04 1.63504E+04 1.63504E+04 2.14575E+04 1.26855E+04 1.26855E+04 2.14575E+04 1.03237E+04 1.03237E+04 4.01896E+02 4.01896E+02 4.01896E+02 2.13651E+03 2.13651E+03 2.13651E+03 2.13651E+03 3.76289E+03 3.76289E+03 2.13651E+03 3.92614E+03 3.92614E+03 3.76289E+03 2.62424E+03 2.62424E+03 3.76289E+03 9.97432E+02 9.97432E+02 1.65814E+04 1.65814E+04 1.65814E+04 1.27568E+04 1.27568E+04 1.27568E+04 1.27568E+04 8.84731E+03 8.84731E+03 1.27568E+04 6.21213E+03 6.21213E+03 8.84731E+03 5.03064E+03 5.03064E+03 8.84731E+03 4.66313E+03 4.66313E+03

GRID ID GRID GRID GRID GRID GRID GRID GRID GRID GRID GRID GRID

10006 3.76291E+03 ID 10006 -8.74269E+01 ID 10006 -8.74269E+01 ID 10100 3.92687E+03 ID 10100 1.44464E+03 ID 10100 1.44464E+03 ID 10101 3.92687E+03 ID 10101 2.52957E+03 ID 10101 2.52957E+03 ID 10102 3.92687E+03 ID 10102 3.19767E+03 ID 10102 3.19767E+03

---0.00000E+00 FIBER 2.14575E+04 -2.14732E+01 ---0.00000E+00 FIBER 8.44391E+03 -7.58213E+01 ---0.00000E+00 FIBER 8.44391E+03 -7.58213E+01 ---0.00000E+00 FIBER 1.63497E+04 9.52609E+01 ---0.00000E+00 FIBER 3.00713E+04 -4.94549E+03 ---0.00000E+00 FIBER 3.00713E+04 -4.94549E+03 ---0.00000E+00 FIBER 1.63497E+04 9.52609E+01 ---0.00000E+00 FIBER 2.50446E+04 -2.80374E+03 ---0.00000E+00 FIBER 2.50446E+04 -2.80374E+03 ---0.00000E+00 FIBER 1.63497E+04 9.52609E+01 ---0.00000E+00 FIBER 2.03124E+04 -9.71655E+02 ---0.00000E+00 FIBER 2.03124E+04 -9.71655E+02

1 = Z1 -8.99305E+01 2 = Z2 -8.94908E+01 3 = MID -8.94908E+01 1 = Z1 8.95607E+01 2 = Z2 -8.04696E+01 3 = MID -8.04696E+01 1 = Z1 8.95607E+01 2 = Z2 -8.30074E+01 3 = MID -8.30074E+01 1 = Z1 8.95607E+01 2 = Z2 -8.67610E+01 3 = MID -8.67610E+01 APPROACH:STATICS SUBCASE 2 1 = Z1 -8.91537E+01 2 = Z2 -8.91537E+01 3 = MID -8.91537E+01 1 = Z1 8.99221E+01 2 = Z2 8.99221E+01 3 = MID 8.99221E+01 1 = Z1 8.99221E+01 2 = Z2 8.98196E+01 3 = MID 8.98196E+01 1 = Z1 8.99221E+01 2 = Z2 8.96955E+01 3 = MID 8.96955E+01

2.14575E+04 8.44458E+03 8.44458E+03 1.63504E+04 3.09016E+04 3.09016E+04 1.63504E+04 2.53885E+04 2.53885E+04 1.63504E+04 2.03674E+04 2.03674E+04

3.76289E+03 -8.81006E+01 -8.81006E+01 3.92614E+03 6.14345E+02 6.14345E+02 3.92614E+03 2.18568E+03 2.18568E+03 3.92614E+03 3.14269E+03 3.14269E+03

8.84731E+03 4.26634E+03 4.26634E+03 6.21213E+03 1.51436E+04 1.51436E+04 6.21213E+03 1.16014E+04 1.16014E+04 6.21213E+03 8.61237E+03 8.61237E+03

1.98455E+04 8.48898E+03 8.48898E+03 1.47836E+04 3.05990E+04 3.05990E+04 1.47836E+04 2.43693E+04 2.43693E+04 1.47836E+04 1.89921E+04 1.89921E+04 0 P-ITERATION 3.32139E+04 3.32139E+04 3.32139E+04 2.63594E+04 2.63594E+04 2.63594E+04 2.63594E+04 2.00239E+04 2.00239E+04 2.63594E+04 1.52012E+04 1.52012E+04 0

DATA BLOCK CODE 7 DICTIONARY NAME:SGSVR PROJECT 1 PATH 1 SEID 0 GRID ID GRID GRID GRID GRID GRID GRID GRID GRID GRID GRID GRID 10000 5.10938E+02 ID 10000 5.10938E+02 ID 10000 5.10938E+02 ID 10001 2.33665E+03 ID 10001 2.33665E+03 ID 10001 2.33665E+03 ID 10002 2.33665E+03 ID 10002 3.63005E+03 ID 10002 3.63005E+03 ID 10003 2.33665E+03 ID 10003 3.59921E+03 ID 10003 3.59921E+03 ---0.00000E+00 FIBER 3.34557E+04 -4.86759E+02 ---0.00000E+00 FIBER 3.34557E+04 -4.86759E+02 ---0.00000E+00 FIBER 3.34557E+04 -4.86759E+02 ---0.00000E+00 FIBER 2.74499E+04 3.41322E+01 ---0.00000E+00 FIBER 2.74499E+04 3.41322E+01 ---0.00000E+00 FIBER 2.74499E+04 3.41322E+01 ---0.00000E+00 FIBER 2.74499E+04 3.41322E+01 ---0.00000E+00 FIBER 2.15904E+04 5.65368E+01 ---0.00000E+00 FIBER 2.15904E+04 5.65368E+01 ---0.00000E+00 FIBER 2.74499E+04 3.41322E+01 ---0.00000E+00 FIBER 1.66773E+04 6.95123E+01 ---0.00000E+00 FIBER 1.66773E+04 6.95123E+01

(GRID POINT STRESS SURFACE) SURFACE ID 7 DESIGN CYCLE 3.34629E+04 3.34629E+04 3.34629E+04 2.74500E+04 2.74500E+04 2.74500E+04 2.74500E+04 2.15905E+04 2.15905E+04 2.74500E+04 1.66777E+04 1.66777E+04 5.03748E+02 5.03748E+02 5.03748E+02 2.33661E+03 2.33661E+03 2.33661E+03 2.33661E+03 3.62987E+03 3.62987E+03 2.33661E+03 3.59884E+03 3.59884E+03 1.64796E+04 1.64796E+04 1.64796E+04 1.25567E+04 1.25567E+04 1.25567E+04 1.25567E+04 8.98033E+03 8.98033E+03 1.25567E+04 6.53943E+03 6.53943E+03

GRID ID GRID GRID GRID GRID GRID GRID GRID GRID GRID GRID GRID GRID GRID GRID GRID GRID GRID

10004 3.63005E+03 ID 10004 2.25541E+03 ID 10004 2.25541E+03 ID 10005 3.63005E+03 ID 10005 7.02545E+02 ID 10005 7.02545E+02 ID 10006 3.63005E+03 ID 10006 -4.29733E+02 ID 10006 -4.29733E+02 ID 10100 3.59921E+03 ID 10100 3.94676E+02 ID 10100 3.94676E+02 ID 10101 3.59921E+03 ID 10101 2.17007E+03 ID 10101 2.17007E+03 ID 10102 3.59921E+03 ID 10102 3.42250E+03 ID 10102 3.42250E+03

---0.00000E+00 FIBER 2.15904E+04 5.65368E+01 ---0.00000E+00 FIBER 1.30543E+04 7.96738E+01 ---0.00000E+00 FIBER 1.30543E+04 7.96738E+01 ---0.00000E+00 FIBER 2.15904E+04 5.65368E+01 ---0.00000E+00 FIBER 1.06186E+04 6.23433E+01 ---0.00000E+00 FIBER 1.06186E+04 6.23433E+01 ---0.00000E+00 FIBER 2.15904E+04 5.65368E+01 ---0.00000E+00 FIBER 8.78622E+03 -2.26735E+02 ---0.00000E+00 FIBER 8.78622E+03 -2.26735E+02 ---0.00000E+00 FIBER 1.66773E+04 6.95123E+01 ---0.00000E+00 FIBER 3.11213E+04 1.39326E+02 ---0.00000E+00 FIBER 3.11213E+04 1.39326E+02 ---0.00000E+00 FIBER 1.66773E+04 6.95123E+01 ---0.00000E+00 FIBER 2.54041E+04 1.15155E+03 ---0.00000E+00 FIBER 2.54041E+04 1.15155E+03 ---0.00000E+00 FIBER 1.66773E+04 6.95123E+01 ---0.00000E+00 FIBER 2.00876E+04 1.98771E+03 ---0.00000E+00 FIBER 2.00876E+04 1.98771E+03

1 = Z1 8.98196E+01 2 = Z2 8.95773E+01 3 = MID 8.95773E+01 1 = Z1 8.98196E+01 2 = Z2 8.96398E+01 3 = MID 8.96398E+01 1 = Z1 8.98196E+01 2 = Z2 -8.85915E+01 3 = MID -8.85915E+01 1 = Z1 8.96955E+01 2 = Z2 8.97402E+01 3 = MID 8.97402E+01 1 = Z1 8.96955E+01 2 = Z2 8.71695E+01 3 = MID 8.71695E+01 1 = Z1 8.96955E+01 2 = Z2 8.32915E+01 3 = MID 8.32915E+01

2.15905E+04 1.30549E+04 1.30549E+04 2.15905E+04 1.06190E+04 1.06190E+04 2.15905E+04 8.79179E+03 8.79179E+03 1.66777E+04 3.11219E+04 3.11219E+04 1.66777E+04 2.54610E+04 2.54610E+04 1.66777E+04 2.03214E+04 2.03214E+04

3.62987E+03 2.25483E+03 2.25483E+03 3.62987E+03 7.02153E+02 7.02153E+02 3.62987E+03 -4.35308E+02 -4.35308E+02 3.59884E+03 3.94044E+02 3.94044E+02 3.59884E+03 2.11314E+03 2.11314E+03 3.59884E+03 3.18870E+03 3.18870E+03

8.98033E+03 5.40005E+03 5.40005E+03 8.98033E+03 4.95840E+03 4.95840E+03 8.98033E+03 4.61355E+03 4.61355E+03 6.53943E+03 1.53639E+04 1.53639E+04 6.53943E+03 1.16739E+04 1.16739E+04 6.53943E+03 8.56636E+03 8.56636E+03 0

2.00239E+04 1.20863E+04 1.20863E+04 2.00239E+04 1.02859E+04 1.02859E+04 2.00239E+04 9.01733E+03 9.01733E+03 1.52012E+04 3.09268E+04 3.09268E+04 1.52012E+04 2.44730E+04 2.44730E+04 1.52012E+04 1.89296E+04 1.89296E+04

DATA BLOCK CODE 1 DICTIONARY NAME:DISPR PROJECT 1 PATH 1 SEID 0 GRID ID GRID GRID GRID GRID GRID 120 1.27279E-03 ID 121 0.00000E+00 ID 10000 6.83135E-04 ID 10001 6.66775E-04 ID 10002 6.54388E-04 ID 10003 6.55541E-04

APPROACH:STATICS SUBCASE 3 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00

(DISPLACEMENT) DESIGN CYCLE 0 P-ITERATION 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00

---0.00000E+00 0.00000E+00 0.00000E+00 ---0.00000E+00 1.27279E-03 0.00000E+00 ---0.00000E+00 0.00000E+00 0.00000E+00 ---0.00000E+00 0.00000E+00 0.00000E+00 ---0.00000E+00 0.00000E+00 0.00000E+00 ---0.00000E+00 0.00000E+00 0.00000E+00

GRID ID

10004 7.17268E-04 GRID ID 10005 9.78437E-04 GRID ID 10006 1.30323E-03 GRID ID 10100 6.83047E-04

---0.00000E+00 0.00000E+00 0.00000E+00 ---0.00000E+00 0.00000E+00 0.00000E+00 ---0.00000E+00 0.00000E+00 0.00000E+00 ---0.00000E+00 -2.47586E-07 0.00000E+00

0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00

0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00

0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0

DATA BLOCK CODE 4 DICTIONARY NAME:SPCFR PROJECT 1 PATH 1 SEID 0 GRID ID GRID GRID GRID GRID GRID GRID GRID GRID GRID 120 0.00000E+00 ID 121 0.00000E+00 ID 10000 0.00000E+00 ID 10001 0.00000E+00 ID 10002 0.00000E+00 ID 10003 0.00000E+00 ID 10004 0.00000E+00 ID 10005 0.00000E+00 ID 10006 0.00000E+00 ID 10100 0.00000E+00

APPROACH:STATICS SUBCASE 3 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00

(CONSTRAINT FORCES) DESIGN CYCLE 0 P-ITERATION 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 (LOAD) DESIGN CYCLE 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0 P-ITERATION

---0.00000E+00 0.00000E+00 0.00000E+00 ---0.00000E+00 0.00000E+00 0.00000E+00 ---0.00000E+00 -9.96435E+01 0.00000E+00 ---0.00000E+00 -2.31691E+02 0.00000E+00 ---0.00000E+00 -3.31799E+02 0.00000E+00 ---0.00000E+00 -6.13174E+02 0.00000E+00 ---0.00000E+00 -1.23838E+03 0.00000E+00 ---0.00000E+00 -1.64417E+03 0.00000E+00 ---0.00000E+00 -8.41149E+02 0.00000E+00 ---0.00000E+00 0.00000E+00 0.00000E+00

DATA BLOCK CODE 5 DICTIONARY NAME:LOADR PROJECT 1 PATH 1 SEID 0 GRID ID GRID GRID GRID GRID GRID GRID GRID 120 5.00000E+03 ID 121 0.00000E+00 ID 10000 0.00000E+00 ID 10001 0.00000E+00 ID 10002 0.00000E+00 ID 10003 0.00000E+00 ID 10004 0.00000E+00 ID 10005 0.00000E+00

APPROACH:STATICS SUBCASE 3 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00

---0.00000E+00 0.00000E+00 0.00000E+00 ---0.00000E+00 5.00000E+03 0.00000E+00 ---0.00000E+00 0.00000E+00 0.00000E+00 ---0.00000E+00 0.00000E+00 0.00000E+00 ---0.00000E+00 0.00000E+00 0.00000E+00 ---0.00000E+00 0.00000E+00 0.00000E+00 ---0.00000E+00 0.00000E+00 0.00000E+00 ---0.00000E+00 0.00000E+00 0.00000E+00

0.00000E+00 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 GRID ID 10100 0.00000E+00

---0.00000E+00 0.00000E+00 0.00000E+00 ---0.00000E+00 0.00000E+00 0.00000E+00

0.00000E+00 0.00000E+00 APPROACH:STATICS SUBCASE 3 1 = Z1 -8.88955E+01 2 = Z2 -8.88955E+01 3 = MID -8.88955E+01 1 = Z1 -8.97124E+01 2 = Z2 -8.97124E+01 3 = MID -8.97124E+01 1 = Z1 -8.97124E+01 2 = Z2 -8.96993E+01 3 = MID -8.96993E+01 1 = Z1 -8.97124E+01 2 = Z2 -8.97109E+01 3 = MID -8.97109E+01 1 = Z1 -8.96993E+01 2 = Z2 -8.97064E+01 3 = MID -8.97064E+01 1 = Z1 -8.96993E+01 2 = Z2 -8.96595E+01 3 = MID -8.96595E+01 1 = Z1 -8.96993E+01 2 = Z2 8.00536E+01 3 = MID 8.00536E+01 1 = Z1

0.00000E+00 0.00000E+00

0.00000E+00 0.00000E+00

DATA BLOCK CODE 7 DICTIONARY NAME:SGSVR PROJECT 1 PATH 1 SEID 0 GRID ID 10000 -3.31337E+02 GRID ID 10000 -3.31337E+02 GRID ID 10000 -3.31337E+02 GRID ID 10001 1.51674E+03 GRID ID 10001 1.51674E+03 GRID ID 10001 1.51674E+03 GRID ID 10002 1.51674E+03 GRID ID 10002 3.54880E+03 GRID ID 10002 3.54880E+03 GRID ID 10003 1.51674E+03 GRID ID 10003 5.80190E+03 GRID ID 10003 5.80190E+03 GRID ID 10004 3.54880E+03 GRID ID 10004 8.02071E+03 GRID ID 10004 8.02071E+03 GRID ID 10005 3.54880E+03 GRID ID 10005 9.44296E+03 GRID ID 10005 9.44296E+03 GRID ID 10006 3.54880E+03 GRID ID 10006 1.01795E+04 GRID ID 10006 1.01795E+04 GRID ID 10100 ---0.00000E+00 FIBER 2.07940E+04 -4.07436E+02 ---0.00000E+00 FIBER 2.07940E+04 -4.07436E+02 ---0.00000E+00 FIBER 2.07940E+04 -4.07436E+02 ---0.00000E+00 FIBER 1.89714E+04 -8.76149E+01 ---0.00000E+00 FIBER 1.89714E+04 -8.76149E+01 ---0.00000E+00 FIBER 1.89714E+04 -8.76149E+01 ---0.00000E+00 FIBER 1.89714E+04 -8.76149E+01 ---0.00000E+00 FIBER 1.69713E+04 -7.04425E+01 ---0.00000E+00 FIBER 1.69713E+04 -7.04425E+01 ---0.00000E+00 FIBER 1.89714E+04 -8.76149E+01 ---0.00000E+00 FIBER 1.47928E+04 -4.53631E+01 ---0.00000E+00 FIBER 1.47928E+04 -4.53631E+01 ---0.00000E+00 FIBER 1.69713E+04 -7.04425E+01 ---0.00000E+00 FIBER 1.27038E+04 -2.39966E+01 ---0.00000E+00 FIBER 1.27038E+04 -2.39966E+01 ---0.00000E+00 FIBER 1.69713E+04 -7.04425E+01 ---0.00000E+00 FIBER 1.15131E+04 -1.23041E+01 ---0.00000E+00 FIBER 1.15131E+04 -1.23041E+01 ---0.00000E+00 FIBER 1.69713E+04 -7.04425E+01 ---0.00000E+00 FIBER 1.10101E+04 1.50287E+02 ---0.00000E+00 FIBER 1.10101E+04 1.50287E+02 ---0.00000E+00 FIBER

(GRID POINT STRESS SURFACE) SURFACE ID 1 DESIGN CYCLE 2.08018E+04 2.08018E+04 2.08018E+04 1.89718E+04 1.89718E+04 1.89718E+04 1.89718E+04 1.69717E+04 1.69717E+04 1.89718E+04 1.47931E+04 1.47931E+04 1.69717E+04 1.27040E+04 1.27040E+04 1.69717E+04 1.15132E+04 1.15132E+04 1.69717E+04 1.10365E+04 1.10365E+04 -3.39193E+02 -3.39193E+02 -3.39193E+02 1.51630E+03 1.51630E+03 1.51630E+03 1.51630E+03 3.54843E+03 3.54843E+03 1.51630E+03 5.80167E+03 5.80167E+03 3.54843E+03 8.02059E+03 8.02059E+03 3.54843E+03 9.44289E+03 9.44289E+03 3.54843E+03 1.01531E+04 1.01531E+04 1.05705E+04 1.05705E+04 1.05705E+04 8.72775E+03 8.72775E+03 8.72775E+03 8.72775E+03 6.71163E+03 6.71163E+03 8.72775E+03 4.49570E+03 4.49570E+03 6.71163E+03 2.34169E+03 2.34169E+03 6.71163E+03 1.03514E+03 1.03514E+03 6.71163E+03 4.41683E+02 4.41683E+02

0 P-ITERATION 2.09735E+04 2.09735E+04 2.09735E+04 1.82609E+04 1.82609E+04 1.82609E+04 1.82609E+04 1.55051E+04 1.55051E+04 1.82609E+04 1.29101E+04 1.29101E+04 1.55051E+04 1.11278E+04 1.11278E+04 1.55051E+04 1.06303E+04 1.06303E+04 1.55051E+04 1.06224E+04 1.06224E+04

GRID ID GRID GRID GRID GRID GRID GRID GRID

5.80190E+03 10100 7.75398E+02 ID 10100 7.75398E+02 ID 10101 5.80190E+03 ID 10101 2.51402E+03 ID 10101 2.51402E+03 ID 10102 5.80190E+03 ID 10102 4.31645E+03 ID 10102 4.31645E+03

1.47928E+04 -4.53631E+01 ---0.00000E+00 FIBER 1.96996E+04 -3.44519E+03 ---0.00000E+00 FIBER 1.96996E+04 -3.44519E+03 ---0.00000E+00 FIBER 1.47928E+04 -4.53631E+01 ---0.00000E+00 FIBER 1.79859E+04 -2.82284E+03 ---0.00000E+00 FIBER 1.79859E+04 -2.82284E+03 ---0.00000E+00 FIBER 1.47928E+04 -4.53631E+01 ---0.00000E+00 FIBER 1.62127E+04 -2.17928E+03 ---0.00000E+00 FIBER 1.62127E+04 -2.17928E+03

-8.97109E+01 2 = Z2 -7.99966E+01 3 = MID -7.99966E+01 1 = Z1 -8.97109E+01 2 = Z2 -7.99765E+01 3 = MID -7.99765E+01 1 = Z1 -8.97109E+01 2 = Z2 -7.99391E+01 3 = MID -7.99391E+01 APPROACH:STATICS SUBCASE 3 1 = Z1 8.99926E+01 2 = Z2 8.99926E+01 3 = MID 8.99926E+01 1 = Z1 -8.99962E+01 2 = Z2 -8.99962E+01 3 = MID -8.99962E+01 1 = Z1 -8.99962E+01 2 = Z2 -8.99806E+01 3 = MID -8.99806E+01 1 = Z1 -8.99962E+01 2 = Z2 -8.99859E+01 3 = MID -8.99859E+01 1 = Z1 -8.99806E+01 2 = Z2 -8.99654E+01 3 = MID -8.99654E+01

1.47931E+04 2.03073E+04 2.03073E+04 1.47931E+04 1.84848E+04 1.84848E+04 1.47931E+04 1.65994E+04 1.65994E+04

5.80167E+03 1.67710E+02 1.67710E+02 5.80167E+03 2.01508E+03 2.01508E+03 5.80167E+03 3.92979E+03 3.92979E+03

4.49570E+03 1.00698E+04 1.00698E+04 4.49570E+03 8.23488E+03 8.23488E+03 4.49570E+03 6.33479E+03 6.33479E+03

1.29101E+04 2.02240E+04 2.02240E+04 1.29101E+04 1.75642E+04 1.75642E+04 1.29101E+04 1.50250E+04 1.50250E+04

DATA BLOCK CODE 7 DICTIONARY NAME:SGSVR PROJECT 1 PATH 1 SEID 0 GRID ID GRID GRID GRID GRID GRID GRID GRID GRID GRID GRID GRID GRID GRID GRID 10000 1.21558E+01 ID 10000 1.21558E+01 ID 10000 1.21558E+01 ID 10001 1.88789E+03 ID 10001 1.88789E+03 ID 10001 1.88789E+03 ID 10002 1.88789E+03 ID 10002 3.83558E+03 ID 10002 3.83558E+03 ID 10003 1.88789E+03 ID 10003 5.99818E+03 ID 10003 5.99818E+03 ID 10004 3.83558E+03 ID 10004 8.12886E+03 ID 10004 8.12886E+03 ---0.00000E+00 FIBER 2.04505E+04 2.63108E+00 ---0.00000E+00 FIBER 2.04505E+04 2.63108E+00 ---0.00000E+00 FIBER 2.04505E+04 2.63108E+00 ---0.00000E+00 FIBER 1.86002E+04 -1.11426E+00 ---0.00000E+00 FIBER 1.86002E+04 -1.11426E+00 ---0.00000E+00 FIBER 1.86002E+04 -1.11426E+00 ---0.00000E+00 FIBER 1.86002E+04 -1.11426E+00 ---0.00000E+00 FIBER 1.66845E+04 -4.35792E+00 ---0.00000E+00 FIBER 1.66845E+04 -4.35792E+00 ---0.00000E+00 FIBER 1.86002E+04 -1.11426E+00 ---0.00000E+00 FIBER 1.45966E+04 -2.12169E+00 ---0.00000E+00 FIBER 1.45966E+04 -2.12169E+00 ---0.00000E+00 FIBER 1.66845E+04 -4.35792E+00 ---0.00000E+00 FIBER 1.25957E+04 -2.69711E+00 ---0.00000E+00 FIBER 1.25957E+04 -2.69711E+00

(GRID POINT STRESS SURFACE) SURFACE ID 7 DESIGN CYCLE 2.04505E+04 2.04505E+04 2.04505E+04 1.86002E+04 1.86002E+04 1.86002E+04 1.86002E+04 1.66845E+04 1.66845E+04 1.86002E+04 1.45966E+04 1.45966E+04 1.66845E+04 1.25957E+04 1.25957E+04 1.21553E+01 1.21553E+01 1.21553E+01 1.88789E+03 1.88789E+03 1.88789E+03 1.88789E+03 3.83558E+03 3.83558E+03 1.88789E+03 5.99818E+03 5.99818E+03 3.83558E+03 8.12886E+03 8.12886E+03 1.02192E+04 1.02192E+04 1.02192E+04 8.35616E+03 8.35616E+03 8.35616E+03 8.35616E+03 6.42448E+03 6.42448E+03 8.35616E+03 4.29919E+03 4.29919E+03 6.42448E+03 2.23342E+03 2.23342E+03

0 P-ITERATION 2.04444E+04 2.04444E+04 2.04444E+04 1.77318E+04 1.77318E+04 1.77318E+04 1.77318E+04 1.51357E+04 1.51357E+04 1.77318E+04 1.27077E+04 1.27077E+04 1.51357E+04 1.10608E+04 1.10608E+04

GRID ID GRID GRID GRID GRID GRID GRID GRID GRID GRID GRID GRID GRID GRID GRID

10005 3.83558E+03 ID 10005 9.48544E+03 ID 10005 9.48544E+03 ID 10006 3.83558E+03 ID 10006 1.02404E+04 ID 10006 1.02404E+04 ID 10100 5.99818E+03 ID 10100 1.22420E+01 ID 10100 1.22420E+01 ID 10101 5.99818E+03 ID 10101 1.88759E+03 ID 10101 1.88759E+03 ID 10102 5.99818E+03 ID 10102 3.83133E+03 ID 10102 3.83133E+03

---0.00000E+00 FIBER 1.66845E+04 -4.35792E+00 ---0.00000E+00 FIBER 1.14706E+04 5.51174E-01 ---0.00000E+00 FIBER 1.14706E+04 5.51174E-01 ---0.00000E+00 FIBER 1.66845E+04 -4.35792E+00 ---0.00000E+00 FIBER 1.09492E+04 4.23056E+01 ---0.00000E+00 FIBER 1.09492E+04 4.23056E+01 ---0.00000E+00 FIBER 1.45966E+04 -2.12169E+00 ---0.00000E+00 FIBER 2.04628E+04 -6.72523E-01 ---0.00000E+00 FIBER 2.04628E+04 -6.72523E-01 ---0.00000E+00 FIBER 1.45966E+04 -2.12169E+00 ---0.00000E+00 FIBER 1.86123E+04 -6.30875E+00 ---0.00000E+00 FIBER 1.86123E+04 -6.30875E+00 ---0.00000E+00 FIBER 1.45966E+04 -2.12169E+00 ---0.00000E+00 FIBER 1.66978E+04 -1.29028E+01 ---0.00000E+00 FIBER 1.66978E+04 -1.29028E+01

1 = Z1 -8.99806E+01 2 = Z2 8.99841E+01 3 = MID 8.99841E+01 1 = Z1 -8.99806E+01 2 = Z2 8.65965E+01 3 = MID 8.65965E+01 1 = Z1 -8.99859E+01 2 = Z2 -8.99981E+01 3 = MID -8.99981E+01 1 = Z1 -8.99859E+01 2 = Z2 -8.99784E+01 3 = MID -8.99784E+01 1 = Z1 -8.99859E+01 2 = Z2 -8.99425E+01 3 = MID -8.99425E+01

1.66845E+04 1.14706E+04 1.14706E+04 1.66845E+04 1.09517E+04 1.09517E+04 1.45966E+04 2.04628E+04 2.04628E+04 1.45966E+04 1.86123E+04 1.86123E+04 1.45966E+04 1.66978E+04 1.66978E+04

3.83558E+03 9.48544E+03 9.48544E+03 3.83558E+03 1.02379E+04 1.02379E+04 5.99818E+03 1.22422E+01 1.22422E+01 5.99818E+03 1.88759E+03 1.88759E+03 5.99818E+03 3.83132E+03 3.83132E+03

6.42448E+03 9.92595E+02 9.92595E+02 6.42448E+03 3.56931E+02 3.56931E+02 4.29919E+03 1.02253E+04 1.02253E+04 4.29919E+03 8.36237E+03 8.36237E+03 4.29919E+03 6.43326E+03 6.43326E+03 0

1.51357E+04 1.06181E+04 1.06181E+04 1.51357E+04 1.06128E+04 1.06128E+04 1.27077E+04 2.04567E+04 2.04567E+04 1.27077E+04 1.77440E+04 1.77440E+04 1.27077E+04 1.51500E+04 1.51500E+04

DATA BLOCK CODE 1 DICT NAME:SQD4R PROJECT 1 PATH 1 SEID ELEM ID -5.00000E-02 5.00000E-02 ELEM ID -5.00000E-02 5.00000E-02 ELEM ID -5.00000E-02 5.00000E-02 ELEM ID -5.00000E-02 5.00000E-02 ELEM ID -5.00000E-02 1 ----3.90633E+02 -3.90633E+02 2 ----3.40616E+02 -3.40616E+02 3 ---9.54975E+02 9.54975E+02 4 ---3.92762E+03 3.92762E+03 5 ---7.59926E+03

ELEM TYPE 1 0 SUBCASE

(STRESS-QUAD4 ) APPROACH:STATICS 1 DESIGN CYCLE 0 P-ITERATION -2.01085E+00 -2.01085E+00 -8.81933E+00 -8.81933E+00 -1.72199E+01 -1.72199E+01 -1.52016E+01 -1.52016E+01 -9.23584E+00 -3.78898E+02 -3.78898E+02 -2.07359E+02 -2.07359E+02 1.32771E+03 1.32771E+03 4.28303E+03 4.28303E+03 7.79439E+03 -9.91020E+03 -9.91020E+03 -5.87624E+03 -5.87624E+03 -2.92535E+03 -2.92535E+03

0.00000E+00 -9.89847E+03 -9.89847E+03 0.00000E+00 -5.74298E+03 -5.74298E+03 0.00000E+00 -2.55262E+03 -2.55262E+03 0.00000E+00 -5.30515E+02 -5.30515E+02 0.00000E+00 4.14896E+02

-3.34236E+02 -3.34236E+02 -8.58873E+02 -8.58873E+02 -1.20264E+03 -1.20264E+03 -1.30795E+03 -1.30795E+03 -1.19995E+03

9.72629E+03 9.72629E+03 5.77536E+03 5.77536E+03 3.76889E+03 3.76889E+03 4.78786E+03 4.78786E+03 7.68685E+03

-8.85918E+02 -8.85918E+02 2.19775E+02

5.00000E-02 ELEM ID -5.00000E-02 5.00000E-02 ELEM ID -5.00000E-02 5.00000E-02 ELEM ID -5.00000E-02 5.00000E-02 ELEM ID -5.00000E-02 5.00000E-02 ELEM ID -5.00000E-02 5.00000E-02

7.59926E+03 6 ---9.48650E+03 9.48650E+03 7 ----2.74285E+02 -2.74285E+02 8 ----1.24403E+02 -1.24403E+02 9 ---1.14535E+03 1.14535E+03 10 ---3.90654E+03 3.90654E+03

4.14896E+02 0.00000E+00 1.72584E+03 1.72584E+03 0.00000E+00 -7.55177E+03 -7.55177E+03 0.00000E+00 -3.97377E+03 -3.97377E+03 0.00000E+00 -1.28974E+03 -1.28974E+03 0.00000E+00 3.63394E+02 3.63394E+02

-1.19995E+03 -8.69122E+02 -8.69122E+02 -9.63625E+02 -9.63625E+02 -2.47472E+03 -2.47472E+03 -3.46623E+03 -3.46623E+03 -3.77900E+03 -3.77900E+03

-9.23584E+00 -6.31242E+00 -6.31242E+00 -7.41639E+00 -7.41639E+00 -2.60632E+01 -2.60632E+01 -3.53229E+01 -3.53229E+01 -3.24416E+01 -3.24416E+01

7.79439E+03 9.58264E+03 9.58264E+03 -1.48851E+02 -1.48851E+02 1.08598E+03 1.08598E+03 3.60166E+03 3.60166E+03 6.30861E+03 6.30861E+03

2.19775E+02 1.62970E+03 1.62970E+03 -7.67720E+03 -7.67720E+03 -5.18415E+03 -5.18415E+03 -3.74605E+03 -3.74605E+03 -2.03868E+03 -2.03868E+03

7.68685E+03 8.88066E+03 8.88066E+03 7.60387E+03 7.60387E+03 5.80385E+03 5.80385E+03 6.36371E+03 6.36371E+03 7.53765E+03 7.53765E+03

DATA BLOCK CODE 1 DICT NAME:STR3R PROJECT 1 PATH 1 SEID ELEM ID -5.00000E-02 5.00000E-02 50 ---3.69424E+01 3.69424E+01

ELEM TYPE 4 0 SUBCASE

(STRESS-TRIA3 ) APPROACH:STATICS 1 DESIGN CYCLE 0 P-ITERATION 8.97883E+01 8.97883E+01 1.00371E+04 1.00371E+04 3.68060E+01 3.68060E+01

0 1.00187E+04 1.00187E+04 0 2.87888E+04 2.87888E+04 2.20620E+04 2.20620E+04 1.67816E+04 1.67816E+04 1.29355E+04 1.29355E+04 1.08112E+04 1.08112E+04

0.00000E+00 1.00370E+04 1.00370E+04

3.69424E+01 3.69424E+01

DATA BLOCK CODE 1 DICT NAME:SQD4R PROJECT 1 PATH 1 SEID ELEM ID -5.00000E-02 5.00000E-02 ELEM ID -5.00000E-02 5.00000E-02 ELEM ID -5.00000E-02 5.00000E-02 ELEM ID -5.00000E-02 5.00000E-02 ELEM ID -5.00000E-02 5.00000E-02 1 ---1.34051E+03 1.34051E+03 2 ---3.16622E+03 3.16622E+03 3 ---3.88633E+03 3.88633E+03 4 ---3.21360E+03 3.21360E+03 5 ---1.49319E+03 1.49319E+03

ELEM TYPE 1 0 SUBCASE

(STRESS-QUAD4 ) APPROACH:STATICS 2 DESIGN CYCLE 0 P-ITERATION 8.93221E+01 8.93221E+01 8.75923E+01 8.75923E+01 8.52934E+01 8.52934E+01 8.32714E+01 8.32714E+01 8.32462E+01 8.32462E+01 2.94338E+04 2.94338E+04 2.34600E+04 2.34600E+04 1.83519E+04 1.83519E+04 1.41914E+04 1.41914E+04 1.14244E+04 1.14244E+04 1.33657E+03 1.33657E+03 3.13034E+03 3.13034E+03 3.78828E+03 3.78828E+03 3.06079E+03 3.06079E+03 1.35391E+03 1.35391E+03

0.00000E+00 2.94299E+04 2.94299E+04 0.00000E+00 2.34241E+04 2.34241E+04 0.00000E+00 1.82539E+04 1.82539E+04 0.00000E+00 1.40386E+04 1.40386E+04 0.00000E+00 1.12852E+04 1.12852E+04

3.32397E+02 3.32397E+02 8.53288E+02 8.53288E+02 1.19096E+03 1.19096E+03 1.29515E+03 1.29515E+03 1.17612E+03 1.17612E+03

ELEM ID -5.00000E-02 5.00000E-02 ELEM ID -5.00000E-02 5.00000E-02 ELEM ID -5.00000E-02 5.00000E-02 ELEM ID -5.00000E-02 5.00000E-02 ELEM ID -5.00000E-02 5.00000E-02

6 ---3.60914E+02 3.60914E+02 7 ---1.22424E+03 1.22424E+03 8 ---2.94933E+03 2.94933E+03 9 ---3.68814E+03 3.68814E+03 10 ---3.21480E+03 3.21480E+03

0.00000E+00 9.45280E+03 9.45280E+03 0.00000E+00 2.70955E+04 2.70955E+04 0.00000E+00 2.16669E+04 2.16669E+04 0.00000E+00 1.70056E+04 1.70056E+04 0.00000E+00 1.31624E+04 1.31624E+04

8.87037E+02 8.87037E+02 9.58482E+02 9.58482E+02 2.46205E+03 2.46205E+03 3.44455E+03 3.44455E+03 3.73574E+03 3.73574E+03

8.44794E+01 8.44794E+01 8.78812E+01 8.78812E+01 8.26305E+01 8.26305E+01 7.63238E+01 7.63238E+01 7.15453E+01 7.15453E+01

9.53853E+03 9.53853E+03 2.71309E+04 2.71309E+04 2.19853E+04 2.19853E+04 1.78438E+04 1.78438E+04 1.44091E+04 1.44091E+04

2.75180E+02 2.75180E+02 1.18878E+03 1.18878E+03 2.63089E+03 2.63089E+03 2.84996E+03 2.84996E+03 1.96812E+03 1.96812E+03 0

9.40396E+03 9.40396E+03 2.65565E+04 2.65565E+04 2.07950E+04 2.07950E+04 1.66033E+04 1.66033E+04 1.35328E+04 1.35328E+04

DATA BLOCK CODE 1 DICT NAME:STR3R PROJECT 1 PATH 1 SEID ELEM ID -5.00000E-02 5.00000E-02 50 ---1.00370E+04 1.00370E+04

ELEM TYPE 4 0 SUBCASE

(STRESS-TRIA3 ) APPROACH:STATICS 2 DESIGN CYCLE 0 P-ITERATION 2.11661E-01 2.11661E-01 1.00371E+04 1.00371E+04 3.68060E+01 3.68060E+01

0.00000E+00 3.69424E+01 3.69424E+01

3.69424E+01 3.69424E+01

1.00187E+04 1.00187E+04 0 1.90742E+04 1.90742E+04 1.64513E+04 1.64513E+04 1.39267E+04 1.39267E+04 1.17048E+04 1.17048E+04 1.06388E+04 1.06388E+04

DATA BLOCK CODE 1 DICT NAME:SQD4R PROJECT 1 PATH 1 SEID ELEM ID -5.00000E-02 5.00000E-02 ELEM ID -5.00000E-02 5.00000E-02 ELEM ID -5.00000E-02 5.00000E-02 ELEM ID -5.00000E-02 5.00000E-02 ELEM ID -5.00000E-02 5.00000E-02 ELEM ID 1 ---9.49873E+02 9.49873E+02 2 ---2.82560E+03 2.82560E+03 3 ---4.84131E+03 4.84131E+03 4 ---7.14122E+03 7.14122E+03 5 ---9.09246E+03 9.09246E+03 6 ----

ELEM TYPE 1 0 SUBCASE

(STRESS-QUAD4 ) APPROACH:STATICS 3 DESIGN CYCLE 0 P-ITERATION -8.99943E+01 -8.99943E+01 -8.99785E+01 -8.99785E+01 -8.99384E+01 -8.99384E+01 -8.98848E+01 -8.98848E+01 -8.94762E+01 -8.94762E+01 1.95314E+04 1.95314E+04 1.76811E+04 1.76811E+04 1.57012E+04 1.57012E+04 1.35081E+04 1.35081E+04 1.17003E+04 1.17003E+04 9.49873E+02 9.49873E+02 2.82560E+03 2.82560E+03 4.84129E+03 4.84129E+03 7.14119E+03 7.14119E+03 9.09224E+03 9.09224E+03

0.00000E+00 1.95314E+04 1.95314E+04 0.00000E+00 1.76811E+04 1.76811E+04 0.00000E+00 1.57012E+04 1.57012E+04 0.00000E+00 1.35081E+04 1.35081E+04 0.00000E+00 1.17000E+04 1.17000E+04 0.00000E+00

-1.83884E+00 -1.83884E+00 -5.58418E+00 -5.58418E+00 -1.16765E+01 -1.16765E+01 -1.28013E+01 -1.28013E+01 -2.38393E+01 -2.38393E+01

-5.00000E-02 5.00000E-02 ELEM ID -5.00000E-02 5.00000E-02 ELEM ID -5.00000E-02 5.00000E-02 ELEM ID -5.00000E-02 5.00000E-02 ELEM ID -5.00000E-02 5.00000E-02

9.84741E+03 9.84741E+03 7 ---9.49959E+02 9.49959E+02 8 ---2.82492E+03 2.82492E+03 9 ---4.83349E+03 4.83349E+03 10 ---7.12134E+03 7.12134E+03

1.11786E+04 1.11786E+04 0.00000E+00 1.95437E+04 1.95437E+04 0.00000E+00 1.76931E+04 1.76931E+04 0.00000E+00 1.57159E+04 1.57159E+04 0.00000E+00 1.35258E+04 1.35258E+04

1.79151E+01 1.79151E+01 -5.14244E+00 -5.14244E+00 -1.26696E+01 -1.26696E+01 -2.16809E+01 -2.16809E+01 -4.32658E+01 -4.32658E+01

8.92291E+01 8.92291E+01 -8.99842E+01 -8.99842E+01 -8.99512E+01 -8.99512E+01 -8.98858E+01 -8.98858E+01 -8.96130E+01 -8.96130E+01

1.11789E+04 1.11789E+04 1.95437E+04 1.95437E+04 1.76931E+04 1.76931E+04 1.57159E+04 1.57159E+04 1.35261E+04 1.35261E+04

9.84717E+03 9.84717E+03 9.49958E+02 9.49958E+02 2.82491E+03 2.82491E+03 4.83345E+03 4.83345E+03 7.12105E+03 7.12105E+03 0

1.05761E+04 1.05761E+04 1.90865E+04 1.90865E+04 1.64634E+04 1.64634E+04 1.39424E+04 1.39424E+04 1.17194E+04 1.17194E+04

DATA BLOCK CODE 1 DICT NAME:STR3R PROJECT 1 PATH 1 SEID ELEM ID -5.00000E-02 5.00000E-02 50 ---1.00739E+04 1.00739E+04

ELEM TYPE 4 0 SUBCASE

(STRESS-TRIA3 ) APPROACH:STATICS 3 DESIGN CYCLE 0 P-ITERATION 4.50000E+01 4.50000E+01 1.01478E+04 1.01478E+04 1.00000E+04 1.00000E+04

0.00000E+00 1.00739E+04 1.00739E+04

7.38849E+01 7.38849E+01

1.00747E+04 1.00747E+04