$ $ updated for v70 6-13-97 $ $ irsa.v69 - updated for v69-- 9-25-96 $ $ $ residual structure only $ echooff $ compile sekr $ alter 1 $ type parm,nddl,i,n,zuzri1 $ alter 'upartn.*kff' $ call dbstore kff,,,,//0/0/'dball'/0 $ $ $ calculate goats $ alter 'fbs.*loo.*uoo',''(,1) $ fbs loo,uoo,kot/goats/-1/-1/0/0 $ mpyad kot,goats,ktt1/ktts/1////unsym $ paraml ktts//'trailer'/1/s,n,zuzri1 $ call dbstore loo,uoo,ktts,goats,//0/0/'dball'/0 $ $ $ mass matrix using static condensation $ compile semr2 list $ alter 1 $ type parm,,i,n,ncol $ alter 'mpyad.*got','add5.*mtt' $ call dbfetch /goats,,,,/0/0/0/0/0 $ $ MPYAD goats,MOT,/MTT2/1 $ MPYAD MOT,goats,MTT2/MTT3/1////6 $ MATMOD MOO,,,,,/NZMOOV,/12/S,N,NOMONULL/1 $ IF ( NOMONULL>0 ) THEN $ $ REMOVE NULL ROWS/COLUMNS IN MOO AND GOAT FOR $ GREATER EFFICIENCY IN SMPYAD PARTN MOO,NZMOOV,/MOO1,,, $ PARTN goats,,NZMOOV/GOT1,,,/0 $ SMPYAD GOT1,MOO1,GOT1,,,MTT3/MTT4/3////1////6 $ ELSE $ SMPYAD goats,MOO,goats,,,MTT3/MTT4/3////1////6 $ ENDIF $ ADD5 MTT1,MTT4,,,/MTTs $ $ $ calculate goatd $ call dbfetch /kff,loo,uoo,ktts,/0/0/0/0/0 $ decomp mtts/mttsl,mttsu, $ fbs mttsl,mttsu,ktts/minvk $ mpyad moo,goats,mot/mot1 $ mpyad mot1,minvk,/mot2 $ fbs loo,uoo,mot2/goatd $ $ $ new goat = goats + goatd $ add goats,goatd/goat $ call dbstore goat,,,,//0/0/'dball'/0 $ $ compile semodes $ alter 1 $ putsys(0,192) $ type db mff,uset0 $ type parm,nddl,i,n,zuzri1 $ alter 'xadd5.*kaa'(,-1) $ call dbfetch /ktts,,,,/0/0/0/0/0 $ matgen ,/iaa/1/zuzri1 $ vec uset0/vfoa/'f'/'o'/'a' $ call dbfetch /kff,goat,,,/0/0/0/0/0 $ merge goat,iaa,,,,vfoa/tfa/1 $ file kaa=ovrwrt/maa=ovrwrt $ smpyad tfa,kff,tfa,,,/kaa/3////1////6 $ smpyad tfa,mff,tfa,,,/maa/3////1////6 $ $ compile semrm list $ alter 'call.*semr2','' $ add mot1,mnn IF ( NOMTT=-1 ) CALL SEMR2 MGG,GOT,USET,GM,SCSTM,MEDGE,CSTMS,BGPDTS,CASES, USET0,VGQ/ MTT,MFF,MMG,MSF,MSS,mot1,mnn/ ERROR/NOMSET/NOSSET/NOOSET/NORC/NOQSET/ NOTSET/0 $ echoon $