$ $ THIS ALTER IS CONFIDENTIAL AND A TRADE SECRET OF THE $ MSC.Software CORP. THE RECEIPT OR POSSESSION OF $ THIS ALTER 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 THE MSC.Software CORPORATION. $ echooff $ $ $ updated 5/23/01 - added semtran...tlr $ updated 8-5-99 $ $ gpftrna.v69 - updated for v69 - 9-25-96 $ COMPILE SEDTRAN malter 'AFTER UPSTREAM SUPERELEMENT MATRIX AND LOAD ASSEMBLY' call dbstore kdict,kelm,velem,ptelem,//seid/0/'dball'/0 $ COMPILE SEMTRAN malter 'AFTER UPSTREAM SUPERELEMENT MATRIX AND LOAD ASSEMBLY' call dbstore kdict,kelm,velem,ptelem,//seid/0/'dball'/0 $ COMPILE SEDRCVR $ $ALTER 169 $ after ofp on sort2 data $alter 189 $ v68.2 $alter 'ofp.*oug2f' alter 'ofp.*oug2f.*cardno' TYPE,PARM,,I,Y,DDRMM type parm,,i,n,success $ $ IF((DDRMM >= 0) AND (APP1='MMREIG')) THEN CALL SPLITDVA UH1/UHDISP,,/1/0/0 MPYAD UG,UHDISP,/UGDISP/ $ MPYAD QG,UHDISP,/QGFULL/ $ ELSE CALL SPLITDVA UG/UGDISP,,/1/0/0 $ EQUIVX QG/QGFULL/ALWAYS $ ENDIF call dbfetch /xkdict,xkelm,xvelem,xptelem,/seid/0/1/0/s,success $ GPFDR CASEDR,UGDISP,XKELM,XKDICT,ECTS,EQEXINS,GPECT,PJ1,QGFULL, bgpdts,SILS,CSTMS,XVELEM,XPTELEM/ ,OGPFB1/'REIG '/TINY $ EQUIVX OGPFB1/QGPFB1/ALWAYS $ MESSAGE //' GRID POINT FORCE BALANCE CALCULATIONS HAVE BEEN ALTERED'/ 'INTO THIS TRANSIENT SOLUTION.' MESSAGE //' THE GRID POINT FORCE BALANCE TABLE PRINTED BELOW WILL'/ 'GIVE A "MODE NUMBER" IN LIEU OF A TIME STEP VALUE.' MESSAGE //' WHEN IT REPORTS RESULTS FOR MODE "N", THIS REALLY '/ 'MEANS THE RESULTS FOR THE "NTH" TIME STEP' OFP, ,OGPFB1//S,N,CARDNO $ $ COMPILE SPLITDVA $ SUBDMAP SPLITDVA INMTRX/DISPLS,VELOCS,ACCELS/ GETDISPS/GETVELS/GETACCS $ $ $ SUBDMAP WILL PARTITION OUT DISPLACEMENTS, VELOCITIES, AND/OR $ ACCELERATIONS FROM THE TYPICAL TRANSIENT RESPONSE UGV MATRIX $ WHICH HAS DISPLACEMENTS/VELOCITIES/ACCELERATIONS IN EVERY $ THIRD COLUMN STARTING WITH COLUMN 1/2/3 RESPECTIVELY. CALLING $ ROUTINE CONTROLS WHAT TO EXTRACT: IF PARAMETER GETDISPS > 1 THEN $ IT WILL EXTRACT THE DISPLACEMENTS; IF PARAMTER GETVELS > 1 THEN $ IT WILL EXTRACT THE VELOCITIES, ETC. $ $ TYPE, PARM,,I,N,GETDISPS=0,GETVELS=0,GETACCS=0 $ $ PARAML INMTRX//'PRESENCE'////S,N,ISTHERE $ IF(ISTHERE = -1) THEN MESSAGE //' USER WARNING MESSAGE FROM SUBDMAP SPLITDVA' MESSAGE //' DISPL/VELOC/ACCEL MATRIX INPUT TO SUBDMAP SPLITDVA IS ' MESSAGE //' NOT PRESENT - PLEASE CHECK CALLING ROUTINE. ' MESSAGE //' PREMATURE RETURN FROM SUBROUTINE' RETURN $ ENDIF $ PARAML INMTRX//'TRAILER'/1/S,N,NUMCOLS $ $ $ PARTITION MATRIX ASETDISP INTO THREE SEPARATE DISP/VELO/ACCE $ MATRICES AND MULTIPLY BY KAA/BAA/MAA RESPECTIVELY. USE PATTERN MATRIX $ FROM MATGEN TO PICK EVERY 3RD COLUMN AS APPROPRIATE: $ ROWS 1,4,7,...(NUMCOLZ-2) FOR DISPLACEMENTS $ ROWS 2,5,8,...(NUMCOLZ-1) FOR DISPLACEMENTS $ AND ROWS 3,6,9,...(NUMCOLZ) FOR ACCELERATIONS $ $ DISPLACEMENTS: IF(GETDISPS > 0) THEN MATGEN ,/PM100/4/1/NUMCOLS/0/1/3/1/1/1 $ PATTERN MATRIX (100100...) PARTN INMTRX,PM100,/,,DISPLS,/1/0 $ EXTRACT DISPLS ENDIF $ $ VELOCITIES: IF(GETVELS > 0) THEN MATGEN ,/PM010/4/1/NUMCOLS/0/1/3/2/1/1 $ PATTERN MATRIX (010010...) PARTN INMTRX,PM010,/,,VELOCS,/1/0 $ EXTRACT VELOCS ENDIF $ $ ACCELERATIONS: IF(GETACCS <> -1) THEN $ MATGEN ,/PM001/4/1/NUMCOLS/0/1/3/3/1/1 $ PATTERN MATRIX (001001...) PARTN INMTRX,PM001,/,,ACCELS,/1/0 $ EXTRACT ACCELS ENDIF $ RETURN $ END $ echoon $