Home page  
Home   Your Room   Login   Contact   Feedback   Site Map   Search:  
Discover this product  
About Us
Overview
Getting here
Committees
Products
Forecasts
Order Data
Order Software
Services
Computing
Archive
PrepIFS
Research
Modelling
Reanalysis
Seasonal
Publications
Newsletters
Manuals
Library
News&Events
Calendar
Employment
Open Tenders
   
Home > Research > Ifsdocs > ASSIMILATION >  
   

DATA ASSIMILATION

IFS documentation Front Page


Table of contents

CHAPTER 1 Incremental formulation of 3D/4D variational assimilation-an overview

CHAPTER 2 3D variational assimilation

CHAPTER 3 4D variational assimilation

CHAPTER 4 Background term

CHAPTER 5 Conventional observational constraints

CHAPTER 6 Satellite observational constraints

CHAPTER 7 Background, analysis and forecast errors

CHAPTER 8 Gravity-wave control

CHAPTER 9 Data partitioning (OBSORT)

CHAPTER 10 Observation screening

CHAPTER 11 Analysis of snow

CHAPTER 12 Land surface analysis

CHAPTER 13 SST and sea-ice analysis

CHAPTER 14 Reduced-rank Kalman filter

REFERENCES

 
  Next Section
Previous Section


4.3 Technical implementation




The statistical calibration is done using dedicated scripts outside the IFS code. First, the 24/48-hour forecast error differences for a set of dates are constructed in terms of spectral , , and . This involves running a set of MARS requests and building the required GRIB files. Then, the forecast-error differences are read and processed by a Fortran statistics program that finally writes two files in GSA format: one with the coefficients of the balance operator, one with the error covariances of , , and . These files take up a couple of megabytes. They are computed for a given triangular truncation and number of levels (currently T106L31). In the covariance file there are 4 sets of vertical covariance matrices. The balance files contain one set of coefficients for the operator, and three sets of vertical balance matrices for , and .


4.3.1 Input files




The IFS needs these two GSA files to use in e.g. the incremental analysis jobs. The configuration described here corresponds to namelist switch LSTABAL=.true. (NAMJG), and it is identified in the code by the string CDJBTYPE=`STABAL96'. LSTABAL=.false. would give the old formulation. The input files must be named stabal96.cv and stabal96.bal. They are read in by sujbdat and sujbbal, respectively.


4.3.2 Namelist parameters of




Some other important namelist options in NAMJG are LCFCE (to enforce uniform background errors), L3DBGERR (to have a 3D distribution vorticity background errors), and LCORCOSU (to enforce compactly supported horizontal correlations). The switch LGUESS in NAMCT0 can be used to switch off altogether. The default is LGUESS=.true., i.e. switched on.



Figure 4.1 Calling tree for subroutine sujbcov.






4.3.3 IFS routines




Inside the IFS code, is localized in the setups below subroutine sujbcov and in the inverse change of variable cvar2in (and its adjoint and their inverses, CVAR2INAD, CVAR2 and CVAR2AD). Calling trees are shown in Fig. 4.1 and Fig. 4.2 . The computation of the cost function and its adjoint is done in sim4d(Section 2.3 in Chapter 2 `3D variational assimilation' )---it is planned to move it to a dedicated subroutine. The sequence within the set-up routine is the following:
(i)   SUJBDAT: Reads covariances from file stabal96.cv,
  Interpolates in the vertical to the model's vertical levels (if necessary)
  Sets humidity correlations to 0, for pressures less than 100 hPa.
(ii)   SUJBCOR: Sets up spectral correlation operator
  Covariance matrices (one per ) are converted to vertical correlation matrices and horizontal autocorrelation spectra. The eigenvectors and the eigenvalues of vertical correlations matrices are computed using EIGENMD and stored in FGEDVNS and FGEGVNS-arrays (yomjg), respectively, for later use in JGVCOR, JGVCORI, JGVCORAD and JGVCORIAD. The horizontal autocorrelation spectra are stored in the FGSCNM-array (yomjg), for later use in JGHCOR and JGHCORI.
(iii)   SUJBSTD: Set up background error standard deviations, see Subsection 4.3.4.
(iv)   SUJBBAL: Set up balance constraint. Read the file stabal96.bal and store in yomjg, for later use in balstat, balstatad, balvert, balvertad, balverti and balvertiad as part of the change of variable operator.
(v)   SUJBTEST: Test of the adjoint of the change of variable, if LJBTEST=.true.


The distributed memory affects the setups below sujbdat and sujbbal when the data files are read in (by the master processor only). First, the resolution of the files is read, then the relevant arrays are allocated and the actual data is read, truncated if necessary, and broadcast. The code is designed to work at any resolution.
Figure 4.2 Calling tree for subroutine cvar2in.



In the change of variable, there is a transposition of the fields between the horizontal and vertical balance operators, balstat and balvert, repsectively. Note that the operator is performed by calling cvar2in, so in IFS parlance corresponds to the inverse change of variable.


4.3.4 Background error




The background standard errors are set up below sujbstd (in SUINFCE, called from SUECGES) and used in jgnr or jgnrs (and their adjoint and inverses, jgnrad and jgnrsi). In addition to the covariance files, they use a gridpoint GRIB file called errgrib in order to specify the three-dimensional error patterns. The data from the file is converted to the appropriate parameters and resolution if needed. The background error fields for some parameters (wind, height, temperature and surface pressure) are built for the screening job although they are not needed in the analysis itself. For more information, refer to the chapter on the cycling of background errors, Chapter 7 `Background, analysis and forecast errors' .


4.3.4 (a) Humidity




The humidity background errors are currently not cycled - they are computed (in SUSHFCE under JGNR) by a simple empirical formulation as a function of the temperature and relative humidity of the background:

 
(4.13)

 
(4.14)


The standard deviation in terms of relative humidity is then converted to specific humidity, taking the variation of of the equation

 
(4.15)


where is the relative humidity, , is the saturation water-vapour pressure at the temperature in question (Tetens' formula, Eq. (5.11) in Chapter 5 `Conventional observational constraints' ) and is pressure.


Humidity increments are forced to be negligibly small above the tropopause to avoid a systematic drift of stratospheric humidity over extended periods of data assimilation. This is achieved by setting a very low value of for everywhere the pressure is lower than 70hPa, and at anyother point where the pressure is lower than 500hPa and the background temperature and pressure fields are such that the square of the buoyancy frequency exceeds everywhere between that level and the 70hPa level.


More specifically, for each grid column is set to for model levels such that , where the level is determined by requiring either that it is the highest level with hPa for which

 
(4.16)


or, if no such level can be found for in the range from 500 to 70hPa, that it is the lowest level for which
.


Here and are the background temperature and pressure at level of the grid-column.


In addition, any values of lower than are reset to .


For pressures less than = 800 hPa, and over the sea, the model of background errors above is modified by

 
(4.17)


where (where LSM = land-sea mask) and =12500.








Next Section
Previous Section



 

Top of page 20.03.2002
 
   Page Details         © ECMWF
shim shim shim