The standalone program assim can be used to test the assimilation. The program can be called from the command line:
The first argument is the initialisation file and the second argument is the time index of the observation to assimilate. All keys described in 4.2 have the same meaning for the program assim. But the forecast has to be specified by the following keys.
Key | Type | Description |
ForecastXXX.value | vector of strings | the forecast |
ForecastXXX.path | string | The path is prepended to all filenames specified in ForecastXXX.value. The current path is used by default. |
If the program is called with three arguments:
All assimilation cycles be between the two time indexes are performed in chronological order.
The standalone program genobsoper generate the observation matrix.
The first argument is the initialisation file and the second argument is the time index of the observation for witch the observation operator has to be created. All keys described in 4.2 have the same meaning for the program genobsoper. But the only diagnostic key used is DiagXXX.H.
If the program is called with three arguments:
The action is repeated for all time indexes between the start and the end time index.
The standalone program applyobsoper extracts from a state vector the observations.
The first argument is the initialisation file and the second argument is the time index of the observation for witch the observation operator has to be created. All keys described in 4.2 have the same meaning for the program applyobsoper. But the only diagnostic key used are DiagXXX.Hxf and DiagXXX.invsqrtR. If a scalar observation point has been eliminated (out of the model grid for example) its weight in DiagXXX.invsqrtR is zero. The state vector is specified as it is described in 6.1.
If the program is called with three arguments:
The action is repeated for all time indexes between the start and end time index.
The standalone program filteroper generates a sparse matrix witch acts as a spatial filter in the model space.
For each variable the filter is a Gaussian function:
f(x,y,z,x',y',z') = N{e}^{−{{(x−x')}^{2}\over
{L}_{x}^{2}} −{{(y−y')}^{2}\over
{L}_{y}^{2}} −{{(z−z')}^{2}\over
{L}_{z}^{2}} }
| (39) |
N
is a normalisation factor taking in to account the land-sea mask. The parameters
{L}_{x},
{L}_{y} and
{L}_{z} may
be space dependent and have thus the same dimension as the state vector. The required keys
are:
Key | Type | Description |
Model.mask | vector of strings | sea-land mask of each variable |
Model.gridX | vector of strings | longitude of each variable (degenerated file) |
Model.gridY | vector of strings | latitude of each variable (degenerated file) |
Model.gridZ | vector of strings | depth |
Model.path | string | The path is prepended to all filenames specified in Model.*. The current path is used by default. |
Correlation.lenx | vector of strings | parameter {L}_{x} in equation 39 |
Correlation.leny | vector of strings | parameter {L}_{y} in equation 39 |
Correlation.lenz | vector of strings | parameter {L}_{z} in equation 39 |
Correlation.path | string | The path is prepended to all filenames specified in Correlation.*. The current path is used by default. |
Filter | string | file name of the filter |
opermul is a general purpose program witch multiply two sparse operators. It can be used for example for multiplying a filter operator and a observation operator.
{O}_{3} = {O}_{2}{O}_{1}
| (40) |
{O}_{1} is a operator mapping from space {S}_{1} to {S}_{2}, {O}_{2} from {S}_{2} to {S}_{3} and thus the product from {S}_{1} to {S}_{3}.
The required keys are:
Key | Type | Description |
Space1.mask | vector of strings | sea-land mask of space {S}_{1} |
Space1.path | string | The path is prepended to all filenames specified in Space1.mask. The current path is used by default. |
Space2.mask | vector of strings | sea-land mask of space {S}_{1} |
Space2.path | string | The path is prepended to all filenames specified in Space2.mask. The current path is used by default. |
Space3.mask | vector of strings | sea-land mask of space {S}_{1} |
Space3.path | string | The path is prepended to all filenames specified in Space2.mask. The current path is used by default. |
Term1 | string | file name of operator {O}_{1} |
Term2 | string | file name of operator {O}_{2} |
Product | string | file name of the product {O}_{3} |
The utility ”GenObsFile” provides an easy way to save all the observations, coming from various sources, in a few files with the NetCDF format, and creates the .INIT file required by the assimilation routines.
Options for GenObsFile must be specified in the header of the Matlab routine, as described below:
Example:
It will only be used by the assimilation routine if no other observation error covariance \mathbf{R} matrix is specified. GenObsFile only uses values corresponding to variables present in your observations list.
For example, if the actual file name is /home/johndoe/51657.TEM , MJD could be 15-19
as those are the indexes pointing to 51657 in the file name. After each config line, an
arbitrary amount of observation files may be given. The filenames may contain matrix
delimiters, as in (1:100,2:5,:)
Example listfile: