$ lanbpa.v2004 mag January 22, 2004 production version $ allow stable buckling solutions when LMT variables are present. Compile statrs nolist $ partition off lm-set mpc-like variables Alter 'ssg3.*ul'(,1) $ line 96 in v2004 Paraml uset//'uset'//////'lm'/s,n,nolmset $ If (nolmset>-1) then $ upartn uset,ul/ulx,mq1lm,,/'l'//'lm'/1 $ add mq1lm,/q1lm/-1.0 $ upartn uset,kll/k1aa,,rlmalt,/'l'//'lm'/2 $ mpyad rlmalt,q1lm,/q1l $ umerge1 uset,q1l,,,/q1g/'g'/'l'//1 $ $ matprn q1lm,q1g// $ call dbstore q1g,,,,//0/0/' '/0 $ for sdr2 statics endif $ compile moders nolist souin=mscsou $ interchange inputs to read alter 'xread.*kxx'(,-1) paraml uset//'uset'//////'lm'/s,n,nolmset $ if (nolmset>-1) then $ equivx kxx/kxx0/always $ unaltered version to use later equivx mxx/mxx0/always $ upartn uset,kxx/,rlmal,rlmalt,kalal/'a'/'lm'/'al'/0 $ umerge1 uset,,,,kalal/kxx2/'a'/'lm'/'al'/0 $ null for lm-set upartn uset,mxx/mlmlm,scram,scrma,maa/'a'/'lm'/'al'/0 $ umerge1 uset,mlmlm,rlmal,rlmalt,maa/mxx2/'a'/'lm'/'al'/0 $ equivx kxx2/kxx/always $ equivx mxx2/mxx/always $ endif $ alter 'xread.*kxx' $ constraint forces, if (nolmset>-1) then $ upartn uset,phix/phial,philm,,/'a'/'al'/'lm'/1 $ paraml eigvmat//'trailer'/2/s,n,nh $ number of roots matgen ,/ihh/1/nh $ identity add ihh,eigvmat/eigvminv///2 $ inverse the hard way smpyad rlmal,philm,eigvminv,,,/mqal1/3 $ add mqal1,/qal1/-1.0 $ umerge1 uset,qal1,,,/qag/'g'/'al'//1 $ matmod qag,,,,,/qagf,/2////1.e-10 $ call dbstore qagf,qag,,,//0/0/' '/0 $ endif $ compile sedisp nolist $ alter 286 $ after statics sdr1 paraml uset//'uset'//////'lm'/s,n,nolmset $ if (nolmset>-1) then $ call dbfetch /q1g,,,,/0/0/0/0/0 $ from lm variables add5 qgi,q1g,,,/qgx $ equivx qgx/qgi/always $ upartn uset,ug/ugx,ulm,,/'g'/'gl'/'lm'/1 $ remove lm variables umerge1 uset,ugx,,,/ugxx/'g'/'gl'//1 $ insert zeros for them equivx ugxx/ug/always $ use matprns to see ulm endif $ alter 550 $ after buckling sdr1 if (nolmset>-1) then $ upartn uset,ugi/ugx,ulm,,/'g'/'gl'/'lm'/1 $ remove lm variables umerge1 uset,ugx,,,/ugxx/'g'/'gl'//1 $ insert zeros for them $ equivx ugxx/ugi/always $ use matprns to see ulm $ don't eliminate ulm, needed for eps check endif $ call dbfetch /qagf,,,,/0/0/0/0/0 $ matgpr bgpdts,uset,,qagf//'ofp'/'g'/////'buckling'/' spcf '/'filterd' $ $ end of lanbpa alter