SUB correl(Ce(),Cm(),E,M,esave(),msave(),pass,nsave) ! accumulate data for time correlation functions ! save last nsave values of M and E ! index0 = array index for earliest saved time LET index0 = mod(pass-1,nsave) + 1 IF pass > nsave then ! compute Ce and Cm after nsave values are saved LET index = index0 FOR tdiff = nsave to 1 step -1 LET Ce(tdiff) = Ce(tdiff) + E*esave(index) LET Cm(tdiff) = Cm(tdiff) + M*msave(index) LET index = index + 1 IF index > nsave then LET index = 1 NEXT tdiff END IF ! save latest value in array position of earliest value LET esave(index0) = E LET msave(index0) = M END SUB