<!DOCTYPE html
  PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<!--
Copyright (c) 2006 UGS Corp.

All Rights Reserved.

This software and related documentation are proprietary to UGS Corp.
-->
<html>
   <head>
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <title>MALTER</title>
      <script language="javaScript">
        abridged="false";
        displayConditions=new Array();
      </script>
      <link type="text/css" href="../css/main_styles.css" rel="stylesheet">
   </head>
   <body class="bodydocs" onload="top.pageLoader()" bgcolor="#FFFFFF">
      <hr noshade="true">
      <div class="title_refTopic" id="xps10_pagetitle">MALTER </div>
      <hr noshade="true">
      <h4 class="refClassification">Insert and/or Delete DMAP Statements in Solution Sequences </h4>
      <p class="para_refTopic">Inserts or deletes DMAP statements by allowing a global &ldquo;string&rdquo; search across all subDMAPs within the current solution sequence. </p>
      <div class="title_refCategory">Format: </div>
      <div class="refCategoryContent"><pre class="indent">MALTER &lsquo;string1&rsquo;[(occurrence,offset)] , [&lsquo;string2&rsquo;[(occurrence,offset)] ]</pre><p class="para_refCategory">or </p><pre class="indent">MALTER &lsquo;string1&rsquo;[(occurrence,offset)] , [k2]</pre></div>
      <div class="title_refCategory">Describers:</div>
      <div class="refCategoryContent">
         <table cellpadding="10" cellspacing="" width="100%" align="center">
            <colgroup span="1">
               <col span="1" width="27.88*">
               <col span="1" width="72.12*">
            </colgroup>
            <thead>
               <tr>
                  <th align="left" colspan="1" rowspan="1">
                     <p class="para_th"><b class="uiTerm">Describer </b></p>
                  </th>
                  <th align="left" colspan="1" rowspan="1">
                     <p class="para_th"><b class="uiTerm">Meaning </b></p>
                  </th>
               </tr>
            </thead>
            <tbody>
               <tr>
                  <td align="left" colspan="1" rowspan="1" valign="top">
                     <p class="para_td">&lsquo;string1&rsquo; </p>
                  </td>
                  <td align="left" colspan="1" rowspan="1" valign="top">
                     <p class="para_td">If &lsquo;string2&rsquo; or k2 is not specified, the subsequent DMAP statements will be inserted after the first occurrence of &lsquo;string1&rsquo;. </p>
                  </td>
               </tr>
               <tr>
                  <td align="left" colspan="1" rowspan="1" valign="top">
                     <p class="para_td">&lsquo;string1&rsquo;, &lsquo;string2&rsquo; </p>
                  </td>
                  <td align="left" colspan="1" rowspan="1" valign="top">
                     <p class="para_td">DMAP statements beginning with the first occurrence of &lsquo;string1&rsquo; through DMAP statements containing the first occurrence of &lsquo;string2&rsquo; will be deleted and may be replaced with subsequent DMAP statements. </p>
                  </td>
               </tr>
               <tr>
                  <td align="left" colspan="1" rowspan="1" valign="top">
                     <p class="para_td">k2 </p>
                  </td>
                  <td align="left" colspan="1" rowspan="1" valign="top">
                     <p class="para_td">If k2 is specified, it is applied to the subDMAP in which &lsquo;string1&rsquo; was found.  (Integer &gt; 0) </p>
                  </td>
               </tr>
               <tr>
                  <td align="left" colspan="1" rowspan="1" valign="top">
                     <p class="para_td">occurrence </p>
                  </td>
                  <td align="left" colspan="1" rowspan="1" valign="top">
                     <p class="para_td">This flag indicates which occurrence of the preceding string is to be used, starting at the beginning of the subDMAP.  (Integer &gt; 0, Default = 1) </p>
                  </td>
               </tr>
               <tr>
                  <td align="left" colspan="1" rowspan="1" valign="top">
                     <p class="para_td">offset </p>
                  </td>
                  <td align="left" colspan="1" rowspan="1" valign="top">
                     <p class="para_td">This flag indicates the offset from the referenced DMAP statement.  Depending on the sign, the specific DMAP statement may be above (-offset) or below (+offset) the referenced DMAP statement.  (Integer, Default = 0) </p>
                  </td>
               </tr>
            </tbody>
         </table><br></div>
      <div class="title_refCategory">Remarks: </div>
      <div class="refCategoryContent">
         <ol type="1" start="1">
            <li>
               <p class="para_item">If a MALTER statement is used in conjunction with the ALTER statement, then the MALTER should be placed above the COMPILE statements.  Failure to place the MALTER in this position may cause ALTER statements to be ignored. </p>
            </li>
            <li>
               <p class="para_item">The MALTER statement can reference the DMAP statements in any order within a subDMAP.  Two restrictions on ordering are: </p>
               <ul>
                  <li>
                     <p class="para_item">k2 or &lsquo;string2&rsquo;(occurence,offset) references must refer to a DMAP line number that is greater than or equal to the k1 or &lsquo;string1&rsquo;(occurrence,offset) reference within a single MALTER statement. </p>
                  </li>
                  <li>
                     <p class="para_item">&lsquo;string1&rsquo; and k2 or &lsquo;string2&rsquo; cannot overlap DMAP line positions with another MALTER that references the same subDMAP. </p>
                  </li>
               </ul>
            </li>
            <li>
               <p class="para_item">The &lsquo;string1&rsquo; or &lsquo;string2&rsquo; used as a search pattern will apply to one complete DMAP statement-i.e., a multiline DMAP statement will be searched for a pattern match as if each 72 character line of the DMAP statement were concatenated together into one string. All blanks and comments (either embedded or immediately preceding the DMAP statement) will be retained. </p>
            </li>
            <li>
               <p class="para_item">The special characters used for string searching are described in Remark <a class="links" href="javascript:void(0)" onclick="top.openFile('QRG/04ref64485_20.html#refQIxdl3b5juli');return(false);">26-9. </a> The characters &lt;, &gt;, and $, which are common DMAP characters, are also special meta characters.  If they are to be used in the search string as regular characters, then they must be preceded by a backward slash (\).  For example, to find the string 
               </p><pre class="indent">IF (DDRMM &gt;=-1)</pre><p class="para_item">the command is </p><pre class="indent">ALTER &lsquo;IF (DDRMM \&gt;=-1)&rsquo; $</pre></li>
            <li>
               <p class="para_item">&lsquo;string2&rsquo; (r2,02) can be defaulted to &lsquo;string1&rsquo; (r1,01) by using a null string (&lsquo;&rsquo;).  For example, the alter statement </p><pre class="indent">MALTER &lsquo;string1&rsquo;(r1,01),&lsquo;&rsquo;</pre><p class="para_item">is equivalent to </p><pre class="indent">MALTER &lsquo;string1&rsquo;(r1,01),&lsquo;string1&rsquo;(r1,01)</pre><p class="para_item">The defaults for (r2,02) using the null string can be overridden by specifying (r2,02). </p>
               <p class="para_item">As another example, the alter statement </p><pre class="indent">MALTER &lsquo;string1&rsquo;(r1,01),&lsquo;&rsquo;(r2,02)</pre><p class="para_item">is equivalent to </p><pre class="indent">MALTER &lsquo;string1&rsquo;(r1,01),&lsquo;string1&rsquo;(r2,02)</pre></li>
            <li>
               <p class="para_item">The existing COMPILE statement options, such as LIST, XREF, SOUIN, etc., cannot be directly specified on the new MALTER statement.  They are obtained as follows: </p>
               <ul>
                  <li>
                     <p class="para_item">If a COMPILE statement exists for the subDMAP referenced by the MALTER, then options from this COMPILE statement will be used. </p>
                  </li>
                  <li>
                     <p class="para_item">Else, they will be taken from the COMPILER statement, provided the LIST, and SORT option is always on. </p>
                  </li>
               </ul>
            </li>
            <li>
               <p class="para_item">The MALTER string search order is as follows: </p>
               <ul>
                  <li>
                     <p class="para_item">All COMPILE statement references that are part of the existing solution sequence (i.e., SOL=) are searched first. </p>
                  </li>
                  <li>
                     <p class="para_item">Then, all remaining subDMAPs in the solution sequence are searched in ascending alphabetical order. </p>
                  </li>
                  <li>
                     <p class="para_item">Within a subDMAP, both &lsquo;string1&rsquo; and &lsquo;string2&rsquo; will be used to search for a pattern match starting at the beginning of the subDMAP, not at the current position of the last string match. </p>
                  </li>
               </ul>
            </li>
            <li>
               <p class="para_item">The MALTER statement must not exceed 72 characters (no continuations are allowed). </p>
            </li>
            <li><a name="refQIxdl3b5juli"></a><p class="para_item">Meta characters: </p>
               <table cellpadding="8" cellspacing="" width="100%" align="center">
                  <colgroup span="1">
                     <col span="1" width="17.61*">
                     <col span="1" width="82.39*">
                  </colgroup>
                  <tbody>
                     <tr>
                        <td align="left" colspan="1" rowspan="1" valign="top">
                           <p class="para_td">. </p>
                        </td>
                        <td align="left" colspan="1" rowspan="1" valign="top">
                           <p class="para_td">Matches any <em>single</em> character except <em>newline</em>. 
                           </p>
                        </td>
                     </tr>
                     <tr>
                        <td align="left" colspan="1" rowspan="1" valign="top">
                           <p class="para_td">* </p>
                        </td>
                        <td align="left" colspan="1" rowspan="1" valign="top">
                           <p class="para_td">Matches any number (including zero) of the single character (including a character specified by a regular expression) that immediately precedes it.  For example, since &ldquo;.&rdquo; (dot) means any character, &ldquo;.*&rdquo; means &ldquo;match any number of characters.&rdquo; </p>
                        </td>
                     </tr>
                     <tr>
                        <td align="left" colspan="1" rowspan="1" valign="top">
                           <p class="para_td">[...] <br>or &lt; &gt; 
                           </p>
                        </td>
                        <td align="left" colspan="1" rowspan="1" valign="top">
                           <p class="para_td">Matches any <em>one</em> of the characters enclosed between the brackets.  For example, &ldquo;[AB]&rdquo; matches either &ldquo;A&rdquo; or &ldquo;B&rdquo;.  A range of consecutive characters can be specified by separating the first and last characters in the range with a hyphen.  For example &ldquo;[A-Z]&rdquo; will match any uppercase letter from A to Z and &ldquo;[0-9]&rdquo; will match any digit from 0 to 9.  Some meta characters lose special meaning inside brackets.  A circumflex (^) as the first character in the bracket tries to match any one character <em>not</em> in the list. 
                           </p>
                        </td>
                     </tr>
                     <tr>
                        <td align="left" colspan="1" rowspan="1" valign="top">
                           <p class="para_td">^ or ! <br>or <sup class="superscript">_</sup><sub class="subscript">|</sub></p>
                        </td>
                        <td align="left" colspan="1" rowspan="1" valign="top">
                           <p class="para_td">Requires that the following regular expression be found at the beginning of the line. </p>
                        </td>
                     </tr>
                     <tr>
                        <td align="left" colspan="1" rowspan="1" valign="top">
                           <p class="para_td">$ </p>
                        </td>
                        <td align="left" colspan="1" rowspan="1" valign="top">
                           <p class="para_td">Requires that the preceding regular expression be found at the end of the line. </p>
                        </td>
                     </tr>
                     <tr>
                        <td align="left" colspan="1" rowspan="1" valign="top">
                           <p class="para_td">\ </p>
                        </td>
                        <td align="left" colspan="1" rowspan="1" valign="top">
                           <p class="para_td">Treats the following special character as an ordinary character.  For example &ldquo; \.&rdquo; stands for a period and &ldquo; \*&rdquo; for an asterisk.  Also, to search for a tic (&rsquo;), the search string must be &ldquo; \&rsquo; &rdquo;. </p>
                        </td>
                     </tr>
                     <tr>
                        <td align="left" colspan="1" rowspan="1" valign="top">
                           <p class="para_td">&rsquo; </p>
                        </td>
                        <td align="left" colspan="1" rowspan="1" valign="top">
                           <p class="para_td">Marks the beginning and end of a pattern to be matched. </p>
                        </td>
                     </tr>
                     <tr>
                        <td align="left" colspan="2" rowspan="1">
                           <table border="0">
                              <tr>
                                 <td valign="top" align="left"><img align="left" src="../graphics/note.gif" alt="Note" title="Note"></td>
                                 <td valign="bottom" align="left" width="100%">
                                    <div class="para_note">
                                       <p class="para_note_body">Nonportable characters such as ^ and [ ] should be replaced (e.g., ^ &rarr; ! and [] &rarr; &lt;&gt;) if portability is required.  However, all the above characters are recognized by NX Nastran. </p>
                                    </div>
                                 </td>
                              </tr>
                           </table>
                        </td>
                     </tr>
                  </tbody>
               </table><br></li>
            <li>
               <p class="para_item">Labels for use with the MALTER have been included in the solution sequences.  See <a class="links" href="javascript:void(0)" onclick="top.openFile('QRG/04ref64485_20.html#ref62485');return(false);">Table 3-1</a>.  These labels will be maintained in future versions and it is strongly suggested that alters which use the MALTER command take advantage of the unique MALTER labels.  Use of the MALTER labels will significantly reduce the time required to convert alters between versions. 
               </p><a name="ref62485"></a><div class="title_tableWrapper">Table 3-1. DMAP Labels and Corresponding SubDMAP Positions </div>
               <table border="1" cellpadding="5" width="100%" align="center">
                  <colgroup span="1">
                     <col span="1" width="100*">
                  </colgroup>
                  <thead>
                     <tr>
                        <th align="center" colspan="1" rowspan="1">
                           <p class="para_th"><b class="uiTerm">DMAP MALTER Labels </b></p>
                        </th>
                     </tr>
                  </thead>
                  <tbody>
                     <tr>
                        <td align="left" colspan="1" rowspan="1" valign="top"><pre class="indent">$MALTER:AFTER PREFACE MODULES</pre></td>
                     </tr>
                     <tr>
                        <td align="left" colspan="1" rowspan="1" valign="top"><pre class="indent">$MALTER:TOP OF PHASE 1 SUPERELEMENT LOOP, AFTER PARAMETERS AND QUALIFIERS SET</pre></td>
                     </tr>
                     <tr>
                        <td align="left" colspan="1" rowspan="1" valign="top"><pre class="indent">$MALTER:AFTER SUPERELEMENT STIFFNESS, VISCOUS DAMPING, MASS, AND 
ELEMENT STRUCTURAL DAMPING GENERATION (KJJZ, BJJZ, MJJZ, K4JJ)</pre></td>
                     </tr>
                     <tr>
                        <td align="left" colspan="1" rowspan="1" valign="top"><pre class="indent">$MALTER:AFTER X2GG MATRICES READ (K2JJ, M2JJ, B2JJ)</pre></td>
                     </tr>
                     <tr>
                        <td align="left" colspan="1" rowspan="1" valign="top"><pre class="indent">$MALTER:AFTER TOTAL SUPERELEMENT STIFFNESS, VISCOUS DAMPING, AND MASS FORMULATED, STRUCTURAL
 + DIRECT INPUT</pre></td>
                     </tr>
                     <tr>
                        <td align="left" colspan="1" rowspan="1" valign="top"><pre class="indent">$MALTER:AFTER SUPERELEMENT LOAD GENERATION (PJ)</pre></td>
                     </tr>
                     <tr>
                        <td align="left" colspan="1" rowspan="1" valign="top"><pre class="indent">$MALTER:AFTER UPSTREAM SUPERELEMENT MATRIX AND LOAD ASSEMBLY (KGG, BGG, MGG, K4GG, PG)</pre></td>
                     </tr>
                     <tr>
                        <td align="left" colspan="1" rowspan="1" valign="top"><pre class="indent">$MALTER:AFTER SUPERELEMENT MATRIX AND LOAD REDUCTION TO A-SET, 
STATIC AND DYNAMIC (KAA, KLAA, MAA, MLAA, BAA, K4AA, PA)</pre></td>
                     </tr>
                     <tr>
                        <td align="left" colspan="1" rowspan="1" valign="top"><pre class="indent">$MALTER:BOTTOM OF PHASE 1 SUPERELEMENT LOOP</pre></td>
                     </tr>
                     <tr>
                        <td align="left" colspan="1" rowspan="1" valign="top"><pre class="indent">$MALTER:AFTER X2PP MATRICES READ (K2PP, M2PP, B2PP)</pre></td>
                     </tr>
                     <tr>
                        <td align="left" colspan="1" rowspan="1" valign="top"><pre class="indent">$MALTER:AFTER SUPERELEMENT DISPLACEMENT RECOVERY (UG)</pre></td>
                     </tr>
                     <tr>
                        <td align="left" colspan="1" rowspan="1" valign="top"><pre class="indent">$MALTER:AFTER ELEMENT STRESS, STRAIN, ETC. DATA RECOVERY, SORT1 (OUGV1, OES1, OEF1, ETC.)</pre></td>
                     </tr>
                     <tr>
                        <td align="left" colspan="1" rowspan="1" valign="top"><pre class="indent">$MALTER:AFTER ELEMENT STRESS, STRAIN, ETC. DATA RECOVERY, SORT2 (OUGV2, OES2, OEF2, ETC.)</pre></td>
                     </tr>
                     <tr>
                        <td align="left" colspan="1" rowspan="1" valign="top"><pre class="indent">$MALTER:BOTTOM OF SUPERELEMENT DATA RECOVERY LOOP</pre></td>
                     </tr>
                     <tr>
                        <td align="left" colspan="1" rowspan="1" valign="top"><pre class="indent">$MALTER:USERDMAP - AFTER CALL PREFACE</pre></td>
                     </tr>
                  </tbody>
               </table><br></li>
         </ol>
      </div>
      <div class="title_refCategory">Examples: </div>
      <div class="refCategoryContent">
         <ol type="1" start="1">
            <li>
               <p class="para_item">The following MALTER will insert a MATPRN DMAP statement to print the KJJ matrix for each superelement. </p><pre class="indent">SOL 101
MALTER &lsquo;MALTER:AFTER SUPERELEMENT STIFFNESS .* GENERATION&rsquo;
MESSAGE //&lsquo;SEID=&rsquo;/SEID $
MATPRN KJJZ/ $</pre></li>
            <li>
               <p class="para_item">The following MALTER will add a user DMAP after the PREFACE modules in SOL 100 (USERDMAP). </p><pre class="indent">SOL 101
MALTER &lsquo;AFTER CALL PREFACE&rsquo;
.
.
.</pre></li>
         </ol>
      </div>
   </body>
</html>