$ $ 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. $ $ ortx10a.v706 -- 11-30-98 $ $ file ortx10a.v69 compile semceig nolist noref $ $ driver for mass orthogonalization, sol 110 $ eigenvectors scaled so that phit*m*phi=i alter 'ceigrs' $ call orthogx mhh,bhh,khh,cphh// $ cphh returned mass normalized $ alter 'call super3' $ after solution avaialable MTRXIN CASES,MATPOOL,EQDYN,,TFPOOL/,M2PP,/LUSETD/ /S,N,NOM2PPx $ remake m2pp add mgg,m2pp/mpp $ legal only if no epoints smpyad cphp,mpp,cphp,,,/genmx/3////1////6 $ message //'generalized mass computed at system size, genmx' $ matprn genmx// $ $ $ file orhtogx.v69 compile orthogx nolist noref $ subdmap orthogx m,b,k,phi// $ $ orthogolize complex eigenvectors wrt mass $ phi is returned modified. type parm,,char4,y,debug='no' $ paraml phi//'presence'////s,n,nophi $ if (nophi=-1) return $ mpyad m,phi,/mphi $ add phi,mphi/diagptmp///1 $ element mpy, p**[m*p] paraml phi//'trailer'/2/s,n,na $ number of rows in eigenvectors matgen, /ua/6/na/0/na $ unit vector mpyad ua,diagptmp,/tzt/1 $ sum columns trnsp tzt/tz $ diagonal tz/tz1/'whole'/0.5 $ sqrt|xii| $ diagonal tz1/tzinv/'whole'/-1.0 $ inverse matmod tzinv,,,,,/tzz,/28 $ diagonalize mpyad phi,tzz,/phi1 $ equivx phi1/phi/always $ replace old vectors if (debug='yes') then message //'user information message. Scaling factors for'/ ' eigenvectors are:' $ matprn tzinv// $ endif $ return $ end $ orthogx