UFO
|
Fortran module containing the full b-matrix data type and methods for the 1D-Var. More...
Data Types | |
type | ufo_metoffice_bmatrixstatic |
Functions/Subroutines | |
subroutine | ufo_metoffice_bmatrixstatic_setup (self, variables, filepath, qtotal_flag) |
Routine to read and setup the 1D-Var B-matrix. More... | |
subroutine | ufo_metoffice_bmatrixstatic_delete (self) |
Routine to delete and squash the 1D-Var B-matrix. More... | |
subroutine | rttovonedvarcheck_covariance_initbmatrix (self) |
Routine to initialize the 1D-Var B-matrix. More... | |
subroutine | rttovonedvarcheck_covariance_getbmatrix (self, fileunit, b_elementsused, fieldlist) |
Routine to initialize the 1D-Var B-matrix. More... | |
subroutine | ufo_metoffice_bmatrixstatic_reset (self, latitude, b_matrix, b_inverse, b_sigma) |
Routine to create error covariances for a single observation. More... | |
subroutine | rttovonedvarcheck_create_fields_in (fields_in, variables, qtotal_flag) |
Create a subset of the b-matrix. Used for testing. More... | |
Variables | |
character(len=200) | message |
integer, parameter, public | nfieldtypes_ukmo = 19 |
number of fieldtypes More... | |
integer, parameter, public | ufo_metoffice_fieldtype_t = 1 |
temperature More... | |
integer, parameter, public | ufo_metoffice_fieldtype_q = 2 |
specific humidity profile More... | |
integer, parameter, public | ufo_metoffice_fieldtype_t2 = 3 |
surface air temperature More... | |
integer, parameter, public | ufo_metoffice_fieldtype_q2 = 4 |
surface spec humidity More... | |
integer, parameter, public | ufo_metoffice_fieldtype_tstar = 5 |
surface skin temperature More... | |
integer, parameter, public | ufo_metoffice_fieldtype_pstar = 6 |
surface pressure More... | |
integer, parameter, public | ufo_metoffice_fieldtype_o3total = 7 |
total column ozone - not currently setup More... | |
integer, parameter, public | ufo_metoffice_fieldtype_not_used = 8 |
not currently in use - not currently setup More... | |
integer, parameter, public | ufo_metoffice_fieldtype_ql = 9 |
liquid water profile - not currently setup More... | |
integer, parameter, public | ufo_metoffice_fieldtype_qt = 10 |
total water profile More... | |
integer, parameter, public | ufo_metoffice_fieldtype_windspeed = 11 |
surface wind speed More... | |
integer, parameter, public | ufo_metoffice_fieldtype_o3profile = 12 |
ozone - not currently setup More... | |
integer, parameter, public | ufo_metoffice_fieldtype_lwp = 13 |
liquid water path - not currently setup More... | |
integer, parameter, public | ufo_metoffice_fieldtype_mwemiss = 14 |
microwave emissivity - not currently setup More... | |
integer, parameter, public | ufo_metoffice_fieldtype_qi = 15 |
ice profile - not currently setup More... | |
integer, parameter, public | ufo_metoffice_fieldtype_cloudtopp = 16 |
single-level cloud top pressure More... | |
integer, parameter, public | ufo_metoffice_fieldtype_cloudfrac = 17 |
effective cloud fraction More... | |
integer, parameter, public | ufo_metoffice_fieldtype_emisspc = 18 |
emissivity prinipal components - not currently setup More... | |
integer, parameter, public | ufo_metoffice_fieldtype_cf = 19 |
cloud fraction profile - not currently setup More... | |
character(len= *), dimension(nfieldtypes_ukmo), parameter, public | ufo_metoffice_fieldtype_text = (/ var_ts, var_q, var_sfc_t2m, var_sfc_q2m, var_sfc_tskin, var_sfc_p2m, 'ozone (total column)', '[unused field type] ', var_clw, 'q total ', var_sfc_wspeed, 'ozone (profile) ', 'liquid water path ', var_sfc_emiss, var_cli, 'cloud top pressure ', 'cloud fraction ', 'emissivity pcs ', var_cldfrac /) |
Fortran module containing the full b-matrix data type and methods for the 1D-Var.
|
private |
Routine to initialize the 1D-Var B-matrix.
Met Office OPS Heritage: Ops_SatRad_GetBmatrix.f90
read the input file and allocate and fill in all the components of the bmatrix structure, with the exception of proxy variables.
notes:
it is assumed a valid bmatrix file is available and has been opened ready for reading, accessed via the input unit number.
two optional arguments are provided to allow a submatrix to be formed from the original file, either depending on a list of fields to be used for retrieval, or a list of specific element numbers to be retained.
the file header may begin with any number of comment lines, which are defined as those using either # or ! as the first non-blank character.
immediately following any comments, the header should then contain information on the size of the matrix to be read in, and a description of each matrix element. memory will be allocated depending on these matrix specifications.
each matrix should then have a one line header containing the latitude bounds and a latitude band id. band id numbers should be sequential in latitude. i.e. band 1 will begin at -90.0, band 2 from -60.0 ... (or however wide we choose the bands).
we also calculate an inverse of each b matrix, used in the current 1d-var for cost function monitoring only but it may be required for other minimization methods at some point.
standard deviations are also stored in a separate vector.
proxy variables are provided to allow manipulation of the chosen matrix during processing without affecting the original. we might wish to do this, for example, to take account of the different surface temperature errors for land and sea. this routine makes no assumption about the use of these variables, hence no space is allocated. nullification of unused pointers should take place outside (use the ops_satrad_initbmatrix routine).
[in,out] | self | B-matrix covariance |
[in] | fileunit | free file unit number |
[in] | b_elementsused | optional: list of elements used |
[in,out] | fieldlist | optional: list of fields used |
Definition at line 272 of file ufo_metoffice_bmatrixstatic_mod.f90.
|
private |
Routine to initialize the 1D-Var B-matrix.
Met Office OPS Heritage: Ops_SatRad_InitBmatrix.f90
[out] | self | B-matrix Covariance |
Definition at line 202 of file ufo_metoffice_bmatrixstatic_mod.f90.
|
private |
Create a subset of the b-matrix. Used for testing.
[in,out] | fields_in | Array to specify fields used |
[in] | variables | Model variables in B matrix |
[in] | qtotal_flag | Flag for qtotal |
Definition at line 646 of file ufo_metoffice_bmatrixstatic_mod.f90.
|
private |
Routine to delete and squash the 1D-Var B-matrix.
Met Office OPS Heritage: Ops_SatRad_SquashBmatrix.f90
[in,out] | self | B-matrix Covariance |
Definition at line 171 of file ufo_metoffice_bmatrixstatic_mod.f90.
|
private |
Routine to create error covariances for a single observation.
Met Office OPS Heritage: Ops_SatRad_ResetCovariances.f90
[in] | self | B-matrix covariance |
Definition at line 575 of file ufo_metoffice_bmatrixstatic_mod.f90.
|
private |
Routine to read and setup the 1D-Var B-matrix.
[in,out] | self | B-matrix Covariance |
[in] | variables | Model variables in B matrix |
[in] | filepath | Path to B matrix file |
[in] | qtotal_flag | Flag for qtotal |
Definition at line 104 of file ufo_metoffice_bmatrixstatic_mod.f90.
character(len=200) ufo_metoffice_bmatrixstatic_mod::message |
Definition at line 39 of file ufo_metoffice_bmatrixstatic_mod.f90.
integer, parameter, public ufo_metoffice_bmatrixstatic_mod::nfieldtypes_ukmo = 19 |
number of fieldtypes
Definition at line 52 of file ufo_metoffice_bmatrixstatic_mod.f90.
integer, parameter, public ufo_metoffice_bmatrixstatic_mod::ufo_metoffice_fieldtype_cf = 19 |
cloud fraction profile - not currently setup
Definition at line 53 of file ufo_metoffice_bmatrixstatic_mod.f90.
integer, parameter, public ufo_metoffice_bmatrixstatic_mod::ufo_metoffice_fieldtype_cloudfrac = 17 |
effective cloud fraction
Definition at line 53 of file ufo_metoffice_bmatrixstatic_mod.f90.
integer, parameter, public ufo_metoffice_bmatrixstatic_mod::ufo_metoffice_fieldtype_cloudtopp = 16 |
single-level cloud top pressure
Definition at line 53 of file ufo_metoffice_bmatrixstatic_mod.f90.
integer, parameter, public ufo_metoffice_bmatrixstatic_mod::ufo_metoffice_fieldtype_emisspc = 18 |
emissivity prinipal components - not currently setup
Definition at line 53 of file ufo_metoffice_bmatrixstatic_mod.f90.
integer, parameter, public ufo_metoffice_bmatrixstatic_mod::ufo_metoffice_fieldtype_lwp = 13 |
liquid water path - not currently setup
Definition at line 53 of file ufo_metoffice_bmatrixstatic_mod.f90.
integer, parameter, public ufo_metoffice_bmatrixstatic_mod::ufo_metoffice_fieldtype_mwemiss = 14 |
microwave emissivity - not currently setup
Definition at line 53 of file ufo_metoffice_bmatrixstatic_mod.f90.
integer, parameter, public ufo_metoffice_bmatrixstatic_mod::ufo_metoffice_fieldtype_not_used = 8 |
not currently in use - not currently setup
Definition at line 53 of file ufo_metoffice_bmatrixstatic_mod.f90.
integer, parameter, public ufo_metoffice_bmatrixstatic_mod::ufo_metoffice_fieldtype_o3profile = 12 |
ozone - not currently setup
Definition at line 53 of file ufo_metoffice_bmatrixstatic_mod.f90.
integer, parameter, public ufo_metoffice_bmatrixstatic_mod::ufo_metoffice_fieldtype_o3total = 7 |
total column ozone - not currently setup
Definition at line 53 of file ufo_metoffice_bmatrixstatic_mod.f90.
integer, parameter, public ufo_metoffice_bmatrixstatic_mod::ufo_metoffice_fieldtype_pstar = 6 |
surface pressure
Definition at line 53 of file ufo_metoffice_bmatrixstatic_mod.f90.
integer, parameter, public ufo_metoffice_bmatrixstatic_mod::ufo_metoffice_fieldtype_q = 2 |
specific humidity profile
Definition at line 53 of file ufo_metoffice_bmatrixstatic_mod.f90.
integer, parameter, public ufo_metoffice_bmatrixstatic_mod::ufo_metoffice_fieldtype_q2 = 4 |
surface spec humidity
Definition at line 53 of file ufo_metoffice_bmatrixstatic_mod.f90.
integer, parameter, public ufo_metoffice_bmatrixstatic_mod::ufo_metoffice_fieldtype_qi = 15 |
ice profile - not currently setup
Definition at line 53 of file ufo_metoffice_bmatrixstatic_mod.f90.
integer, parameter, public ufo_metoffice_bmatrixstatic_mod::ufo_metoffice_fieldtype_ql = 9 |
liquid water profile - not currently setup
Definition at line 53 of file ufo_metoffice_bmatrixstatic_mod.f90.
integer, parameter, public ufo_metoffice_bmatrixstatic_mod::ufo_metoffice_fieldtype_qt = 10 |
total water profile
Definition at line 53 of file ufo_metoffice_bmatrixstatic_mod.f90.
integer, parameter, public ufo_metoffice_bmatrixstatic_mod::ufo_metoffice_fieldtype_t = 1 |
temperature
Definition at line 53 of file ufo_metoffice_bmatrixstatic_mod.f90.
integer, parameter, public ufo_metoffice_bmatrixstatic_mod::ufo_metoffice_fieldtype_t2 = 3 |
surface air temperature
Definition at line 53 of file ufo_metoffice_bmatrixstatic_mod.f90.
character(len=*), dimension(nfieldtypes_ukmo), parameter, public ufo_metoffice_bmatrixstatic_mod::ufo_metoffice_fieldtype_text = (/ var_ts, var_q, var_sfc_t2m, var_sfc_q2m, var_sfc_tskin, var_sfc_p2m, 'ozone (total column)', '[unused field type] ', var_clw, 'q total ', var_sfc_wspeed, 'ozone (profile) ', 'liquid water path ', var_sfc_emiss, var_cli, 'cloud top pressure ', 'cloud fraction ', 'emissivity pcs ', var_cldfrac /) |
Definition at line 74 of file ufo_metoffice_bmatrixstatic_mod.f90.
integer, parameter, public ufo_metoffice_bmatrixstatic_mod::ufo_metoffice_fieldtype_tstar = 5 |
surface skin temperature
Definition at line 53 of file ufo_metoffice_bmatrixstatic_mod.f90.
integer, parameter, public ufo_metoffice_bmatrixstatic_mod::ufo_metoffice_fieldtype_windspeed = 11 |
surface wind speed
Definition at line 53 of file ufo_metoffice_bmatrixstatic_mod.f90.