We provide here fortran source codes and required subroutines+makefiles for the MTM-SVD multivariate signal analysis procedure of Mann and Park (C) 1994. The method and its applications to various climatic/atmospheric/oceanographic data sets are described in: Mann, M.E., Park, J., Global scale modes of surface temperature variability on interannual to century time scales, Journal of Geophysical Research, 99, 25819-25833, 1994. Mann, M.E., Lall, U., Saltzman, B., Decadal-to-century scale climate variability: Insights into the Rise and Fall of the Great Salt Lake, Geophysical Research Letters, 22, 937-940, 1995. Mann, M.E., Park, J., Bradley, R.S., Global Interdecadal and Century-Scale Climate Oscillations During the Past Five Centuries, Nature, 378, 266-270, 1995. Mann, M.E., Park, J., Greenhouse Warming and Changes in the Seasonal Cycle of Temperature: Model Versus Observations, Geophysical Research Letters, 23, 1111-1114, 1996 Koch, D., Mann, M.E., Spatial and Temporal Variability of 7Be Surface Concentrations, Tellus, 48B, 387-396, 1996. Mann, M.E., Park, J., Joint Spatio-Temporal Modes of Surface Temperature and Sea Level Pressure Variability in the Northern Hemisphere During the Last Century, Journal of Climate, 9, 2137-2162, 1996. Rajagopalan, B., Mann, M.E., and Lall, U., A Multivariate Frequency-Domain Approach to Long-Lead Climatic Forecasting, Weather and Forecasting, 13, 58-74, 1998. Mann, M.E. and Park, J., Multivariate Signal Detection in Climate Studies, Advances in Geophysics, in press, 1999. Tourre, Y., Rajagopalan, B., and Kushnir, Y., Dominant patterns of climate variability in the Atlantic over the last 136 years, Journal of Climate, in press, 1999. Mann, M.E., Bradley, R.S., Hughes, M.K. Long-term variability in the El Nino Southern Oscillation and associated teleconnections, Diaz, H.F. and Markgraf, V. (eds), El Nino and the Southern Oscillation: Multiscale Variability and its impacts on Natural Ecosystems and Society, Cambridge University Press, Cambridge, UK, in press, 1999. The authors take no responsibility for possible bugs, compliler incompatibitiles, etc. If you believe that such problems have been encountered, please contact us at: mann@snow.geo.umass.edu A. CODES The following (3) fortran codes are provided (1) mtm-svd-spec.f (2) mtm-svd-recon.f (3) mtm-svd-conf.f along with the required fortran subroutines mtm-rout.f realft.f eispk.f zlinpk.f and the corresponding makefiles: Makefile1, Makefile2, Makefile3 (1) Provides the MTM-SVD multivariate spectrum decomposition of the data. It requires the dataseries to be analyzed as input (in appropriate format) and returns the output files: evals-1.out Principle eigenvalue spectrum (the "LFV spectrum" of the dataset) evals-2.out 2nd eigenvalue spectrum--generally not of interest evals-3.out 3rd eigenvalue spectrum--generally not of interest [Also produced are the files: svd-means.out (the means for each gridpoint data series) svd-sigmas.out (the standard deviations " ) ] (2) Allows for the reconstruction of a narrowband spatiotemporal signal corresponding to a peak with center at frequency f0 as detected in the LFV spectrum from (1). A variety of options are allowed including "evolutive" signal reconstruction (see below). The code requires the properly formated dataseries to be analyzed and for certain options (see below-note 1) the additional input file "frequency.dat" Upon output, the following files are produced: recon-data.out various information about the signal reconstructions recon-spat.eof[k] spatial EOF recon-spat.pat[k] the spatial pattern of the signal (see note 2 below) recon-spec.eof[k] spectral EOF or "principle modulation" of Kth mode recon-stats.out means and standard deviations of the dataseries recon-status.out progress update recon-time.site[j] time reconstruction for site "j" indicated. (this may include one or more several files depending on the number of sites indicated) 1st y column = reconstucted signal 2nd y column = reference series ("raw" or lowpassed dataseries depending on what user indicates) 3rd y column = raw dataseries different boundary constraints are possible (see note 3 below). "X" indicates the mode (eg, principle "1" or 2ndary "2" for example) to be reconstructed. Almost always, the principle mode "1" corresponding to the peak in the LFV spectrum is of interest. (3) Allows for non-parametric estimation of the null distribution and signficance levels (median, 90%,95%,99%) for coloured noise with the same spatial correlation structure as the actual dataseries. The following files are produced: evals-permute1.out median(50% level of null distribution), and 90%,95%,99% levels for signficance of the LFV spectrum calculated in (1) evals-permute2.out same, for 2ndary eigenvalue spectrum (generally not of interest) B. SYNTHETIC TEST CASE A synthetic dataset of 25 gridpoints with a (1) secular trend, (2) low-frequency amplitude/phase modulated oscillation and a (3) high-frequency frequency and amplitude/phase modulated oscillation, immersed in equal variance spatially correlated red noise is provided in the data files: synth1.dat, synth2.dat, synth3.dat, synth4.dat, synth5.dat for comparison with the analysis performed by Rajagopalan, B., Mann, M.E., and Lall, U., A Multivariate Frequency-Domain Approach to Long Lead Climatic Forecasting, Weather and Forecasting, submitted, 1997. (preprint available over the web: ftp://love.geology.yale.edu/pub/Climate/Forecasting/ ) The additional required file "frequency.dat" for the frequency-modulated the signal reconstruction of (3) is also provided. The correct LFV spectrum (based on K=3 and bandwidth parameter p =2) evals-synth-1.out and the corresponding 2ndary and 3rd eigenvalue spectra evals-synth-2.out evals-synth-3.out are also provided for the synthetic dataset, as is the evolutive LFV spectrum evals-synth-40yrwin-1.out based on 40 year (480 month) moving window. The correct bootstrap signficance levels are provided in evals-permute1-synth.out evals-permute2-synth.out based on 2000 bootstrap resamples. Postscript figures of the correct results (taken from Rajagopalan et al 1997 cited above) are also provided lfvspec.ps LFV spectrum of full 1200 month dataset along with 50%,90%,95%,99% conf levels from bootstrap lfvspec-evol40yrwin.ps evolutive LFV spectrum in moving 40 year window (time-frequency greyscale plot, filtered at 90% significance level) signals-true.ps actual signals showing (a) relative spatial pattern w/ zero phase defined by the "center grid" reference gridpoint and (b) temporal signal for reference gridpoint. signals-recon.ps reconstructed counterparts to (a) and (b). Temporal reconstructions shown along w/ original temporal signal. ---------------- Notes: 1) Evolutive time-domain signal reconstruction requires an additional file "frequency.dat" constructed by the user specifying the carrier frequency "f" as a function of time for a frequency-modulated signal. To calculate the spatial pattern of a frequency-modulated signal, either the (1) the fixed-frequency pattern for a particular segment or (2) the average of several such fixed-frequency patterns for different segments of the full data series (ie, early, middle, late) should be calculated. The evolutive signal reconstruction method will not produce a representative spatial pattern. 2) Either a complex pattern output (spatial amplitude and phase of the oscillatory pattern) or "snapshot" format (actual anomaly pattern at various instances during a typical cycle or half-cycle) can be selected. 3) A priori boundary constraints for time-domain signal reconstruction can be chosen (see reference Mann and Park 1996b for a complete discussion) (0) minimum norm (1) minimum slope (2) minimum roughness THe optimal time-domain reconstruction however is generally provided by the combination of the above (3) minimum misfit which minimizes the mean-square multivariate misfit of the spatiotemporal reconstruction with the raw data. This objective time-domain reconstruction is provided by determining finding the set of weights on the reconstructions (0)-(2) (adding to unity) which minimizes the misfit. To exercise this option, the user must choose to reconstruct entire domain, but do not indicate that time reconstructions are to be output). This will provide an optimal set of values (lambda1, lambda2, lambda3) of the relative weights on each of the 3 constraints. One can then RERUN the code indicating the values of lambda obtained in the "optimization run"), then indicating any particular gridpoint time reconstructions that are desired.