module scaletrace { integer, private :: n1, n2 real, dimension( :, :), pointer :: data #% _init( data) n1 = size( data, 1) n2 = size( data, 2) #% _lop( scale( n2), sdata( n1, n2)) integer i1,i2 do i2= 1, n2 do i1= 1, n1 if( adj) scale( i2) += sdata(i1,i2) * data(i1,i2) else sdata(i1,i2) += scale( i2) * data(i1,i2) }