================================================================

 FLEXINVERT SYNTHETIC DATA PREPARATION 

================================================================

Description:
  Prepares synthetic input data for testing FLEXINVERT

Notes: 
  1) Output from a forward run of FLEXINVERT (run_mode = 0) 
     are needed before running synthetic data test.
  2) For CO2 only NEE fluxes are perturbed.
  3) Fluxes are returned on the same domain as the flexpart
     grid_time files (if nested is true this is the nested
     domain). Requires that the input fluxes cover the same or
     greater domain than the flexpart files.
  4) If the inversion domain (covered by state vector) is 
     smaller than the flexpart domain, only the fluxes inside
     the inversion domain are perturbed.

Synthetic Data:
  1) Prior fluxes: prepared by randomly perturbing prior fluxes
     as defined in SETTINGS_[spec]_files using the uncertainty
     statistics given in the prior error covariance matrix B
     The original prior fluxes (not perturbed) are considered as
     the true fluxes.
  2) Observations: prepared by forward simulation of FLEXINVERT
     using the original (true) prior fluxes. The observations 
     are randomly perturbed using the uncertainty statistics of 
     the observation error covariance matrix R.

Usage:
  1) Compile with gfortran using: make
  2) Edit SETTINGS_files for:
     i)  path_output: the following files from the forward run
         must be in this directory:
          - monitor.txt
          - nbox_xy.txt
          - hloc_box.txt
          - evals.txt
          - evecs.txt
          - cort.txt
         The synthetic observations and perturbed prior fluxes
         are written to this directory.
     ii) path_prior: the prior fluxes are read from this 
         directory.
     Use the same SETTINGS_config as for the forward run.
  3) Edit the bash script: job_prep_syndata.sh
  4) Run the bash script: ./job_prep_syndata.sh