{"id":10014,"date":"2017-02-27T15:57:25","date_gmt":"2017-02-27T15:57:25","guid":{"rendered":"https:\/\/www.nwpsaf.eu\/site\/?page_id=10014"},"modified":"2025-11-27T14:02:21","modified_gmt":"2025-11-27T14:02:21","slug":"1dvar-user-guide","status":"publish","type":"page","link":"https:\/\/nwp-saf.eumetsat.int\/site\/software\/1d-var\/documentation\/1dvar-user-guide\/","title":{"rendered":"1DVAR User Guide"},"content":{"rendered":"<p><center><a name=\"Top\"><\/a><\/center><\/p>\n<h1><a name=\"Top\"><\/a>NWPSAF 1D-Var User Manual<\/h1>\n<h1><a name=\"Top\"><\/a><small>Software Version 2.0<\/small><\/h1>\n<h3><a name=\"Top\"><\/a>NWPSAF-MO-UD-032<\/h3>\n<p><a name=\"Top\"><\/a><\/p>\n<table style=\"text-align: left; width: 100%;\" border=\"1\" cellspacing=\"2\" cellpadding=\"2\">\n<tbody>\n<tr align=\"center\">\n<td colspan=\"4\" rowspan=\"1\"><span style=\"font-weight: bold;\">Revision<br \/>\nHistory<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"text-decoration: underline;\">Document revision<\/span><\/td>\n<td><span style=\"text-decoration: underline;\">Date<\/span><\/td>\n<td><span style=\"text-decoration: underline;\">Author<\/span><\/td>\n<td><span style=\"text-decoration: underline;\">Notes<\/span><\/td>\n<\/tr>\n<tr>\n<td>Version 1.1<\/td>\n<td>06\/12\/16<\/td>\n<td>F. Smith<\/td>\n<td>Draft Version valid for NWPSAF 1D-Var v1.1<\/td>\n<\/tr>\n<tr>\n<td>Version 1.1.1<\/td>\n<td>20\/06\/18<\/td>\n<td>S. Havemann<\/td>\n<td>v1.1.1: new release after LWP bugfix<\/td>\n<\/tr>\n<tr>\n<td>Version 1.2<\/td>\n<td>24\/02\/20<\/td>\n<td>S. Havemann<\/td>\n<td>v1.2: Version valid for NWPSAF 1D-Var v.1.2<\/td>\n<\/tr>\n<tr>\n<td>Version 2.0<\/td>\n<td>21\/05\/21<\/td>\n<td>E. Pavelin, J. Hocking<\/td>\n<td>v2.0: Version valid for NWPSAF 1D-Var v2.0<\/td>\n<\/tr>\n<tr>\n<td>Version 2.1<\/td>\n<td>01\/09\/21<\/td>\n<td>M. Cooke, O. Young<\/td>\n<td>New release for RTTOV14<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><a name=\"Top\"><\/a><\/p>\n<p><a name=\"Top\"><\/a><i> The documentation was developed within the context<br \/>\nof the EUMETSAT Satellite Application Facility on<br \/>\nNumerical Weather Prediction (NWP SAF),<br \/>\nunder the Cooperation Agreement dated 7 December 2016,<br \/>\nbetween EUMETSAT and the Met Office, UK,<br \/>\nby one or more partners within the NWP SAF.<br \/>\nThe partners in the NWP SAF are the Met Office,<br \/>\nECMWF, DWD and Meteo France.<\/i><\/p>\n<p><a name=\"Top\"><\/a><i>\u00a9 2021, EUMETSAT, All Rights Reserved. <\/i><\/p>\n<h4><a name=\"Top\"><\/a>Contents<\/h4>\n<p><a href=\"#Intro\">1. Introduction<\/a><br \/>\n<a href=\"#Run\">2. Compiling and Running the 1D-Var Code<\/a><br \/>\n<a href=\"#FilesIn\">3. Input Files<\/a><br \/>\n<a href=\"#FilesOut\">4. Output Files<\/a><br \/>\n<a href=\"#newtype\">5. Setting Up a New Observation Type<\/a><br \/>\n<a href=\"#simspec\">6. Simulating observations<\/a><br \/>\n<a href=\"#pcscores\">7. Use of PC scores<\/a><br \/>\n<a href=\"#surfemis\">8. Surface emissivity retrieval<\/a><br \/>\n<a href=\"#notes\">9. Notes, bugs and features<\/a><br \/>\n<a href=\"#help\">10. Getting Help<\/a><br \/>\n<a href=\"#Ref\">11. References<\/a><br \/>\n<a href=\"#Ack\">12. Acknowledgements<\/a><br \/>\n<i>(Appendices are stored as seperate files to reduce the size of<br \/>\nthe printout for this document)<\/i><br \/>\n<a href=\"https:\/\/nwp-saf.eumetsat.int\/site\/download\/documentation\/1dvar\/nwpsaf-mo-ds-026_top_level_design.pdf\">Appendix A. Top Level Design<\/a><br \/>\nNote that this refers to a separate PDF document and<br \/>\nsupersedes the old Appendix A.<br \/>\n<a href=\"https:\/\/nwp-saf.eumetsat.int\/site\/download\/documentation\/1dvar\/AppendixB.pdf\">Appendix B. Minimization<\/a><br \/>\n<a href=\"https:\/\/nwp-saf.eumetsat.int\/site\/download\/documentation\/1dvar\/AppendixC.pdf\">Appendix C. Infrared cloudy Retrievals<\/a><br \/>\n<a href=\"https:\/\/nwp-saf.eumetsat.int\/site\/download\/documentation\/1dvar\/AppendixD.pdf\">Appendix D. Microwave cloud liquid water retrieval<\/a><br \/>\n<a href=\"AppendixE.html\">Appendix E. Instructions for using the observation simulation code<\/a><\/p>\n<p><a name=\"Intro\"><\/a><\/p>\n<h4><a name=\"Intro\"><\/a>1. Introduction<\/h4>\n<p><a name=\"Intro\"><\/a>This document describes a stand-alone 1DVar code for<br \/>\nnadir-viewing passive sounding satellite instruments that has been<br \/>\ndeveloped at the Met Office as part of the NWP SAF. The code contains<br \/>\nthe merged capabilities of the obsolete Met Office, ECMWF and SSMIS<br \/>\n1D-Var schemes. It was originally developed for the IASI instrument<br \/>\nbut it may be used with many different sounding instruments with<br \/>\nminimal changes.<\/p>\n<p><a name=\"Intro\"><\/a>The philosophy behind the development of this<br \/>\ncode was to produce a flexible, stand-alone 1DVar retrieval<br \/>\nsystem that may be used for a wide variety of satellite<br \/>\ninstruments. However, it is not exhaustive. Extra subroutines could be<br \/>\nadded by the user to meet their own requirements, such as code to<br \/>\nadd features such as cloud detection, or code may be modified to include<br \/>\nextra retrieval variables.<\/p>\n<p><a name=\"Intro\"><\/a>The program functions first by reading in user<br \/>\nsupplied background and observation data (together with<br \/>\nappropriate error covariance matrices). The routines that are<br \/>\nprovided to do this assume data is supplied in a predefined<br \/>\nASCII format, but these routines can be replaced with ones more<br \/>\nspecific to the format of data that is to be used.<\/p>\n<p><a name=\"Intro\"><\/a>Routines for channel selection and cloud<br \/>\ndetection are included but bias correction needs to be performed<br \/>\nby the user, or a bias correction subroutine added at the appropriate<br \/>\nplaceholder in the code.<\/p>\n<p><a name=\"Intro\"><\/a>Retrievals are made through the optimal<br \/>\nestimation methods of Rodgers (1976). Three <a href=\"AppendixB.html#Min\"><br \/>\nminimisation routines<\/a> are provided. The one that is to be used<br \/>\ndepends on the size and linearity of the problem.<\/p>\n<p>A radiative transfer program is required that will supply both<br \/>\nradiances and Jacobians and this is accessed through a general<br \/>\npurpose interface routine. Currently RTTOV Versions 12 and 13<br \/>\nare implemented.<\/p>\n<p>The code is written in European Standard Fortran 90 and advanced<br \/>\nF90 features are used as much as possible. The code was originally<br \/>\ndesigned to closely follow the structures in the Met Office&#8217;s<br \/>\nObservation Processing System (OPS).<\/p>\n<p><a href=\"#Top\">[ Return to Top ]<\/a><\/p>\n<h4><a name=\"Run\"><\/a>2. Compiling and Running the Code.<\/h4>\n<p>Instructions for compiling and testing the code<br \/>\ncan be found in the <tt>readme.txt<\/tt> file in the top<br \/>\n1DVar directory. Further information can be found in the Release Note.<\/p>\n<p>For this release, the code should be run from a subdirectory.<br \/>\nThe directory<br \/>\n<tt>WorkDir<\/tt> is provided for your convenience with some test and<br \/>\nexample scripts. This directory can be copied and\/or renamed.<br \/>\nThe<br \/>\n<tt>NWPSAF_1DVar<\/tt> executable should be linked into this directory.<br \/>\nNamelist and data files will also need to be linked in.<br \/>\nThe example scripts show<br \/>\nhow this can be done.<\/p>\n<p>To run the code successfully, relevant radiative transfer<br \/>\ncoefficients files must also be located in the working directory<br \/>\n(WorkDir or a copy thereof).<br \/>\nThe coefficients files must be compatible with the<br \/>\nradiative transfer model chosen and the instrument whose data is<br \/>\nbeing used.<br \/>\nCoefficients files can be downloaded for free from<br \/>\nthe NWPSAF<br \/>\n<a href=\"http:\/\/nwpsaf.eu\/deliverables\/rtm\/index.html\" target=\"_blank\" rel=\"noopener\">RTTOV<br \/>\nwebsite<\/a>.<br \/>\nPlease read through the readme.txt file for instructions on<br \/>\nensuring your coefficient files are named correctly.<\/p>\n<p><a href=\"#Top\">[ Return to Top ]<\/a><\/p>\n<h4><a name=\"FilesIn\"><\/a>3. Input Files<\/h4>\n<p><a href=\"#controlnl\">3a. Control Files: ControlData.NL<\/a><br \/>\n<a href=\"#retrievalnl\">3b. Control Files: Retrievals.NL<\/a><br \/>\n<a href=\"#obs\">3c. Data Files: ObsFile.dat<\/a><br \/>\n<a href=\"#bg\">3d. Data Files: Background.dat<\/a><br \/>\n<a href=\"#Rmatrix\">3e. Auxiliary Files: Rmatrix.dat<\/a><br \/>\n<a href=\"#Bmatrix\">3f. Auxiliary Files: Bmatrix.dat<\/a><br \/>\n<a href=\"#channelchoice\">3g. Auxiliary Files: ChannelChoice.dat<\/a><br \/>\n<a href=\"#EmisEigenVec\">3h. Auxiliary File: EmisEigenVec<\/a><br \/>\n<a href=\"#EmisPCAtlas\">3i. Auxiliary File: EmisPCAtlas <\/a><\/p>\n<p>There are two main <a href=\"#controlnl\">control files<\/a>, <tt>ControlData.NL<\/tt><br \/>\nand <tt>Retrieval.NL<\/tt>, and two main <a href=\"#obs\">data<br \/>\nfiles<\/a>, <tt>ObsFile.dat<\/tt> and <tt>Background.dat<\/tt>.<\/p>\n<p><a href=\"#aux\">Auxiliary data<\/a> such as error covariance matrices<br \/>\nand channel selection choices are stored for each data type in a<br \/>\ndirectory called <tt>xxx_COEFFS_DIR<\/tt> where <tt>xxx<\/tt><br \/>\nrefers to the data type being processed (e.g., IASI_COEFFS_DIR). The location<br \/>\nof this directory is specified using the environment variable <tt>COEFFS_DIR<\/tt>;<br \/>\nfor example, the test script <tt>Run_1DVar_test.sh<\/tt> contains the statement:<\/p>\n<p><tt>export COEFFS_DIR=${topdir}\/${INSTRUMENT2}_COEFFS_DIR<\/tt><\/p>\n<p>All input files are ASCII and all values are in free-format.<\/p>\n<p><a name=\"controlnl\"><\/a> <b>3a. Control Files: ControlData.NL<\/b><\/p>\n<p><tt>ControlData.NL<\/tt> is a Fortran90<br \/>\nnamelist file containing the input parameters required for the<br \/>\nrunning of the code. The table below lists the parameters that<br \/>\nmay be specified through this file and which ones would normally<br \/>\nbe required. As one can see most of these parameters have a<br \/>\ndefault value. This file and the<br \/>\nNWPSAF_Read_ControlData subroutine that reads it may be easily expanded<br \/>\nin future if one wants to add further options. Note that there are<br \/>\ncomments included in this file as supplied, but some Fortran90<br \/>\ncompilers may not allow this, in which case they would need to be<br \/>\nremoved.<\/p>\n<p>&nbsp;<\/p>\n<h4>Namelist Control for IASI_1DVar<\/h4>\n<table border=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td><b>Variable<\/b><\/td>\n<td><b>Required?<\/b><\/td>\n<td><b>Default Value<\/b><\/td>\n<td><b>Type<\/b><\/td>\n<td width=\"50%\"><b>Notes<\/b><\/td>\n<\/tr>\n<tr>\n<td>FirstOb, LastOb<\/td>\n<td>No<\/td>\n<td>1, Number of obs.<\/td>\n<td>INTEGER<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>GeneralMode<\/td>\n<td>No<\/td>\n<td>10=&#8217;ProductionMode&#8217;<\/td>\n<td>INTEGER<\/td>\n<td>Allowed values are 0=&#8217;Operational&#8217;, 10=&#8217;Production&#8217;,<br \/>\n20=&#8217;Diagnostic&#8217;, 30=&#8217;Debug&#8217; and 40=&#8217;Verbose&#8217;. Note that Operational<br \/>\nand Production modes are the same in practice.<\/td>\n<\/tr>\n<tr>\n<td>DetectCloud<\/td>\n<td>No<\/td>\n<td>True<\/td>\n<td>LOGICAL<\/td>\n<td>Note this is a cloud detection test designed for use with IR sounders.<\/td>\n<\/tr>\n<tr>\n<td>CostThresh_Land<br \/>\nCostThresh_Sea<\/td>\n<td>Yes<\/td>\n<td>-9999.<\/td>\n<td>REAL<\/td>\n<td>If DetectCloud is TRUE<\/td>\n<\/tr>\n<tr>\n<td>CostThresh_IRWindow_Land<br \/>\nCostThresh_IRWindow_Sea<\/td>\n<td>Yes<\/td>\n<td>-9999.<\/td>\n<td>REAL<\/td>\n<td>If DetectCloud is TRUE<\/td>\n<\/tr>\n<tr>\n<td>CloudAbsThresh_IRWindow<\/td>\n<td>Yes<\/td>\n<td>-9999.<\/td>\n<td>REAL<\/td>\n<td>If DetectCloud is TRUE<\/td>\n<\/tr>\n<tr>\n<td>HighCloudAbsThresh_IRWindow<\/td>\n<td>Yes<\/td>\n<td>-9999.<\/td>\n<td>REAL<\/td>\n<td>If DetectCloud is TRUE<\/td>\n<\/tr>\n<tr>\n<td>Perform1DVar<\/td>\n<td>No<\/td>\n<td>True<\/td>\n<td>LOGICAL<\/td>\n<td>Purpose of running with false might be to test<br \/>\nthe setup or IO before running with true<\/td>\n<\/tr>\n<tr>\n<td>Minimisation_Method<\/td>\n<td>No<\/td>\n<td>1=&#8217;Newtonian&#8217;<\/td>\n<td>INTEGER<\/td>\n<td>0=None (sets Perform1DVar to false), 1=Newtonian, 2=Marquardt-Levenberg<\/td>\n<\/tr>\n<tr>\n<td>MaxIterations<\/td>\n<td>No<\/td>\n<td>10<\/td>\n<td>INTEGER<\/td>\n<td>Maximum number of iterations in the minimisation.<\/td>\n<\/tr>\n<tr>\n<td>DoTExtrapolation<\/td>\n<td>No<\/td>\n<td>TRUE<\/td>\n<td>LOGICAL<\/td>\n<td>If using a background profile where the top level is<br \/>\nlower than 0.01hPa then setting this option to true means<br \/>\nthe profile is extrapolated to 0.01hPa<\/td>\n<\/tr>\n<tr>\n<td>DeltaJ<\/td>\n<td>No<\/td>\n<td>0.01<\/td>\n<td>REAL<\/td>\n<td>Maximum fractional change in cost function for<br \/>\nconvergence.<\/td>\n<\/tr>\n<tr>\n<td>SmallJCost_Gradient<\/td>\n<td>No<\/td>\n<td>1.<\/td>\n<td>REAL<\/td>\n<td>Maximum value of cost function gradient (in terms of<br \/>\ntotal cost) for convergence. Marquardt-Levenberg<br \/>\nminimisation only.<\/td>\n<\/tr>\n<tr>\n<td>Additional_Cost_Function<\/td>\n<td>No<\/td>\n<td>0=None<\/td>\n<td>INTEGER<\/td>\n<td>0=None, 1=CloudBoundaries<br \/>\nFor retrieval of cloud<\/td>\n<\/tr>\n<tr>\n<td>Max_ML_Iterations<\/td>\n<td>No<\/td>\n<td>10<\/td>\n<td>INTEGER<\/td>\n<td>Max. number of iterations for the Marquardt-Levenberg inner loop (M-L minimisation only).<\/td>\n<\/tr>\n<tr>\n<td>Gamma_Factor<\/td>\n<td>No<\/td>\n<td>10<\/td>\n<td>REAL<\/td>\n<td>Factor by which Gamma is changed between iterations.<br \/>\nMarquardt-Levenberg minimisation only<\/td>\n<\/tr>\n<tr>\n<td>GammaMax<\/td>\n<td>No<\/td>\n<td>10<sup>25<\/sup><\/td>\n<td>REAL<\/td>\n<td>Marquardt-Levenberg minimisation only<\/td>\n<\/tr>\n<tr>\n<td>Allow_Eqn_101<\/td>\n<td>No<\/td>\n<td>.TRUE.<\/td>\n<td>LOGICAL<\/td>\n<td>Set to false if the Eqn 101 minimisation is never to<br \/>\nbe used.<\/td>\n<\/tr>\n<tr>\n<td>Force_Eqn_101<\/td>\n<td>No<\/td>\n<td>.FALSE.<\/td>\n<td>LOGICAL<\/td>\n<td>Set to true to use Eqn 101 in all situations<br \/>\n(Marquardt-Levenberg and additional cost function terms<br \/>\ncannot be used in this case).<\/td>\n<\/tr>\n<tr>\n<td>MaxChanUsed<\/td>\n<td>No<\/td>\n<td>10000<\/td>\n<td>INTEGER<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>Cloud_Min_Pressure<\/td>\n<td>No<\/td>\n<td>100hPa<\/td>\n<td>REAL<\/td>\n<td>Minimum allowed pressure for retrieved cloud top in<br \/>\nhPa. Retrieval of cloud only. Decrease this value if non-convergence encountered in the case of very high cloud.<\/td>\n<\/tr>\n<tr>\n<td>Use_EmisAtlas<\/td>\n<td>No<\/td>\n<td>.FALSE.<\/td>\n<td>LOGICAL<\/td>\n<td>Switch to control whether an RTTOV emissivity atlas is used<br \/>\nor not.<\/td>\n<\/tr>\n<tr>\n<td>Atlas_Dir<\/td>\n<td>No<\/td>\n<td>&#8216;EmisAtlas&#8217;<\/td>\n<td>CHARACTER<\/td>\n<td>Directory containing the emissivity atlas<\/td>\n<\/tr>\n<tr>\n<td>Atlas_Id_Ir<\/td>\n<td>No<\/td>\n<td>1<\/td>\n<td>INTEGER<\/td>\n<td>Allows choice between IR atlases (1=UWIRemis, 2=CAMEL 2007, 3=CAMEL clim)<\/td>\n<\/tr>\n<tr>\n<td>Atlas_Id_Mw<\/td>\n<td>No<\/td>\n<td>1<\/td>\n<td>INTEGER<\/td>\n<td>Allows choice between MW atlases (1=TELSEM2, 2=CNRM)<\/td>\n<\/tr>\n<tr>\n<td>Read_CLW_Background<\/td>\n<td>No<\/td>\n<td>FALSE<\/td>\n<td>LOGICAL<\/td>\n<td>False = No clw profile in the Background file and<br \/>\nTrue=clw profile in the Background file<\/td>\n<\/tr>\n<tr>\n<td>Retrieve_qtotal<\/td>\n<td>No<\/td>\n<td>.FALSE. = LWP Retrieval<\/td>\n<td>LOGICAL<\/td>\n<td>False=LWP retrieval, True=Qtotal retrieval<\/td>\n<\/tr>\n<tr>\n<td>NPCScoresSurfEmiss<\/td>\n<td>No<\/td>\n<td>12<\/td>\n<td>INTEGER<\/td>\n<td>Number of PC scores to use for IR surface emissivity retrievals<\/td>\n<\/tr>\n<tr>\n<td>MwScattering<\/td>\n<td>No<\/td>\n<td>.FALSE.<\/td>\n<td>LOGICAL<\/td>\n<td>True=Use RTTOV-SCATT for microwave clw retrievals<\/td>\n<\/tr>\n<tr>\n<td>EnahncedDiagnostics<\/td>\n<td>No<\/td>\n<td>.FALSE.<\/td>\n<td>LOGICAL<\/td>\n<td>Produces extra output files (see <a href=\"#FilesOut\">Output<br \/>\nFiles<\/a>)<\/td>\n<\/tr>\n<tr>\n<td>Gas_Units<\/td>\n<td>No<\/td>\n<td>2<\/td>\n<td>INTEGER<\/td>\n<td>Units for humidity profile input to RTTOV. 0 = ppmv w.r.t. dry<br \/>\nair (compatibility with previous NWPSAF-1DVar releases). 2 =<br \/>\nppmv w.r.t. moist air.<\/td>\n<\/tr>\n<tr>\n<td>Legacy_Settings<\/td>\n<td>No<\/td>\n<td>.FALSE.<\/td>\n<td>LOGICAL<\/td>\n<td>Sets RTTOV options interp_mode=1 and use_q2m=.false. for<br \/>\ntesting using old datasets.<\/td>\n<\/tr>\n<tr>\n<td>LwpSD<\/td>\n<td>No<\/td>\n<td>0.2<\/td>\n<td>REAL<\/td>\n<td>Sets the background error for liquid water path retrievals (standard deviation).<\/td>\n<\/tr>\n<tr>\n<td>WindspeedSD<\/td>\n<td>No<\/td>\n<td>1.4<\/td>\n<td>REAL<\/td>\n<td>Sets the background error for wind speed retrievals (standard deviation).<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<p>Two directory locations, which in previous releases were set in the<br \/>\n<a href=\"#controlnl\"> ControlData.NL file<\/a><a>,<br \/>\nare now set via environment variables.<br \/>\nThese are:<\/a><\/p>\n<ul>\n<li><tt>coeffsdir<\/tt>: now environment variable <tt>COEFFS_DIR<\/tt><\/li>\n<li><tt>outputdir<\/tt>: now environment variable <tt>OUTPUT_DIR<\/tt><\/li>\n<\/ul>\n<p>These variables should be set and exported in the shell (or running<br \/>\nscript) before calling the 1D-Var. Please see the file<br \/>\n<tt>WorkDir\/Run_1DVar_test.ksh<\/tt> to see how this should be done.<\/p>\n<p>Example ControlData.NL files can be found in the<br \/>\nSample_Namelists directory. When used, they should be copied, or linked<br \/>\nto rename them exactly &#8220;ControlData.NL&#8221;. An example ControlData.NL<br \/>\nfile is:<\/p>\n<pre>! AIRS Control file for IASI_1DVar\r\n\r\n! ******** THESE COMMENTS MAY NEED TO BE REMOVED IF COMPILING ***********\r\n! ******** WITH F90 (rather than F95) ***********************************\r\n\r\n! This controls the verbosity of the output 0=Minimal, 40=verbose\r\n&amp;Control  GeneralMode=40 \r\n! For the minimisation option, 1 is Newtonian, 2 is Marquardt-Levenberg\r\n          Minimisation_Method=2\r\n          MaxIterations=10\r\n! These are cloud cost thresholds:\r\n          CostThresh_Land=20.\r\n          CostThresh_Sea=20.\r\n          CostThresh_IRWindow_Land=0.\r\n          CostThresh_IRWindow_Sea=0.\r\n          CloudAbsThresh_IRWindow=-10.\r\n          HighCloudAbsThresh_IRWindow=-55. \/\r\n<\/pre>\n<p><a href=\"#FilesIn\">[ Return to Top of Section ]<\/a><\/p>\n<p><a name=\"retrievalnl\"><\/a> <b>3b. Control Files: Retrievals.NL<\/b><\/p>\n<p><tt>Retrieval.NL<\/tt> controls the<br \/>\nvariables that are to be retrieved and provides the mapping<br \/>\nbetween the minimization vector, the RT model vector and the<br \/>\nB-matrix (Figure 1 gives and example of how the three vectors<br \/>\nare mapped for a typical IASI retrieval).<\/p>\n<p><img decoding=\"async\" src=\"Trans.gif\" width=\"100%\" \/><\/p>\n<p><center>Fig. 1. Mapping of retrieval vector,<br \/>\nRT vector and B-matrix<\/center>The <tt>Retrieval.NL<\/tt> file is a<br \/>\nFortran90 namelist file. The quantities to be retrieved are<br \/>\nspecified through the presence of two- or three-element matrices<br \/>\nin this file. Absence of a quantity from this file means that<br \/>\nthis element is not to be retrieved.<\/p>\n<p>Example Retrieval.NL files can be found in the Sample_Namelists<br \/>\ndirectory and when copied or linked into the working<br \/>\ndirectory should have any satellite instrument or number of levels<br \/>\nremoved from the file name and be called exactly &#8220;Retrieval.NL&#8221;.<br \/>\nA typical Retrieval.NL<br \/>\nfile for a 54 level retrieval is shown below.<br \/>\nIn addition there<br \/>\nare sample Retrieval.NL files for 43, 54 and 70 level retrievals<br \/>\nsupplied with the package which are used for testing that your<br \/>\ninstallation is working properly. All possible namelist entries are<br \/>\nincluded here (apart from ozone) but, in practice, only those<br \/>\nquantities that are actually<br \/>\nbeing retrieved need to be included.<\/p>\n<pre>! Retrieval set up file for IASI\r\n!\r\n! ******** THESE COMMENTS MAY NEED TO BE REMOVED IF COMPILING ***********\r\n! ******** WITH F90 (rather than F95) ***********************************\r\n\r\n &amp;Retrieval Temperature= 1,54,1\r\n           Humidity= 26,29,55\r\n           Surface_Temperature= 1,84\r\n           Surface_Humidity= 1,85\r\n           Surface_Pressure= 0,0\r\n           Skin_Temperature= 1,86\r\n           Cloud_Liquid_Water= 0,0\r\n           Cloud_Top_Pressure= 0,0\r\n           Cloud_Fraction= 0,0\r\n           Surface_UWind= 0,0\r\n           Surface_VWind= 0,0\r\n           Surface_Emissivity_PC= 1,0 \/\r\n<\/pre>\n<p>The three-element lists are for<br \/>\nprofiles. The first two elements denote the top levels in the<br \/>\natmosphere and the number of levels that are to be retrieved<br \/>\nrespectively. The pressure profile of the atmosphere being<br \/>\ndefined in the <tt>Background.dat<\/tt> file. The final element<br \/>\nis the position in the background error covariance matrix that<br \/>\ncorresponds to the top level to be retrieved. If any of these<br \/>\nelements are zero, the profile is not retrieved.<\/p>\n<p>In the example given, therefore, 54 levels of temperature are to be<br \/>\nretrieved starting with the first (top) level.<br \/>\nOnly 29 humidity levels are to be retrieved<br \/>\nstarting at level 26 (and finishing with level 54). Ozone is not<br \/>\nto be retrieved at all. In the background error covariance<br \/>\nmatrix, the first 54 elements are for temperature, while<br \/>\nelements 55-84 correspond to the humidity on levels 26-54.<\/p>\n<p>The two-element lists are for scalar<br \/>\n(mostly surface) quantities. If the first element is non-zero<br \/>\nthe quantity is to be retrieved (provided the second entry is<br \/>\nvalid). The second entry points to the position in the<br \/>\nbackground error covariance matrix for this quantity. For<br \/>\nmicrowave liquid water path (LWP) retrievals,<br \/>\na covariance matrix not correlated to any other variables is<br \/>\nassumed and this single value (0.2 by default) is assigned in the<br \/>\nroutine NWPSAF_InitBmatrix.f90. The LWP error can be changed using the<br \/>\ncontrol namelist variable <tt>LwpSD<\/tt>.<br \/>\nHence, if LWP is to be retrieved, while the first element has to be<br \/>\nnon-zero, the second element has to remain 0.<br \/>\nSimilarly, for surface wind, a default error value of 1.4 m\/s is<br \/>\nassumed, which can be modified using the control namelist variable<br \/>\n<tt>WindspeedSD<\/tt>.<\/p>\n<p>Cloud_Top_Pressure and Cloud_Fraction do<br \/>\nnot require a background error covariance entry as the default<br \/>\nis to assume large background errors for these quantities if<br \/>\nthey are to be retrieved. The retrieval of these cloudy<br \/>\nparameters uses some additional code to the normal retrieval.<br \/>\nThe methodology for this is documented in<br \/>\n<a href=\"AppendixC.html\">Appendix C<\/a>.<\/p>\n<p>In the example given, surface temperature, skin temperature and<br \/>\nsurface humidity are retrieved.<\/p>\n<p>The last line triggers a retrieval of surface emissivity<br \/>\nusing principal components as retrieval vector state elements.<\/p>\n<p><a href=\"#FilesIn\">[ Return to Top of Section ]<\/a><\/p>\n<p><a name=\"obs\"><\/a> <b>3c. Data Files: Obsfile.dat<\/b><\/p>\n<p>The <tt>Obsfile.dat<\/tt> file contains the<br \/>\nobservation information. All data are specified in free format<br \/>\nwith mandatory colons delimiting the explanatory labels in the<br \/>\nheader.<\/p>\n<p>The file starts with 10 lines that are reserved<br \/>\nfor users comments. Next comes header information which details<br \/>\nthe number of observations present in the file plus information<br \/>\non which channels have been used to make up a composite<br \/>\ninstrument (such as ATOVS).<\/p>\n<p>There are are three optional header entries:<br \/>\n&#8220;Units:&#8221;, Composite Instruments:&#8221; and &#8220;Channels:&#8221;.<\/p>\n<p>&#8220;Units: &#8221; may be followed by one of &#8220;BT&#8221;, &#8220;Radiance&#8221; or &#8220;PC Score&#8221;. If<br \/>\nno &#8220;Units: &#8221; line is found, the data will be assumed to be brightness<br \/>\ntemperature, so there should be no need to modify observation files used<br \/>\nwith previous versions of the 1D-Var software.<br \/>\nNote that the &#8220;PC Score&#8221;<br \/>\noption is only available for IASI or AIRS (only these are supported by<br \/>\nPC-RTTOV at the present time) and can only be used in single instrument<br \/>\nmode, not as part of a composite instrument.<\/p>\n<p>&#8220;Composite Instruments:&#8221; is used where there is<br \/>\nthe possibility of more than one &#8220;composite instrument&#8221; (a<br \/>\ncomposite instrument being a collection of one (e.g, IASI) or<br \/>\nmore (e.g., ATOVS) instruments that are treated as a single<br \/>\nentity for retrieval purposes). The composite instrument entry<br \/>\nwill then specify the number of instruments followed on separate<br \/>\nlines of text with the names of the composite instruments (these<br \/>\nshould be identical with the required entries in the RMatrix<br \/>\nfiles). E.g. for ATOVS on NOAA satellites 15 and 16:<\/p>\n<pre>This is a test ATOVS observations file\r\n\r\nThis is based on a RTTOV simulated set of radiances from NOAA-15\r\nwhich is computed from ADC's background profile surf emis=0 \r\nRWS 22nd March 2001\r\nThere are 10 header lines in total here!!!\r\n\r\n\r\n\r\nSo this is line 10.\r\nNumber of Observations in File:    10\r\nNo. of Chans per Observation:      40\r\nTotal Number of instruments making up observations : 6\r\n*** In the following Series, Platform and Instrument are defined  ***\r\n*** according to the relevant RT Model definitions (if required): ***\r\nUnits: BT\r\nComposite Instruments: 2\r\nNOAA-15 ATOVS\r\nNOAA-16 ATOVS\r\nSat. Series   Platform   Instrument First_Channel   Last_Channel  Sat ID\r\n    1           15           0           1               20       15 \r\n    1           15           3          21               35       15\r\n    1           15           4          36               40       15\r\n    1           16           0           1               20       16 \r\n    1           16           3          21               35       16\r\n    1           16           4          36               40       16\r\nChannels:\r\n    1    2    3    4    5    6    7    8    9   10   11   12   13   14   15   16\r\n   17   18   19   20   21   22   23   24   25   26   27   28   29   30   31   32\r\n   33   34   35   36   37   38   39   40\r\n----------------------------------------------------------------------\r\nObs ID:              1 Obs Type:          2 Satellite ID:    15\r\nLatitude:       0.000 Longitude:     0.000 Elevation:        0.0\r\nSurface Type:       1 Sat Zen Angle:   0.000 Solar Zen Ang:   38.000\r\nBrightness Temperatures:\r\n      226.717      218.949      219.645      224.452      236.374      247.804\r\n      257.609      274.562      247.897      269.388      248.331      226.588\r\n      261.211      252.591      241.597      236.591      266.911      271.983\r\n      271.537     -9999.00      152.095      152.105      209.206      245.611\r\n      244.334      233.650      226.083      220.954      216.761      215.937\r\n      217.657      221.861      233.096      245.561      200.407      206.016\r\n      235.261      242.110      252.165      261.941\r\nObs ID:              2 Obs Type:          2 Satellite ID:    16\r\nLatitude:       0.000 Longitude:     0.000 Elevation:        0.0\r\nSurface Type:       1 Sat Zen Angle:   0.000 Solar Zen Ang:   38.000\r\nBrightness Temperatures:\r\n      225.552      219.724      219.573      226.521      237.666      246.276\r\n      255.913      267.355      250.477      259.886      251.149      229.323\r\n      260.399      248.081      240.887      237.802      264.660      266.901\r\n      266.492     -9999.00      152.369      156.488      217.802      243.712\r\n      243.308      234.084      225.322      220.200      217.276      217.978\r\n<\/pre>\n<p>For the case where the &#8220;Composite Instruments&#8221; option<br \/>\nisn&#8217;t specified (e.g., for IASI) the section between &#8220;Number of<br \/>\nObservations&#8221; and &#8220;&#8212;&#8212;&#8212;&#8211;&#8221; above should look something like this<br \/>\n(noting that the &#8220;Channels:&#8221; section is optional.):<\/p>\n<pre>Number of Observations in File :    980\r\nNo. of Chans per Observation:    8461\r\nNumber of instruments making up observations : 1\r\n*** In the following Series, Platform and Instrument are defined  *** \r\n*** according to the relevant RT Model definitions (if required): ***\r\nUnits: BT\r\nSat. Series   Platform   Instrument First_Channel   Last_Channel  Sat ID\r\n    1            1           1           1             8461        300\r\n----------------------------------------------------------------------\r\n<\/pre>\n<p>The &#8220;Sat ID&#8221; is used to keep track of the instruments<br \/>\nwhere more than one is being used at a time (it was previously<br \/>\ncalled the &#8220;WMO No.&#8221; but this was misleading).<\/p>\n<p>The &#8220;Channels&#8221; option is used for those cases<br \/>\nwhere only a subset of available instrument channels are<br \/>\nrequired. After this the instrument channels that are actually<br \/>\nbeing used are listed. This is purely to allow the correct<br \/>\nchannels to be set up in the RT code and in all other places<br \/>\n(except the<a href=\"#Rmatrix\"> R-matrix<\/a> &#8211; see below)<br \/>\nthe <i>n<\/i> input channels are referred to as channels 1 &#8230; <i>n<\/i>.<\/p>\n<p>After the headers lines, each observation is listed, prefixed by<br \/>\na sub-header detailing auxiliary data for the observation in<br \/>\nquestion such as observation number, latitude, longitude,<br \/>\nsatellite view angle, etc.<\/p>\n<p><center><b>Observation sub-headers in ObsFile.dat<\/b><\/center><\/p>\n<table border=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td width=\"20%\"><b>Entry<\/b><\/td>\n<td><b>Notes<\/b><\/td>\n<td><b>Type<\/b><\/td>\n<td><b>Variable set in IASI_Read_Observations<\/b><\/td>\n<\/tr>\n<tr>\n<td colspan=\"4\"><i>First sub-header line:<\/i><\/td>\n<\/tr>\n<tr>\n<td>Obs ID<\/td>\n<td>Integer<\/td>\n<td>Number identifying the current observation (usually<br \/>\n1-Number of Obs.)<\/td>\n<td><tt>Observations % ID<\/tt><\/td>\n<\/tr>\n<tr>\n<td>Obs Type<\/td>\n<td>Integer<\/td>\n<td>Obsolete but retained for backward compatibility<\/td>\n<td>&#8211;<\/td>\n<\/tr>\n<tr>\n<td>Satellite ID<\/td>\n<td>Integer<\/td>\n<td>Specifies the satellite to be used (ref. &#8220;Sat ID&#8221; in<br \/>\nmain header)<\/td>\n<td><tt>Observations % SatID<\/tt><\/td>\n<\/tr>\n<tr>\n<td colspan=\"4\"><i>Second sub-header line (Optional):<\/i><\/td>\n<\/tr>\n<tr>\n<td>Year<\/td>\n<td>Integer<\/td>\n<td>Year of Observation (YYYY)<\/td>\n<td><tt>Observations % Date(1)<\/tt><\/td>\n<\/tr>\n<tr>\n<td>Month<\/td>\n<td>Integer<\/td>\n<td>Month of Observation (MM).<\/td>\n<td><tt>Observations % Date(2)<\/tt><\/td>\n<\/tr>\n<tr>\n<td>Day<\/td>\n<td>Integer<\/td>\n<td>Day of Observation (DD)<\/td>\n<td><tt>Observations % Date(3)<\/tt><\/td>\n<\/tr>\n<tr>\n<td colspan=\"4\"><i>Third sub-header line:<\/i><\/td>\n<\/tr>\n<tr>\n<td>Latitude<\/td>\n<td>Real<\/td>\n<td>Latitude of Observations (\u00c2\u00b0N)<\/td>\n<td><tt>Observations % Latitude % Value<\/tt><\/td>\n<\/tr>\n<tr>\n<td>Longitude<\/td>\n<td>Real<\/td>\n<td>Longitude of Observations (\u00c2\u00b0E).<\/td>\n<td><tt>Observations % Longitude % Value<\/tt><\/td>\n<\/tr>\n<tr>\n<td>Elevation<\/td>\n<td>Real<\/td>\n<td>Height of surface (metres above sea level). (Not<br \/>\ncurrently used)<\/td>\n<td><tt>Observations % Elevation<\/tt><\/td>\n<\/tr>\n<tr>\n<td colspan=\"4\"><i>Fourth sub-header line:<\/i><\/td>\n<\/tr>\n<tr>\n<td>Surface Type<\/td>\n<td>Integer<\/td>\n<td>Type of surface. 1=Sea; 2=SeaIce; 3=Land; 4=Highland;<br \/>\n5=Mismatch. For types 3-5, land is assumed by the<br \/>\nradiative transfer model.<\/td>\n<td><tt>Observations % Surface<\/tt><\/td>\n<\/tr>\n<tr>\n<td>Sat Zen Angle<\/td>\n<td>Real<\/td>\n<td>Satellite Zenith Angle at surface (\u00c2\u00b0). (This was in<br \/>\nprevious versions erroneously labelled Sat View Angle).<\/td>\n<td><tt>Observations % SatZenith<\/tt><\/td>\n<\/tr>\n<tr>\n<td>Solar Zen. Ang.<\/td>\n<td>Real<\/td>\n<td>Solar Zenith Angle at surface (\u00c2\u00b0)<\/td>\n<td><tt>Observations % SolarZenith<\/tt><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<p>Please note once more that the colons in the header and<br \/>\nsub-header lines are used by the program as delimiters and must be<br \/>\nincluded. Please also note that the second (optional) sub-header<br \/>\nline is required when using an emissivity atlas.<br \/>\nIn all other situations it may be omitted. Following the<br \/>\nsub-header lines, the observed brightness temperatures are listed<br \/>\n(free-format).<\/p>\n<p>This file and the subroutine that reads it may be replaced by<br \/>\none in a format defined by the user.<\/p>\n<p><a href=\"#FilesIn\">[ Return to Top of Section ]<\/a><\/p>\n<p><a name=\"bg\"><\/a> <b>3d. Data Files: Background.dat<\/b><\/p>\n<p>The <tt>Background.dat<\/tt> file starts with a 10<br \/>\nheader lines that are reserved for user&#8217;s comments.<\/p>\n<p>The next three lines are general information for<br \/>\nthe file:<br \/>\nThe first of these lines is the number of profiles contained in<br \/>\nthe file. This may either be unity (in which case the same<br \/>\nbackground is used for all observations) or be the same as the<br \/>\nnumber of observations (i.e., one background per observation).<br \/>\nThe second line is the number of levels for each profile. In the<br \/>\ncurrent implementation this should be set to 43.<br \/>\nThe third and final line defines the choice for the units for<br \/>\nwater vapour abundance:<\/p>\n<table border=\"0\">\n<tbody>\n<tr>\n<td><b>Value<\/b><\/td>\n<td><b>Definition<\/b><\/td>\n<\/tr>\n<tr>\n<td>1<\/td>\n<td>volume mixing ratio in ppmv w.r.t. moist air (see more info below)<\/td>\n<\/tr>\n<tr>\n<td>2<\/td>\n<td>mass mixing ratio in kg\/kg w.r.t. moist air (see more info below)<\/td>\n<\/tr>\n<tr>\n<td>3<\/td>\n<td>relative humidity<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>The minimisation itself is performed using a quantity specified as<br \/>\nthe natural logarithm of q in (kg\/kg), Ln(q).<\/p>\n<p>Each profile is then listed with three comment<br \/>\nlines preceeding. The profiles are presented in four<br \/>\ncolumns in free-format (pressure (Pa or hPa) ), temperature in Kelvin,<br \/>\nWater Vapour in the predefined units as discussed above, and Ozone in<br \/>\nkg\/kg with respect to moist air).<br \/>\nFinally surface information is provided<br \/>\n(each entry being preceeded by a label ending with a colon). The<br \/>\nsurface parameters provided, in order, are: Surface Temperature<br \/>\n(K), Surface Humidity (in the pre-defined units), Skin<br \/>\nTemperature(K), Surface Pressure (Pa or hPa to match profile),<br \/>\n10m U-Wind (m\/s), 10m U-Wind (m\/s).<\/p>\n<p>If microwave cloud liquid water retrievals are to be<br \/>\nperformed (either LWP retrieval or qtotal retrieval), a fifth<br \/>\ncolumn containing cloud liquid water profiles (in kg\/kg) has to<br \/>\nbe provided.<\/p>\n<p>Note that the code can read a profile file on levels expressed either<br \/>\nin Pa or hPa, and they can run either top-of-atmosphere to surface, or<br \/>\nsurface to top-of-atmosphere.<\/p>\n<p><a href=\"#FilesIn\">[ Return to Top of Section ]<\/a><\/p>\n<p><a name=\"aux\"><\/a><b>Auxiliary Files:<\/b><\/p>\n<p>Auxiliary data found in the <tt>xxx_COEFFS_DIR<\/tt><br \/>\nand <tt>Sample_Bmatrices<\/tt> directories include the observation<br \/>\nerror covariance matrix (in <tt>Rmatrix_orig<\/tt>), four example background<br \/>\nerror covariance matrices (in <tt>Bmatrix_43L, Bmatrix_51L, Bmatrix_54L,<br \/>\n&amp; Bmatrix_70L<\/tt>), and the channel selection file<br \/>\n(<tt>Channelchoice_orig.dat<\/tt>).<br \/>\n&#8220;<tt>xxx<\/tt>&#8221; refers to the<br \/>\nobservation type which is currently<br \/>\nIASI, ATOVS, ATMS, CrIS, SSMIS or AIRS.<\/p>\n<p>Additional directories are included for use with the 70L test<br \/>\nprofile to check set-up for the use of data in radiance and principal<br \/>\ncomponent score units.<\/p>\n<p><a name=\"Rmatrix\"><\/a> <b>3e. Auxiliary Files: Rmatrix<\/b><\/p>\n<p>The <tt>Rmatrix<\/tt> file contains the<br \/>\nobservational error covariance matrix used by the 1DVar scheme.<br \/>\nCurrently one error covariance is used for all observations<br \/>\nbeing processed (for a given instrument, of course) with the<br \/>\nvalues being given in brightness temperature. There is no<br \/>\ncorrection for scene temperature in the code, so the R-matrix<br \/>\nvalues should be appropriate for the expected scene temperature<br \/>\nof the channel in question. The forward model error is included<br \/>\nin the observational error. This matrix must be positive<br \/>\ndefinite or a fatal error will result. Sample R-matrices can be found in<br \/>\nthe xxx_COEFFS_DIR directories, but it is strongly recommended that you<br \/>\nconsider the contents of these files carefully for your application.<\/p>\n<p>Three options are available for storing the<br \/>\nobservational errors. These are full matrix, band-diagonal (of<br \/>\nwhich diagonal is a subset), and eigenvalue\/eigenvector. In the<br \/>\ncase of a diagonal R-matrix, the values in the file represent<br \/>\nthe variances of the observation errors. The band-diagonal<br \/>\noption has been included as one way of representing the errors<br \/>\nof apodised interferometer observations, while the eigenvalue<br \/>\nformat is in anticipation of more sophisticated ways of<br \/>\nrepresenting the errors of instruments with many channels and<br \/>\nhas not been tested as yet.<\/p>\n<p>The file is formatted as follows (all entries<br \/>\nare in free-format):<\/p>\n<p>The first line describes the instrument (or<br \/>\n&#8220;Composite Instrument&#8221;) for which the file is valid. If<br \/>\n&#8220;Composite Instruments&#8221; were set up in the observation file, the<br \/>\nnames in the observation and R-matrix files should agree. If<br \/>\ncomposite instruments were not set up, the first R-matrix is<br \/>\nread in.<\/p>\n<p>The second line is made up of four integers<br \/>\nwhich are (in order):<\/p>\n<ul>\n<li>The &#8220;matrix type&#8221;, i.e, the form in which the<br \/>\nmatrix is stored: 1=Full matrix, 2=band diagonal (of which<br \/>\ndiagonal is a subset) and 3=eigenvalue\/eigenvector<br \/>\nrepresentation.<\/li>\n<li>The number of channels in the R-matrix<\/li>\n<li>The number of &#8220;elements&#8221;: For the full matrix, this is the<br \/>\nnumber of channels once more; for the band diagonal matrix this<br \/>\nis the number of bands (1=diagonal, 2=tri-diagonal, etc.); for<br \/>\nthe eigenvalue\/eigenvector representation this is the number of<br \/>\neigenvectors used.<\/li>\n<li>&#8220;Inverse&#8221;. If this fourth entry is one, the matrix is stored<br \/>\nas an inverse. This would only be useful for a full matrix where<br \/>\nthe number of channels to be used (in retrievals and cloud<br \/>\ndetection) is fixed.<\/li>\n<\/ul>\n<p>Next, before the errors themselves, the channels used are<br \/>\nlisted. This is the only place apart from the observation file<br \/>\nwhere the absolute instrument channel numbers are used. This<br \/>\nis done to ensure that the observation error covariances are<br \/>\nindeed for the channels that are present in the observation<br \/>\nfile. See the example below for ATOVS where channels 1-20 for<br \/>\nHIRS, 1-15 for AMSU-A, and 1-5 for AMSU-B are lsited.<\/p>\n<p>Finally, the R-matrix itself is read in.<\/p>\n<ul>\n<li>In the full matrix case, the full matrix is simply placed in<br \/>\nthe file here.<\/li>\n<li>In the band diagonal case, the matrix is read in starting with<br \/>\nthe diagonal elements and then progressing through the bands<br \/>\nfurther and further from the diaginal. Padding zeros are added<br \/>\nto the ends of each off-diagonal band, so the entry for each<br \/>\nband is as long as the number of channels. Of course, for the<br \/>\ndiagonal case only one band is required.<\/li>\n<li>In the eigenvalue\/eigenvector case, the required number of<br \/>\neigenvectors are read from the file and then a vector of the<br \/>\nassociated eigenvalues are read in.<\/li>\n<\/ul>\n<p>An example Rmatrix file is shown here:<\/p>\n<pre>NOAA-15 ATOVS\r\n    2    40     1     0\r\n       1       2       3       4       5       6       7       8       9\r\n      10      11      12      13      14      15      16      17      18\r\n      19      20       1      2        3       4       5       6       7\r\n       8       9      10      11      12      13      14      15       1\r\n       2       3       4       5      \r\n      1.22 0.5  0.5  0.5  0.5  0.5  1.22 6.32 1.4  6.32\r\n      3.0  4.0  1.22 1.22 0.5  0.4  0.4  0.4  0.4  9.9\r\n      2.0  2.0  2.0  1.26 0.25 0.25 0.25 0.25 0.4  0.4\r\n      0.5  0.95 1.22 1.22 3.0  8.0  5.0  4.0  4.0  4.0\r\n<\/pre>\n<p>In this example the matrix type is band-diagonal with 40<br \/>\nchannels and 1 band (so it is a diagonal matrix). The matrix is<br \/>\nnot already inverted. The R-matrix for HIRS 1-20, AMSU-A 1-15<br \/>\nand AMSU-B 1-5 is set up.<\/p>\n<p><a href=\"#FilesIn\">[ Return to Top of Section ]<\/a><\/p>\n<p><a name=\"Bmatrix\"><\/a> <b>3f. Auxiliary Files: Bmatrix<\/b><\/p>\n<p>The <tt>Bmatrix<\/tt> file should contain<br \/>\nthe background error covariance matrices used by the 1DVar<br \/>\nscheme. The full matrix is specified. A retrieval may be run<br \/>\non any number of levels with RTTOV making use of the vertical<br \/>\ninterpolation functionality within the RT model itself. This will happen<br \/>\nautomatically if you provide a profile on a number of levels different<br \/>\nfrom the number of coefficient levels.<br \/>\nThe provided sample Bmatrix files in the directory <tt>Sample_Bmatrices<\/tt><br \/>\n(Bmatrix_43L, Bmatrix_51L, Bmatrix_54L, Bmatrix_70L) should be<br \/>\nconsidered as example files. It is strongly recommended that you provide<br \/>\nyour own matrix to suit your own application. In particular, if your<br \/>\nprofile is not already provided on RTTOV levels, you will need to supply<br \/>\nyour own <tt>Bmatrix<\/tt> file on the required number of levels.<\/p>\n<p>The B-Matrix should be specified in units of K for temperatures, ln(kg\/kg) for<br \/>\nhumidity, and kg\/kg for ozone.<\/p>\n<p>In this implementation, there are two B-Matrices specified in each file<br \/>\n&#8211; one for land and one for sea &#8211; but there is no other<br \/>\nvariability in this matrix allowed for (e.g., no latitudinal<br \/>\nvariation).<\/p>\n<p>The file itself simply consists of two<br \/>\ncomment lines followed by the dimension of the matrix (integer).<br \/>\nThe next lines are the B-Matrix in free format with one line per<br \/>\nrow\/column (the matrix is symmetric).<\/p>\n<p>For the second, land, matrix the same format<br \/>\nis repeated (i.e., two comment lines, the number of elements and<br \/>\nthe matrix itself).<\/p>\n<p><a href=\"#FilesIn\">[ Return to Top of Section ]<\/a><\/p>\n<p><a name=\"channelchoice\"><\/a> <b>3g. Auxiliary Files:<br \/>\nChannelChoice.dat<\/b><\/p>\n<p>The <tt>ChannelChoice.dat<\/tt> file<br \/>\ncontains the choice of channels to be processed. The first line<br \/>\nin the file contains <i>Num_Channels<\/i>, the number of<br \/>\nchannels for which selection codes (for cloud detection,<br \/>\nretrieval, monitoring) are specified. The following <i>Num_Channels<\/i><br \/>\nlines in the file contain three columns of integers (plus a<br \/>\nfourth, optional, column which can include characters). These<br \/>\ncolumns are:<\/p>\n<ul>\n<li>channel number &#8212; the index of the<br \/>\nselected channel in the channel set specified in the observation<br \/>\nfile (if a reduced (pre-selected) set of <i>n<\/i> channels is<br \/>\npresent in the observation file, channel numbers specified in<br \/>\nthe <tt>ChannelChoice_orig.dat <\/tt> file correspond to indices (in<br \/>\nthe range 1 &#8230; <i>n<\/i>) for the reduced channel set).<\/li>\n<li>a code for the situations in which this channel is used for<br \/>\nretrievals<\/li>\n<li>a code indicating whether this channel is to be used for cloud<br \/>\ndetection and\/or background monitoring.<\/li>\n<li>A fourth may be used to indicate the true channel numbers for<br \/>\nthose situations where the observation file contains a reduced<br \/>\nset of channels. This is for informational purposes only and is<br \/>\nnot used by the program.<\/li>\n<\/ul>\n<p>The codes employed in this file are as follows:<\/p>\n<p>2<sup>nd<\/sup> column: <b>Retrievals Code<\/b>. The<br \/>\nsituations in which the channel is used are determined by the<br \/>\nvalue of the integer in this column. The code is based on<br \/>\nwhich bits are one in the binary representation of the<br \/>\ninteger. Bits for surface type and cloud situation are coded<br \/>\nas follows:<\/p>\n<pre>   Bit Number         Sounding Option\r\n   1                  Surface = Sea\r\n   2                  Surface = SeaIce\r\n   3                  Surface = Land\r\n   4                  Surface = Highland\r\n   5                  Surface = Surface Mismatch\r\n   6                  Cloud = Clear\r\n   7                  Cloud = IRCloudy\r\n   8                  Cloud = MWCloudy *\r\n   9                  Cloud = Rain *\r\n  10                  Cloud = High Cloud\r\n<\/pre>\n<p>So, for example, if the code is 1023 (=1111111111 in binary) the<br \/>\nchannel is used in all cases. If the code is 33 (=100001) then<br \/>\nthe channel is to be used only for clear skies over sea.<\/p>\n<p>* The cloud codes corresponding to bits 8 &amp; 9 are not<br \/>\nused at present, but are reserved for microwave cloudy and<br \/>\nrain situations.<\/p>\n<p>3<sup>rd<\/sup> column: <b>Monitoring and Cloud Detection<br \/>\nCode<\/b>. If the absolute integer value in this column is<br \/>\nset to 1, the channel is to be monitored (i.e., the radiances<br \/>\nfor this channel are to be calculated for the background<br \/>\nprofile and compared to the observations. If the column value<br \/>\nis 3, the channel is used for monitoring and cloud detection.<br \/>\nIf the value is 2, the channel is used in cloud detection but<br \/>\nnot monitoring. All channels that are to be used in retrievals<br \/>\nare monitored by default.<\/p>\n<p>If the value of the Monitoring and Cloud Detection Code is<br \/>\nnegative, the same codes as above apply to the absolute value<br \/>\nplus the channel is the designated window channel (if more<br \/>\nthan one window channel is specified, the last one is used).<br \/>\nThe window channel is used in the window channel test where<br \/>\nthe field of view is designated as cloudy if the difference<br \/>\nbetween the observed and background brightness temperatures<br \/>\nfor the window channel exceeds the value of<br \/>\n<tt>CostThresh_IRWindow_sea\/land<\/tt><br \/>\nwhich is set up through the<br \/>\n<a href=\"#controlnl\">ControlData.NL<\/a> file.<\/p>\n<p>In the following example file the selection codes for 11<br \/>\nchannels are specified. HIRS 5-12 are used for retrievals in clear<br \/>\ncases and AMSU-A 3-5 in all cases. HIRS-8 is also used as the<br \/>\nwindow channel:<\/p>\n<pre>     11\r\n           5    33    3  HIRS-5\r\n           6    33    3  HIRS-6\r\n           7    33    3  HIRS-7\r\n           8    33   -3  HIRS-8\r\n           9    33    3  HIRS-9\r\n          10    33    3  HIRS-10\r\n          11    33    3  HIRS-11\r\n          12    33    3  HIRS-12\r\n          23  1023    3  AMSU-3\r\n          24  1023    3  AMSU-4\r\n          25  1023    3  AMSU-5\r\n\r\n<\/pre>\n<p><a href=\"#FilesIn\">[ Return to Top of Section ]<\/a><\/p>\n<p><a name=\"EmisEigenVec\"><\/a> <b>3h. Auxiliary File: EmisEigenVec<\/b><\/p>\n<p>The <tt>EmisEigenVec<\/tt> file contains the IR surface emissivity<br \/>\neigenvectors required for the surface emissivity retrieval in<br \/>\nprincipal component space.<br \/>\nFiles are<br \/>\nprovided for IASI, AIRS and CrIS (see <a href=\"#surfemis\">Surface emissivity retrieval<\/a>).<br \/>\nThe file contains the leading 146 eigenvectors.<br \/>\nBy default, the retrievals only use the first 12 eigenvectors.<br \/>\nThis achieves good efficiency without sacrificing accuracy.<\/p>\n<p>The<br \/>\nformat of the file is as follows:<\/p>\n<ul>\n<li>The first line contains three integers, which are a file version number (normally 1), the number of channels (n_chans) and the number of eigenvectors (n_ev) in the file.<\/li>\n<li>Then, the n_chans instrument channel numbers are listed.<\/li>\n<li>Next, the mean values of the training dataset for each channel are given (the mean value is subtracted off before calculating the eigenvectors, and must be added back on when reconstructing).<\/li>\n<li>Next, the minimum principal component score for each eigenvector is given. This is used for limits checking during the minimisation.<\/li>\n<li>Next, the maximum principal component score for each eigenvector is given. This is used for limits checking during the minimisation.<\/li>\n<li>Next, a guess PC value for each eigenvector is given. This may be used in situations where no first guess value is available, and is usually the mean PC score of the training dataset.<\/li>\n<li>Finally, each of the n_ev eigenvectors is written out sequentially.<\/li>\n<\/ul>\n<p><a href=\"#FilesIn\">[ Return to Top of Section ]<\/a><\/p>\n<p><a name=\"EmisPCAtlas\"><\/a> <b>3i. Auxiliary File: EmisPCAtlas<\/b><\/p>\n<p>The <tt>EmisPCAtlas<\/tt> file contains an annual mean atlas of principal<br \/>\ncomponent scores (i.e. weights) which is to be used together<br \/>\nwith the <tt>EmisEigenVec<\/tt> file<br \/>\ndescribed in the previous subsection. This atlas is used as a<br \/>\nfirst guess for the IR surface emissivitry retrieval.<br \/>\nThe principal component scores in the atlas are stored in ASCII format on a<br \/>\nlatitude and longitude grid. Please refer to the source file <tt>NWPSAF_Read_EmisPCAtlas.f90<\/tt><br \/>\nfor details of the file format used.<br \/>\nThe specification of latitude and longitude<br \/>\nby the user in the <a href=\"#obs\">Obsfile<\/a> is used to<br \/>\nselect the appropriate principal component scores from the atlas.<\/p>\n<p><a href=\"#FilesIn\">[ Return to Top of Section ]<\/a><\/p>\n<p><a href=\"#Top\">[ Return to Top]<\/a><\/p>\n<h4><a name=\"FilesOut\"><\/a>Output Files:<\/h4>\n<p><a href=\"#retprof\">4a. Retrieved_Profiles.dat<\/a><\/p>\n<p><a href=\"#retbts\">4b. Retrieved_BTs.dat<\/a><\/p>\n<p><a href=\"#mini\">4c. Additional Output: ProfileQC.dat, Minimisation.log and<br \/>\nMinimisation_BTs.log<\/a><\/p>\n<p><a href=\"#amatrix\">4d. Enhanced diagnostics: A-Matrix, Am-Matrix, Jacobians<br \/>\nand Averaging Kernels<\/a><\/p>\n<p>There are two main output files, <tt>Retrieved_BTs.dat<\/tt> and<br \/>\n<tt>Retrieved_Profiles.dat<\/tt>. These are ASCII files and their<br \/>\ncontents should be obvious from inspection. In addition, a file <tt>ProfileQC.dat<\/tt><br \/>\nis now provided with one line per input observation declaring whether the<br \/>\nobservation was processed or not and whether the 1D-Var converged.<\/p>\n<p>Additional diagnostic files are produced if the program is run<br \/>\nin DebugMode or higher (set <tt>GeneralMode<\/tt> to 30 or more in<br \/>\n<tt>ControlData.NL<\/tt>). These files are <tt>Minimisation.log<\/tt>, and<br \/>\n<tt>Minimisation_BT.log<\/tt>.<\/p>\n<p>Finally, if the namelist option EnhancedDiagonstics=.true. at the higher<br \/>\nverbosity levels (DebugMode or higher), then further<br \/>\noutput files are produced: <tt>A-Matrix.out<\/tt>, <tt>Am-Matrix.out<\/tt>,<br \/>\n<tt>RetJacobian.out<\/tt>, <tt>BgJacobian.out<\/tt>, <tt>AveragingKernel.out<\/tt><\/p>\n<p>Output files are written to the directory specified in the environment<br \/>\nvariable <tt>OUTPUT_DIR<\/tt>, which should be set and exported in the calling script.<\/p>\n<p><a name=\"retprof\"><\/a> <b>4a. Output: Retrieved_Profiles.dat<\/b><\/p>\n<p>The <tt>Retrieved_Profiles.dat<\/tt> file<br \/>\ncontains the profiles retrieved from the 1DVar stage. If the<br \/>\n1DVar retrieval is not performed (e.g., the field of view is<br \/>\ncloudy but only clear retrievals are allowed), the profiles are<br \/>\nnot written to this file; if the retrieval is performed but does<br \/>\nnot converge the final retrieved profile is written to this<br \/>\nfile, however (the number of iterations will be one higher than<br \/>\n<tt>MaxIterations<\/tt> in this case).<\/p>\n<p>The file is written in ASCII and should be<br \/>\nself-explanatory. Both background and retrieved fields are<br \/>\nsupplied. The retrieved fields that are output are: Temperature<br \/>\nProfile, Humidity Profile (in the same units as set up in the <tt><a href=\"#bg\">Background.dat<\/a><\/tt> file), Ozone profile,<br \/>\nsurface temperature, surface humidity (in same units as in the<br \/>\nbackground file), skin temperature and surface pressure. If a <a href=\"AppendixC.html\"> Cloudy Retrieval<\/a> is being done, cloud<br \/>\ntop pressure and cloud fraction are also output. If a microwave<br \/>\nLWP retreival is being done, that will also be output. In addition<br \/>\nthe observation number, number of iterations, normalised cost<br \/>\nfunction and normalised cost function gradient are reported.<\/p>\n<p>An abridged example of the contents of this file is:<\/p>\n<pre> \r\nObservation =  1\r\n                          Retrieval                        Background\r\n  Pressure (hPa) T (K)    q (ppmv)     Ozone        T (K)   q (ppmv)      Ozone\r\n     1013.25   272.132  0.4296E+04  0.2456E-01   272.070  0.4280E+04  0.2456E-01\r\n     1005.43   271.952  0.4227E+04  0.2507E-01   271.854  0.4220E+04  0.2507E-01\r\n      985.88   271.509  0.4061E+04  0.2643E-01   271.311  0.4074E+04  0.2643E-01\r\n          .         .         .          .           .          .         .\r\n          .         .         .          .           .          .         .\r\n          .         .         .          .           .          .         .\r\n        0.69   265.252  0.5636E+01  0.6042E+01   265.741  0.5636E+01  0.6042E+01\r\n        0.29   256.937  0.5410E+01  0.5971E+01   257.553  0.5410E+01  0.5971E+01\r\n        0.10   241.249  0.4361E+01  0.5792E+01   241.635  0.4361E+01  0.5792E+01\r\nSurface Temperature (K):         272.935   272.070\r\nSurface Humidity (ppmv):        5202.160  4279.650\r\nSkin Temperature (K):            272.935   272.070\r\nSurface Pressure (Pa):           101325.  101325.\r\nNo. of Iterations:               2\r\nNormalised Cost Function:       0.654 Normalised Gradient:       0.001\r\n --------------------------------------------------------------\r\nObservation =  2\r\n                           Retrieval                        Background\r\n  Pressure (hPa) T (K)    q (ppmv)     Ozone        T (K)   q (ppmv)      Ozone\r\n     1013.25   271.698  0.4169E+04  0.2456E-01   272.070  0.4280E+04  0.2456E-01\r\n     1005.43   271.480  0.4110E+04  0.2507E-01   271.854  0.4220E+04  0.2507E-01\r\n      985.88   271.008  0.3965E+04  0.2643E-01   271.311  0.4074E+04  0.2643E-01\r\n          .         .         .          .           .          .         .\r\n          .         .         .          .           .          .         .\r\n          .         .         .          .           .          .         .\r\n        2.61   242.475  0.4945E+01  0.6106E+01   242.500  0.4945E+01  0.6106E+01\r\n        1.42   256.285  0.5429E+01  0.6080E+01   256.212  0.5429E+01  0.6080E+01\r\n        0.69   265.855  0.5636E+01  0.6042E+01   265.741  0.5636E+01  0.6042E+01\r\n        0.29   257.713  0.5410E+01  0.5971E+01   257.553  0.5410E+01  0.5971E+01\r\n        0.10   241.273  0.4361E+01  0.5792E+01   241.635  0.4361E+01  0.5792E+01\r\nSurface Temperature (K):         268.230   272.070\r\nSurface Humidity (ppmv):        4559.714  4279.650\r\nSkin Temperature (K):            268.230   272.070\r\nSurface Pressure (Pa):           101325.  101325.\r\nNo. of Iterations:               2\r\nNormalised Cost Function:       0.782 Normalised Gradient:       0.000\r\n --------------------------------------------------------------\r\n<\/pre>\n<p><a href=\"#FilesOut\">[ Return to Top of Section ]<\/a><\/p>\n<p><a name=\"retbts\"><\/a> <b>4b. Output: Retrieved_BTs.dat<\/b><\/p>\n<p>The <tt>Retrieved_BTs.dat<\/tt> file contains<br \/>\nthe brightness retrieved from the 1DVar stage together with the<br \/>\nobserved brightness temperatures and those calculated from the<br \/>\nbackground profile. If the 1DVar retrieval is not performed<br \/>\n(e.g., the field of view is cloudy but only clear retrievals are<br \/>\nallowed), the brightness temperatures are not written to this<br \/>\nfile; if the retrieval is performed but does not converge the<br \/>\nfinal retrieved brightness temperatures are written to this<br \/>\nfile, however.<\/p>\n<p>Each observation has three headers: the<br \/>\nobservation number, the number of channels used in the retrieval<br \/>\nand the column titles. Four columns are then reported: the<br \/>\nchannel number, the background brightness temperature, the<br \/>\nobserved brightness temperature and the retrieved brightness<br \/>\ntemperature. The channel numbers reported are those specified in<br \/>\nthe first column of the <tt><a href=\"#channelchoice\">ChannelChoice.dat<\/a><\/tt><br \/>\nfile. Only those channels used in the retrieval are reported.<\/p>\n<p>The following is a typical <tt>Retrieved_BTs.dat<\/tt> produced<br \/>\nfrom a retrieval using HIRS 1-19 and AMSU-13:<\/p>\n<pre>  \r\nObservation =  1\r\n Number of Channels Used =  20\r\n Channel  Background  Observed   Retrieved\r\n      1    226.579    226.717    226.167\r\n      2    219.569    218.949    219.310\r\n      3    219.321    219.645    219.153\r\n      4    225.255    224.452    225.000\r\n      5    237.027    236.374    236.813\r\n      6    247.197    247.804    247.077\r\n      7    256.419    257.609    256.574\r\n      8    271.211    274.562    271.996\r\n      9    250.658    247.897    251.042\r\n     10    269.220    269.388    269.773\r\n     11    251.843    248.331    250.209\r\n     12    232.814    226.588    230.007\r\n     13    261.277    261.211    261.721\r\n     14    250.869    252.591    250.952\r\n     15    241.685    241.597    241.568\r\n     16    237.392    236.591    237.163\r\n     17    266.360    266.911    266.937\r\n     18    270.537    271.983    271.343\r\n     19    271.088    271.537    271.877\r\n     32    223.373    221.861    222.736\r\n<\/pre>\n<p><a href=\"#FilesOut\">[ Return to Top of Section ]<\/a><\/p>\n<p><a name=\"mini\"><\/a> <b>4c. Additional Output: ProfileQC.dat, Minimisation.log and<br \/>\nMinimisation_BT.log<\/b><\/p>\n<p>These files are output when the program is run<br \/>\nin DebugMode or VerboseMode.<\/p>\n<p><tt>ProfileQC.dat<\/tt> contains a single line per profile, consisting<br \/>\nof the observation number and a code, which is as follows:<\/p>\n<pre>   0 = successful minimisation\r\n   1 = 1D-Var did not reach convergence.\r\n   2 = observation not processed (bad BT, failure in RTTOV etc)\r\n<\/pre>\n<p>The other files are used primarily to aid in<br \/>\ndebugging by tracking the iteration-to-iteration progress of the<br \/>\nminimisation.<\/p>\n<p><tt>Minimisation.log<\/tt> outputs the elements<br \/>\nof the retrieval vector (<tt>RT_Params%RTGuess(:)<\/tt> in <tt>IASI_Minimize<\/tt>)<br \/>\ntogether with the Marquardt-Levenberg gamma factor (zero if not<br \/>\nusing Marquardt-Levenberg minimisation) and the (un-normalised)<br \/>\ncost function for each iteration. The exact makeup and order of<br \/>\nthe retrieval vector will vary according to the variables that<br \/>\nare to be retrieved, but Fig. 1 gives the makeup of this vector<br \/>\nin the default set-up supplied.<\/p>\n<p><tt>Minimisation_BT.log<\/tt> outputs the<br \/>\nobserved-guess brightness temperature differences for the<br \/>\nchannels used in the retrieval together with the<br \/>\nMarquardt-Levenberg gamma factor (zero if not using<br \/>\nMarquardt-Levenberg minimisation) for each iteration.<\/p>\n<p><a href=\"#FilesOut\">[ Return to Top of Section ]<\/a><\/p>\n<p><a name=\"amatrix\"><\/a> <b>4d. Enhanced diagnostics: A-Matrix, Am-Matrix, Jacobians<br \/>\nand Averaging Kernels<\/b><\/p>\n<p>The analysis error covariance matrix and the<br \/>\npropagated measurement noise matrix are output to <tt>A-Matrix.out<\/tt><br \/>\nand <tt>Am-Matrix.out<\/tt> respectively. The A-Matrix is the expected<br \/>\ntotal retrieval error and the Am-matrix is the expected contribution to the<br \/>\nretrieval error from observation noise only, as calculated through<br \/>\nlinear retrieval theory. They are output in the same order as<br \/>\nthe elements in the input B-matrix and are output for each<br \/>\niteration. The A-matrix is also calculated from the background<br \/>\nprofile for the first observation only (this for very specific diagnostic<br \/>\npurposes and not generally a useful output). The matrices for<br \/>\nthe converged profiles are only output if EnhancedDiagnostics=.true.,<br \/>\nbut this background A-matrix is output regardless of that setting.<\/p>\n<p>For a full discussion of the derivation of<br \/>\nthe propagated measurement error matrix see Rodgers (1990) or<br \/>\nRodgers (2000) where it is referred to as the measurement error<br \/>\ncovariance, <b>S<sub>M<\/sub><\/b>.<\/p>\n<p>Two files containing Jacobians will also be produced: <tt>BgJacobian.out<\/tt><br \/>\ncontains the Jacobian corresponding to the profile elements selected in<br \/>\nthe Bmatrix calculated from the background profile, and <tt>RetJacobian.out<\/tt><br \/>\nis output at the end of the minimisation. The Jacobians are output using<br \/>\nthe format statement &#8216;(10E12.4)&#8217; and the variable written out is sized<br \/>\n(NumChans,NumElements), where NumChans refers to the number of channels<br \/>\nused for that ob in the 1D-Var (which may be affected by cloud conditions)<br \/>\nand NumElements is determined by the Bmatrix. NumChans is written out in<br \/>\n<tt>Retrieved_BTs.dat<\/tt> as described above.<\/p>\n<p>The final matrix written out is the Averaging Kernel matrix (in<br \/>\n<tt>AveragingKernel.out<\/tt>) according to the formula presented in<br \/>\nChapter 2 of Rodgers (2000). The matrix is written out using format<br \/>\n&#8216;(10E12.4)&#8217; and is of size (NumElements, NumElements).<\/p>\n<p><a href=\"#FilesOut\">[ Return to Top of Section ]<\/a><\/p>\n<p><a href=\"#Top\">[ Return to Top ]<\/a><\/p>\n<h4><a name=\"newtype\"><\/a>5. Setting Up a New Observation Type<\/h4>\n<p>To set up a new instrument requires the creation<br \/>\nof new data and <a> auxiliary<\/a> files but<br \/>\nshould be relatively straightforward unless unsupported retrieval<br \/>\nvariables and\/or radiative transfer models are required in which<br \/>\ncase code changes will be needed.<\/p>\n<p>If a fastmodel other than RTTOV is required, the interface with the new<br \/>\nfastmodel will need to be coded up and called from<br \/>\n<tt>NWPSAF_Fastmodel_Interface.f90<\/tt>.<br \/>\nExtra pre-processing codes will likely be required and the makefile changed<br \/>\naccordingly.<\/p>\n<p>Additional retrieval variables will require changes to the<br \/>\nfastmodel interfaces, <tt>NWPSAFMod_RTModel<\/tt>,<br \/>\n<tt>NWPSAF_Read_Background<\/tt>, <tt>NWPSAF_SetUpBackground<\/tt>,<br \/>\n<tt>NWPSAF_SetUpRetrievals<\/tt>, <tt>NWPSAF_TranslateDataOut<\/tt> and<br \/>\nprobably <tt>NWPSAF_CheckIteration<\/tt>. Additional variables will of course need to<br \/>\nbe added to the Bmatrix.<\/p>\n<p>For questions on changing the code, please<br \/>\n<a href=\"https:\/\/nwp-saf.eumetsat.int\/site\/help-desk\/\" target=\"_blank\" rel=\"noopener\"><br \/>\nsubmit a request to the NWPSAF helpdesk via the website<\/a>.<\/p>\n<p><a href=\"#Top\">[ Return to Top ]<\/a><\/p>\n<h4><a name=\"simspec\"><\/a>6. Simulating observations<\/h4>\n<p>One important use of the NWPSAF-1DVAR code is to test proposed changes<br \/>\nto assimilation or retrieval systems in a simple simulated environment. In<br \/>\norder to do this, one may use model profiles as &#8220;truth&#8221;, and simulate<br \/>\nobservations from these true profiles, adding noise to the simulated &#8220;true<br \/>\nobservations&#8221; to match the Rmatrix used in the 1D-Var. To facilitate this<br \/>\nprocess, code has been provided in the directory src\/sim_spec to simulate<br \/>\nobservations from RTTOV-11 or -12, to output observation files of the correct<br \/>\nformat for the NWPSAF-1DVar. The code can simulate brightness temperatures,<br \/>\nradiances, and for IASI and AIRS, PC scores or reconstructed radiances.<br \/>\nRoutines are also provided to convert existing brightness temperature or<br \/>\nradiance data into PC Scores and back into Reconstructed Spectra.<br \/>\nPlease see<br \/>\n<a href=\"AppendixE.html\">Appendix E<\/a> for information on how to run this code.<\/p>\n<p><a href=\"#Top\">[ Return to Top ]<\/a><\/p>\n<h4><a name=\"pcscores\"><\/a>7. Use of PC Scores<\/h4>\n<p>This release of the 1D-Var allows observations to be processed in the<br \/>\nform of principal component scores. This option is currently only<br \/>\navailable for AIRS and IASI, as PC-RTTOV only supports these instruments.<br \/>\nTo pass in PC-Score observations, the observation file must contain a<br \/>\nline<br \/>\n<tt>Units: PC Score<\/tt><br \/>\nPC-RTTOV can only be used in single instrument mode, not as part of a<br \/>\ncomposite instrument. To use PC-RTTOV, a separate pccoef file is<br \/>\nrequired, and this must be compatible with the rtcoef file. See RTTOV<br \/>\ndocumentation for more information.<\/p>\n<p>The provision of PC Score retrievals is highly experimental. It is<br \/>\nadvised that the user makes themselves very confident with the PC-RTTOV<br \/>\noptions before attempting to run a 1D-Var. It may be necessary to modify<br \/>\nthe code when experimenting with PC-scores, with either real or simulated data.<br \/>\nIf you are using<br \/>\nsimulated data, be aware that the PC scores seem to be very sensitive to<br \/>\nthe settings used in RTTOV &#8211; you must make sure that your observations<br \/>\nare simulated with the same settings as you subsequently use in the 1D-Var<br \/>\nor the results will be very suspect if you even manage to get any passing QC!<br \/>\nNote that there is a hard-coded value for QC-checking of the PC scores in<br \/>\nNWPSAF_ProcessData.f90 &#8211; you will likely need to play with this number at<br \/>\nleast, and with the R-matrix, in order to get any sensible output.<\/p>\n<p>Please do report successes and failures to the<br \/>\n<a href=\"https:\/\/nwp-saf.eumetsat.int\/site\/help-desk\/\" target=\"_blank\" rel=\"noopener\">helpdesk<\/a>, but<br \/>\nbe aware that it may be more difficult that usual to help you because<br \/>\nfew NWP-SAF staff have expertise in PC Score assimilation.<\/p>\n<p><a href=\"#Top\">[ Return to Top ]<\/a><\/p>\n<h4><a name=\"surfemis\"><\/a>8. Surface emissivity retrieval<\/h4>\n<p>With version 1.2 the functionality<br \/>\nto retrieve surface emissivity has been added.<br \/>\nThe implementation follows the methods set out in Pavelin and Candy (2014).<br \/>\nIn the retrieval state vector the surface emissivity is represented by<br \/>\nprincipal components. This allows a compact representation of the surface<br \/>\nemissivity and keeps the number of additional state vector elements low.<br \/>\nThe new capability is applied to infrared sounders using specific subsets of channels<br \/>\n(this restriction is due to the need for pre-computed emissivity eigenvectors<br \/>\non specific channels for each instrument). Emissivity eigenvectors are provided for AIRS<br \/>\n(324 channels), IASI (314 channels) and CrIS (399 channels).<\/p>\n<p>For the surface emissivity retrieval,<br \/>\ntwo additional auxiliary files are required.<br \/>\n<a href=\"#EmisEigenVec\">EmisEigenVec<\/a><br \/>\ncontains the principal components. This file also contains the instrument channel numbers of<br \/>\nthe channel subset, starting at line 2 of the file. The other contains an atlas specifying the weights (or<br \/>\nscores) of these<br \/>\n<a href=\"#EmisPCAtlas\">EmisPCAtlas<\/a> to be used as a first guess.<br \/>\nThe latter are a function of latitude and longitude<br \/>\nwhich are specified by the user in the<br \/>\n<a href=\"#obs\">ObsFile.dat<\/a>.<\/p>\n<p>All the user has to do to trigger a surface emissivity retrieval<br \/>\nis to add a line in<br \/>\n<a href=\"#retrievalnl\">Retrievals.NL<\/a>. It is important that the channel selection (ChannelChoice.NL) only contains channels drawn from the channel subset used in the eigenvector file.<\/p>\n<p><a href=\"#Top\">[ Return to Top ]<\/a><\/p>\n<h4><a name=\"notes\"><\/a>9. Notes, bugs and features<\/h4>\n<p>Every attempt has been made to make this code as<br \/>\nversatile and as bug-free as possible. Any problems should be<br \/>\nreported by raising a ticket to the<br \/>\n<a href=\"https:\/\/nwp-saf.eumetsat.int\/site\/help-desk\/\" target=\"_blank\" rel=\"noopener\">helpdesk<\/a>.<\/p>\n<p>There are many user-defined parameters in this code. Some of<br \/>\nthese parameters may not have been optimised for the users&#8217;<br \/>\nrequirements. This particularly applies to channel selection and<br \/>\nand cloud detection channels and thresholds. The user is invited<br \/>\nto critically review these.<\/p>\n<p><a href=\"#Top\">[ Return to Top ]<\/a><\/p>\n<h4><a name=\"help\"><\/a>10. Getting Help<\/h4>\n<p>Contact the NWPSAF<br \/>\n<a href=\"https:\/\/nwp-saf.eumetsat.int\/site\/help-desk\/\" target=\"_blank\" rel=\"noopener\">helpdesk<\/a><br \/>\nfor all enquiries.<\/p>\n<p><a href=\"#Top\">[ Return to Top ]<\/a><\/p>\n<h4><a name=\"Ref\"><\/a>11. References.<\/h4>\n<p>Rodgers, C.D. (1990). Characterization and error<br \/>\nanalysis of profiles retrieved from remote sounding<br \/>\nmeasurements. <i>J. Geophys. Res.<\/i>, <b>95<\/b>, 5587-5595.<\/p>\n<p>Rodgers, C.D. (2000). Inverse Methods for Atmospheric<br \/>\nSounding: Theory and Practice <i>World Scientific, Singapore, New Jersey,<br \/>\nLondon, Hong Kong<\/i>, ISBN-13: 978-981-02-2740-1<\/p>\n<p>Pavelin E.G and Candy B. (2014). Assimilation of surface-sensitive<br \/>\ninfrared radiances over land: Estimation of land surface temperature and<br \/>\nemissivity <i>Q.J.R.Meteorol.Soc. 140: 1198-1208, April 2014 B<br \/>\nDOI:10.1002\/qj.2218<\/i><\/p>\n<p>Collard A.D. Selection of IASI channels for use in numerical weather<br \/>\nprediction <i>Q.J.R.Meteorol.Soc. 133: 1977-1991, 2007,<br \/>\nDOI:10.1002\/qj.178<\/i><\/p>\n<p><a href=\"#Top\">[ Return to Top ]<\/a><\/p>\n<h4><a name=\"Ack\"><\/a>12. Acknowledgements<\/h4>\n<p>Many members of staff at the Met Office and beyond have<br \/>\nworked on this code over the years. We are also very grateful to the work<br \/>\nput in by our beta testers, and to everyone who reports bugs to the NWPSAF<br \/>\nHelpdesk.<\/p>\n<p><a href=\"#Top\">[ Return to Top ]<\/a><\/p>\n<h4>Appendices<\/h4>\n<p><a href=\"..\/pdf\/nwpsaf-mo-ds-026_top_level_design.pdf\">Appendix A. Top Level Design<\/a><br \/>\nNote that this refers to a separate PDF document and<br \/>\nsupersedes the old Appendix A.<br \/>\n<a href=\"AppendixB.html\">Appendix B. Minimization<\/a><br \/>\n<a href=\"AppendixC.html\">Appendix C. Cloudy Retrievals<\/a><br \/>\n<a href=\"AppendixD.html\">Appendix D. Microwave cloud liquid water<br \/>\n<\/a><a href=\"AppendixE.html\">Appendix E. Instructions for using the observation simulation code<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>NWPSAF 1D-Var User Manual Software Version 2.0 NWPSAF-MO-UD-032 Revision History Document revision Date Author Notes Version 1.1 06\/12\/16 F. Smith Draft Version valid for NWPSAF 1D-Var v1.1 Version 1.1.1 20\/06\/18 S. Havemann v1.1.1: new release after LWP bugfix Version 1.2 24\/02\/20 S. Havemann v1.2: Version valid for NWPSAF 1D-Var v.1.2 Version 2.0 21\/05\/21 E. Pavelin, J. Hocking v2.0: Version valid for NWPSAF 1D-Var v2.0 Version 2.1 01\/09\/21 M. Cooke, O. Young New release for RTTOV14 The documentation was developed within the context of the EUMETSAT Satellite Application Facility on Numerical Weather Prediction (NWP SAF), under the Cooperation Agreement dated 7 [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":176,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_topic_count_hidden":0,"_bbp_reply_count_hidden":0,"_bbp_forum_subforum_count":0,"footnotes":""},"class_list":["post-10014","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/nwp-saf.eumetsat.int\/site\/wp-json\/wp\/v2\/pages\/10014","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nwp-saf.eumetsat.int\/site\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/nwp-saf.eumetsat.int\/site\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/nwp-saf.eumetsat.int\/site\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/nwp-saf.eumetsat.int\/site\/wp-json\/wp\/v2\/comments?post=10014"}],"version-history":[{"count":0,"href":"https:\/\/nwp-saf.eumetsat.int\/site\/wp-json\/wp\/v2\/pages\/10014\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/nwp-saf.eumetsat.int\/site\/wp-json\/wp\/v2\/pages\/176"}],"wp:attachment":[{"href":"https:\/\/nwp-saf.eumetsat.int\/site\/wp-json\/wp\/v2\/media?parent=10014"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}