$ lanbchka.v2004 mag January 22, 2004 $ check buckling solutions for orthogonality, Rayleigh quotients compile moders souin=mscsou nolist $ alter 'ofp.*lama' $ message //'the lanbchk alter checks answers only.'/ ' It does not modify results' $ message //'orthogonality check' $ smpyad phix,kxx,phix,,,/genk/3////1////6 $ smpyad phix,mxx,phix,,,/genkd/3////1////6 $ $matprn genk,genkd// $ diagonal genk/gkdd/'square' $ diagonal genkd/gkddd/'square' $ add genk,gkdd/gkoffd//-1.0 $ add genkd,gkddd/gkdoffd//-1.0 $ norm gkoffd/scrkd///s,n,maxgkofd $ norm gkdoffd/scrkm///s,n,mxgkdofd $ message //'largest off-diagonal terms in genk, genkd are:' $ message //maxgkofd/mxgkdofd $ if (maxgkofd>1.e-6 or mxgkdofd>1.e-6) matprn gkoffd,gkdoffd// $ diagonal genk/gkd/'column' $ diagonal genkd/genkdd/'column' $ add gkd,genkdd/roots///2 $ el. Divide diagonal eigvmat/eigvvec/'column' $ add roots,eigvvec/ruterr//-1.0 $ difference between Rayleigh quotient, roots add ruterr,roots/ruterat///2 $ el. divide message //'roots from Rayleigh quotient, normalized error ratio' $ matprn roots,ruterat// $ $ end of lanbchk alter