$ $ 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. $ $ effmassa.v707 $ $ updated 10-19-99 - output all 6 directions $ $ updated 12-2-97 $ updated for v70 6-5-97 $ echooff $ $ $ $ effmassa.v69 - updated for v69 -- 9-25-96 $ $ effmassa.v69 8-28-96 $ $ alter to calculate modal effective mass and participation factors $ $ by Ted Rose $ June, 1996 $ For V68.2 $ compile semodes $ alter 1 $ putsys(0,192) $ alter 'modefsrs'(,-1) type parm,,i,n,storit=0 call dbstore cstms,bgpdts,,,//0/0/'DBALL'/s,storit $ $ compile moders $ $ alter 'RETURN'(,-1) $ before return statement $ call partfac eqexins,mmaa,pha,uset,lama/garbage/ neigv $ $ compile partfac subdmap partfac eqexins,mmaa,pha,uset,lama/garbage/ neigv $ type parm,,i,n,neigv $ calculate rigid-body vectors $ diagon(8) $ diagon(56) $ $putsys(6,86) $ type parm,,i,y,grdpnt=0 $ type parm,,i,n,gotit call dbfetch /cstms,bgpdts,,,/0/0/0/0/s,gotit $ VECPLOT ,,BGPDTS,EQEXINS,CSTMS,,,,/RBTG1/GRDPNT//4 $ trnsp rbtg1/rbg1 $ UPARTN USET,rbg1/rba,,,/'G'/'A'/'O'/1 $ smpyad pha,mmaa,rba,,,/partfac/3////1 $ diagonal partfac/meff/'whole'/2. $ TYPE PARM,NDDL,RS,Y,(WTMASS) $ type parm,,rs,n,temp $ type parm,,cs,n,convert $ temp=1./wtmass $ convert=cmplx(temp,0.) $ add meff,/meffw/convert $ get modal effective weight LAMX, ,LAMA/LMAT/-1 $ $matprn meff,meffw,lmat// $ type parm,,i,n,icount=0,idof=0 $ type parm,,rs,n,cumefw=0.0 $ $ $ set up headings $ message //'modal effective weight and participation factors' $ message //' ' $ do while(idof<6) $ idof=idof + 1 $ message //' ' $ if(idof=1)message //'Information for the X-direction' $ if(idof=2)message //'Information for the Y-direction' $ if(idof=3)message //'Information for the Z-direction' $ if(idof=4)message //'Information for the theta-x-direction' $ if(idof=5)message //'Information for the theta-y-direction' $ if(idof=6)message //'Information for the theta-z-direction' $ message //' ' $ message //' '/ ' cumulative ' $ message //' mode freq part effective'/ ' effective effective' $ message //' (cps) factor mass '/ ' weight weight' $ message //' ' $ icount = 0 $ cumefw=0.0 $ do while(icount