$ updated June 18, 2003 for v2004 by mag %%% changes for v2004 $ updated 1-30-2001 - 111_by_mode.v2001 $ updated 1-22-2001 - 111_by_mode.v2001 $ $ updated 9-28-99 - 111_by_mode.v707 $ $ output-by-mode-111a.v707 - allows data recovery by mode in SOL 111 $ $ beware of the large volume of output from this alter - full data $ recovery output will be presented for each mode in the system $ followed by the standard output. $ echooff $ $ $ 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. $ $ $ compile semfreq list $ alter 'call.*super3'(2,-1) $ insert before second call to super3 $ $ ULH2: SOLUTION IN MODAL COORD $ copy uhf1/uhfx $ save total solution %%% $ $ RETRIEVES WORD2 FROM TRAILER OF Ulf WHICH IS THE NO OF MODES $ INSERTING THAT IN nmodes $ PARAML uhfx//'trailer'/2/s,n,nmodes $ $message //'nmodes = '/nmodes $ $matprn uhfx/ $ $ $ INITIALIZE knt, THE LOOP COUNTER, AND I1 $ type parm,,i,n,knt=1,i1 $ type parm,,logical,n,lastp=false $ true for last pass, do super3 on all %%% $ $ REPETITION FOR ALL MODES $ knt = 1 $ $ $do while (knt<=nmodes) $ v2001 do while (knt<=(nmodes+1)) $ v2004 Use same super3 call for one vector, all i1=knt-1 $ if (knt = (nmodes+1)) lastp=true $ %% if (lastp=true) jump fulldr $ $ $ BUILDS A PARTITIONING VECTOR rp (1,0,0,0) FOR MODE 1 $ AND (0,1,0,0) FOR SECOND ETC... $ 5.4.-104 OF V66A UM $ matgen ,/rp/6/nmodes/i1/1 $ $ $ GETS THE knt-th ROW OF MATRIX UH1 AND CALLS IT uhi $ partn uhfx,,rp/,uhi,,/1 $ extract single modal solution at row=knt $ $ PREPARES A MATRIX WITH ONE ROW FULL AND THE REMAINING ZEROES $ merge , ,uhi,,,,rp/uhf2/1 $ pad modal solution at other rows message //' ' $ message //' begin contribution of mode='/knt $ message //' ' $ label fulldr $ if (lastp = true) then $ copy uhfx/uhf2 $ get the original vectors message //' ' $ message //'the following output is the standard output' $ message //'it contains the contributions of all modes' $ message //' ' $ else $ copy uhf2/uhf1 $ endif $ $ $ use the built-in super3 to make this more maintainable %%% $ CALL SUPER3 CASECC ,CASEF ,ULF ,FOL1 ,PGF1 , etc, v2001 if (false) then $ not needed in v2004 delete /UPF,QPF,QMPF,IUG1, $ delete /IQG1,IEF1,IES1,IEE1,IUG2 $ delete /IQG2,IEF2,IES2,IEE2, $ endif $ $ knt=knt+1 $ alter 'call.*super3'(2) $ insert after second call to super3 %%% enddo $ on super3 $ endalter $ echoon $ $