文档库 最新最全的文档下载
当前位置:文档库 › RTTOV-7 Users Guide

RTTOV-7 Users Guide

RTTOV-7 Users Guide
RTTOV-7 Users Guide

RTTOV-7 Users Guide

Roger Saunders

Room 408, Met Office

London Rd., Bracknell

Berks, RG12 2SZ

U.K.

This documentation was developed within the context of the EUMETSAT Satellite Application Facility on Numerical Weather Prediction (NWP SAF), under the Cooperation Agreement dated 25 November 1998, between EUMETSAT and the Met Office, UK, by one or more partners within the NWP SAF. The partners in the NWP SAF are the Met Office, ECMWF, KNMI and Météo France.

Copyright 2002, EUMETSAT, All Rights Reserved.

Change record

Version Date Author / changed by Remarks

111/12/01R. Saunders Initial draft to code developers for comments

231/01/02R Saunders Modified draft after comments

313/03/02R Saunders Modified after comments from J Eyre and MTR

RIDs

427/05/02R Saunders Corrected IFAIL documentation

RTTOV-7 Users Guide

1. Introduction and scope

This document gives an overview of the RTTOV-7 fast radiative transfer model (in sec 2), how to install the RTTOV-7 fast radiative transfer model code on a UNIX platform and run it (sec 3) and how to apply it to the users particular problem (sec 4). The procedure for reporting bugs or making comments to the NWP SAF are given in sec 5. Finally a frequently asked questions (FAQ) section is provided at section 6. If you want to order a copy of the RTTOV-7 code send an email to mailto:rttov.nwpsaf@https://www.wendangku.net/doc/1211105495.html, or fax +44-1344-854026 requesting a copy of the code. You will need to sign a RTTOV-7 licence form before the code is sent to you.

The old RTTOV-6 code is still available in FORTRAN-90 or FORTRAN-77 but will no longer be upgraded for new instruments. Note RTTOV-7 is not available in FORTRAN-77. Bugs reported with RTTOV-6 will continue to be announced and users informed of fixes. Coefficient files for RTTOV-6 will continue to be made available from the NWP-SAF web site. The RTTOV-6 code took part in the Garand fast model intercomparison (see Garand et. al. 2001 for details) and has been distributed to over 40 users worldwide.

Before attempting to use the RTTOV-7 model the reader is advised to also read the RTTOV-7 technical report for more details of the code and its operation. The RTTOV-7 scientific and validation report describes or gives links to the scientific basis of the model and also describes in more details any new scientific changes made. It documents the test results carried out on the new code before delivery. The most up to date versions of these reports, like this users guide, can be viewed at the NWP-SAF web site: https://www.wendangku.net/doc/1211105495.html,/research/interproj/nwpsaf/rtm/ in pdf format on the RTTOV-7 page.

2. Overview of RTTOV-7

This section gives a brief overview of the RTTOV-7 model and its limitations. More details can be found in the references given in this section. RTTOV-7 is a development of the fast radiative transfer model for TOVS, RTTOV, originally developed at ECMWF in the early 90’s (Eyre, 1991) for TOVS. Subsequently the original code has gone through several developments (e.g. Saunders et. al., 1999; Matricardi et. al., 2001), more recently within the EUMETSAT NWP Satellite Application Facility (SAF), of which RTTOV-7 is the latest version. The model allows rapid simulations (~1 ms for 40 channel ATOVS on a HP workstation) of radiances for satellite infrared or microwave nadir scanning radiometers given an atmospheric profile of temperature, variable gas concentrations, cloud and surface properties, referred to as the state vector. The only variable gases for RTTOV-7 are water vapour and ozone with all other constituents assumed to be constant. The state vector for RTTOV-7 is given in Table 1. Not all parameters have to be supplied as actual values although sensible defaults need to be supplied as indicated. RTTOV-7 can accept state vectors on any set of pressure levels but the coefficients are supplied for the 43 pressure levels defined in Table 2. To work on other pressure levels users would have to supply their own generated coefficients with their own transmittances on these levels.

Currently the spectral range of the RTTOV-7 model is 3-20m (500 – 3000 cm-1) in the infrared governed by the range of the GENLN2 line-by-line dataset on which it is based. In the microwave the frequency range from 10 – 200 GHz is covered using the Liebe-89 MPM line-by-line model. The full list of currently supported platforms and sensors is given in Table 3, although this list will

be updated as new sensors are launched or as improved line-by-line model data are generated.

Updated coefficient files will be made available from the RTTOV pages on the NWP SAF web site.An important feature of the RTTOV model is that it not only computes the forward (or direct)radiative transfer calculation but also the gradient of the radiances with respect to the state vector variables for the input state vector values. Given a state vector x a radiance vector y is computed:

()H =y x (1)

where H is the radiative transfer model (also referred to as the observation operator). The Jacobian matrix H gives the change in radiance

assuming a linear relationship about a given atmospheric state x 0:

=

0(2)

The elements of H contain the partial derivatives ?y i /?x j where the subscript i refers to channel number and j to position in state vector. The Jacobian gives the top of atmosphere radiance change for each channel from each level in the profile given a unit perturbation at any level of the profile vectors or in any of the surface/cloud parameters. It shows clearly, for a given profile, which levels in the atmosphere are most sensitive to changes in temperature and variable gas concentrations for each channel. RTTOVK (and its associated subroutines ending in K ) compute the H(x 0) matrix for each input profile.

It is not always necessary to store and access the full Jacobian matrix H and so the RTTOV package has routines to only output the tangent linear values

about an initial atmospheric state x . The tangent

linear routines all have TL as an ending. Conversely the adjoint routines (ending in AD ) compute the change in the gradient of any scalar quantity with respect to the atmospheric state, x, given a change in the gradient of that quantity with respect to the radiances, y. These routines are normally used as part of the variational assimilation of radiances. For users only interested in the forward model the TL/AD/K routines are not required.

The model can simulate both clear sky radiances and cloudy radiances. It uses an approximate form of the atmospheric radiative transfer (RT) equation. The top of the atmosphere upwelling radiance,L( from zenith at the surface, neglecting scattering

effects, is written as:),(),()(),(θ+θ?=θv NL v L N v L Cld Clr 1(3)

where L Clr (

radiances and N is the fractional cloud cover.1.1 Simulation of clear air radiances

If N, the cloud cover parameter (in array PCV), is set to zero and the LWP path profile vector is set to zero (in array PAV(LEV,4,IPROF)) both the infrared and microwave radiances computed are for clear air with the second right hand term of equation 3 being zero. L Clr (

ττν∫θντθνετν∫νθνεθντθνττd T),B(),()),(-(1 + T)d ,B( + )T ,)B(,(),( = ),(L 212s s 1s s s Clr s s (4)

where τs is the surface to space transmittance, εs is the surface emissivity and B(v,T) is the Planck function for a frequency v and temperature T. The transmittances, τ, are computed by means of a linear regression in optical depth based on variables from the input profile vector as described in Matricardi et. al. (2001). To compute εs over water there are fast surface emissivity routines for both the infrared, ISEM, (Sherlock, 1999) and for the microwave, FASTEM-1 (English and

Hewison, 1998) or FASTEM-2 (DeBlonde and English, 2001). These models all compute a surface emissivity for the channel of interest at the given viewing angle θ. FASTEM-2 makes a better correction for reflected radiation at the surface. Note that using FASTEM requires the surface

wind-speed to be provided in the state vector. Over the land and sea-ice surfaces only approximate default values are provided for the surface emissivity in both the infrared and microwave (see refs above for details and Table 4). The user also has the option of providing their own estimate of surface emissivity to the model if desired (see Table 4 for input options).

1.2 Simulation of cloudy radiances

Assuming black, opaque clouds at a single level the simulation of cloud affected radiances L Cld (

Cld (

and/or cloudy radiances for multilevel and multiphase cloud fields. The clear and cloudy radiative transfer computation is done on the user defined model levels in RTTOVCLD. The advantage of using this method for computing cloudy microwave radiances is there is no interpolation to the RTTOV levels for the cloudy radiance computations and there is a consistent random-overlap scheme with the infrared. More details are given in Chevallier et. al.(2001) and the RTTOV-7 science and validation plan for this enhancement of RTTOV.

2.3Current limitations of RTTOV-7

There are a number of limitations of RTTOV-7 the user should be aware of. Some are fundamental and some are not. The main ones are listed here:

?RTTOV-7 only simulates top of atmosphere radiances from a nadir or off-nadir view which intersects with the Earth’s surface (i.e. no limb paths).

?RTTOV-7 does not include any reflected solar component.

?RTTOV-7 does not include scattering effects.

?RTTOV-7 only allows for water vapour and ozone to be variable gases with all others included in the mixed gases transmittance calculation.

?RTTOV-7 does not simulate IASI or CRIS radiances. Other lower resolution IR or MW sensors can be simulated if their filter responses are known.

?RTTOV-7 as supplied can only provide simulations with a 43 level profile as input on the defined pressure levels in Table 2. However if users have an alternate dependent set of LbL transmittances on different levels they can compute a new coefficient set on these levels.?The accuracy of simulations for very broad channels (e.g. SEVIRI channel 4 at 3.9 microns) is poor with significant biases noted (~1-2K). This is the case for all versions of RTTOV.?RTTOV-7 does not include the variation of the zeeman effect with magnetic field strength for the high peaking AMSU-A and SSMIS channels. Only a constant correction factor is included.

3. FORTRAN-90 UNIX installation

Some basic information on installing the RTTOV-7 Fortran 90 code in a UNIX environment follows. This assumes the code is obtained as a compressed unix tar file via ftp or on CD-ROM from ECMWF. The file name should be rttov7.tar.Z and be copied to your ‘top’ RTTOV directory (e.g. ~user/rttov7) from which subdirectories will be created. Text in italics refers to specific commands to execute during the installation or file names.

3.1Unpacking the code

First uncompress the tar file:

uncompress rttov7.tar.Z

and expand it:

tar -xvf rttov7.tar

The following subdirectories are created and contain:

-src Fortran source code + make files for a variety of platforms

-scripts Unix test scripts for running test programs

-data Associated input data files required for testing

-rtcoef RT coefficient files for all sensors supported

-test Output of test programs run on user's machine

-reftest Output of test programs run by NWP SAF

-docs Documentation

3.2Compiling the code

First go to the source code directory:

cd src

The fortran code consists of subroutines and modules and 3 top level test programs (TSTRAD.f90, MAIN_TESTAD.f90, MAIN_TESTK.f90) in src for complete testing of the RTTOV and RTTOVCLD subroutines. The first step is to compile the code and make an executable using the makefiles supplied. Edit the file called Makefile in src so that the f90 compiler options match those available on your machine. A selection of compiler flags for different platforms are listed so if you are running using one of these compilers you should be able to just uncomment the relevant section. Once this is done type make and with luck the code will compile and produce an executable tstrad.out for the RTTOV tests, main_testad.out and main_testk.out for the RTTOVCLD tests. The Makefile should copy these three executable files to the scripts subdirectory.

If the compilation was not successful then either edit the makefile again until it does or if all else fails compile the code manually as follows. Note you must first compile the modules then the subroutines and program:

Step 1: f90 –c –your flags MOD_*.f90

Step 2: f90 –c –your flags *.f90

Step 3: rm -f main_test*.o (to ensure the clear air test code tstrad compiles)

Step 4: f90 *.o

This should produce an executable file a.out in your src directory which you should then move to your scripts directory renamed as tstrad.out. This only provides code to test the RTTOV routines and not the RTTOVCLD routines (above RTTOV). If you want to test the cloudy routines also restart from step 3 and rm -f tstrad.o and recompile main_testad.f90.

3.3 Running the code

There are test scripts for running the executables (tstrad.out etc) which must be in the scripts directory.The controlling script is tstrad_all.scr. This script calls the other scripts in sequence to test RTTOV for clear air, cloudy air and all instruments and in both forward model test mode and using tstrad_full.scr to fully test the TL/AD/K routines. If you only want to use the code in forward mode and/or for 1 instrument or clear air you may wish to reduce the number of test scripts called in tstrad_all.scr to just test for your particular application by commenting out calls to some of the scripts.

The rt coefficient files (for all instruments supported as listed in Table 3) and input files for running tstrad.out the test program are all in the subdirectories rtcoef and data respectively. Output files from the runs on the NWPSAF machine at the Met Office are given in reftest. The files in reftest can be compared with the output produced locally (the scripts write the output to a subdirectory test as *.lst files) and difference files from those in reftest are also created as *.diff files in the test subdirectory. To check the installation has been successful you should check the *.diff files are all of size zero. Note however the TL/AD/K test outputs will differ slightly due to machine precision differences and use of a random number generator in the test code and so typical differences between machines are shown in the listing in Table 5. These differences are normal. Once the code

does reproduce the results in the sample files the code can then be linked into the users own particular applications. The subroutine interfaces and file structures are described in detail in the annexes and the RTTOV-7 technical report.

4. Running RTTOV-7 for your applications

To run RTTOV-7 for a user’s application the program tstrad.f90 can be used as a rough guide or template. There are only 2 subroutines that must be called: RTTVI to initialise the arrays and read in the coefficients requested and secondly the call to RTTOV itself which actually computes the radiances. Users requiring the TL/AD/K routines may also call RTTOVTL/RTTOVAD/RTTOVK as required. It is recommended that users look at the header section of the coefficient file for the sensor they wish to simulate as there is useful information such as the definition of channel number for that instrument etc. The following steps are recommended in coding a program which calls RTTOV.

1.Include the module MOD_CPARAM.f90 in your program (see tstrad.f90 as an example).

2.Edit MOD_CPARAM.f90 for your application to minimise the array sizes. This will normally

consist of setting the channel number parameters JPCH and JPCHUS to the maximum number of channels you require computations for in one call to RTTOV. Secondly setting the number of profiles parameter JPPF to the maximum number of profiles you want to compute in one call to RTTOV (this is normally set to 1 as there is only a significant advantage to process many profiles per call on vector machines). Thirdly JPNSAT should be set to the maximum number of sensors simulated in the program (e.g. for ATOVS only it would be 3, HIRS, AMSU-A and AMSU-B) . JPLEV should be set to the number of levels assumed in the coefficient file which is currently 43 for the files distributed with the code. All other parameters are normally left unchanged. See RTTOV technical report for listing of parameters.

3.Initialise the variables input to RTTVI and RTTOV in your code. These are defined in Annexes

A and B. In particular you need to fill the state vector arrays listed in Table 1 with the values in

the correct units and on the 43 pressure levels. This may require an interpolation step from your original profile levels.1 The channel number array KCHAN must be filled with the required channel numbers (see rt_coef files for their definition) and the satellite zenith angle array with the required satellite zenith angle(s) (in deg). The latter is the angle from the zenith at which an observer on the surface observes the satellite. It is not the nadir scan angle. If you are simulating more than one sensor in each run then the order in which you load up the coefficient files of the sensors in RTTVI becomes important (i.e. the order of values in the PLATFORM, SATELLITE and INSTRUMENT id arrays). The KSAT index number used in RTTOV then refers to the order they are loaded in RTTVI (e.g. KSAT=1 refers to the first sensor, KSAT=2 to the second and so on).

https://www.wendangku.net/doc/1211105495.html,pile the RTTOV modules first followed by the RTTOV subroutines followed by your main

calling program (see makefile supplied). You do not have to compile in double precision (-r8 flag on some compilers) as this is only used in the test programs supplied to ensure there is enough precision to check the code is giving the correct answers.

5.Make sure the coefficient file for the instrument you want to simulate is in the same directory as

the executable (or a symbolic link to the file is made).

6.You should now be able to run the program to compute radiances. It is wise to check the IFAIL

flag from RTTOV to check it is zero. If it is non-zero there are a number of possible reasons according to the number returned (see Table 6).

1 It is planned to make available some standard code to do this interpolation robustly in the near future.

7.Note that if you set the PEMIS array to zero on input, to call the internal surface emissivity

routines ISEM or FASTEM, then on output the array contains the computed emissivities for each channel. Before calling RTTOV again you must reinitialise the array to zero.

8.The RTTOVTL/RTTOVAD/RTTOVK routines are called in the same way as RTTOV (see

annexes C-E). Again ensure all arrays are initialised before calling the routines.

9.The RTTOVCLD routines are a level up from RTTOV but they have almost the same calling

structure and arrays to fill. Again the test program supplied main_testad.f90 can be used as an example. Note however the cloud parameter arrays are input on user defined model levels.

More details on the RTTOVCLD routines are planned for the next version of this user manual.

5. Reporting bugs to the NWP SAF

The procedure to report bugs or make comments on the code to the NWP-SAF is as follows:

Send a bug report to rttov.nwpsaf@https://www.wendangku.net/doc/1211105495.html, including the following information: -RTTOV version number (i.e. 5, 6 or 7)

-Platform and operating system you are running the code on (e.g. HP, UNIX)

-Compiler used (e.g. HP FORTRAN-90)

-Classification of report as: serious, cosmetic or improvement

-Copy of file MOD_CPARAM.f90 (for RTTOV-7) or cparam.h (for RTTOV-5/6)

-Report of problem including any input / output files the SAF can use to reproduce the problem

Once the problem has been analysed it will be posted on the RTTOV web site with a description of the fix if appropriate. There is also a RTTOV email list which you can subscribe to by sending an email to mailto:rttov.nwpsaf@https://www.wendangku.net/doc/1211105495.html, where bugs are announced.

6. Frequently asked questions

This section will be updated on the web pages from time to time.

1.Can I compile the code in single precision? Yes the Makefiles supplied only compile the code in

double precision for the purposes of testing.

2.I don’t have an ozone profile to include in the state vector. What can I do? You should fill the

input state vector PAV(lev,3,prof) with the reference ozone profile (units kg/kg) listed in the right hand column of Table 2 for all values of lev and repeated for each profile stored in PAV.

3.I am only simulating radiances from 1 instrument what should KSAT be set to? Set KSAT to 1

as it is the first and only instrument coefficient files loaded by RTTVI.

4.Why do the numbers in the TSTRAD output (see Table 5) change from run to run? A random

number generator is included in the code so different values can be expected. The important thing is SUMPROF=SUMRAD to machine precision.

5.More to be added here……please make suggestions!

Good Luck and please provide me with any feedback on your experiences. Remember do not pass this code on to anyone else without the permission of EUMETSAT. The code is provided to you on an "as is" basis and there is no commitment to maintain it.

6. References

Chevallier, F., P. Bauer, G. A. Kelly, C. Jakob, and T. McNally, 2001 Model clouds over oceans as seen from space: comparison with HIRS/2 and MSU radiances. J. Climate 144216-4229.

DeBlonde, G. and S.J. English 2001 Evaluation of the FASTEM-2 fast microwave oceanic surface emissivity model. Tech. Proc. ITSC-XI Budapest, 20-26 Sept 2000 67-78

English S.J. and T.J. Hewison 1998 A fast generic millimetre wave emissivity model. Microwave Remote Sensing of the Atmosphere and Environment Proc. SPIE3503 22-30

Eyre J. R. 1991 A fast radiative transfer model for satellite sounding systems. ECMWF Research Dept. Tech. Memo.176 (available from the librarian at ECMWF).

Garand, L., Turner, D.S., Larocque, M., Bates, J., Boukabara, S., Brunel, P., Chevallier, F., Deblonde, G., Engelen, R., Hollingshead, M., Jackson, D., Jedlovec, G., Joiner, J., Kleespies, T., McKague, D.S., McMillin, L., Moncet, J. L., Pardo, J. R., Rayer, P. J., Salathe, E., Saunders, R., Scott, N. A., Van Delst, P., Woolf, R. 2001 Radiance and Jacobian intercomparison of radiative transfer models applied to HIRS and AMSU channels. J. Geophys. Res., 106, D20, 24,017

Matricardi, M., F. Chevallier and S. Tjemkes 2001 An improved general fast radiative transfer model for the assimilation of radiance observations. ECMWF Research Dept. Tech. Memo.345(available from the librarian at ECMWF).

Saunders R.W., M. Matricardi and P. Brunel 1999 An Improved Fast Radiative Transfer Model for Assimilation of Satellite Radiance Observations. QJRMS, 125, 1407-1425.

Sherlock, V. 1999 ISEM-6: Infrared Surface Emissivity Model for RTTOV-6. NWP SAF report (available from the librarian at Met Office, London Rd Bracknell, U.K.)

Position in vector PAV Profile Array Contents Units

1 to NLEV/1Temperature profile degK

1 to NLEV/2Water vapour profile Kg/Kg

1 to NLEV/3Ozone profile ?Kg/Kg

1 to NLEV/4Liquid water concentration profile ?Kg/Kg

Position in vector PSAV Surface 2m Array Contents Units

1Surface 2m temperature degK

2Surface 2m water vapour Kg/Kg

3Surface pressure hPa

4 2 m vector wind speed u #m.s-1

5 2 m vector wind speed v #m.s-1

Position in vector PSSV Surface Skin Array Contents Units

1Radiative skin temperature degK

2FASTEM-2 land coef s ?

3FASTEM-2 land coef ∞?

4FASTEM-2 land coef r ?GHz

5FASTEM-2 land coef

?mm

small

6FASTEM-2 land coef

(or Q) ?mm

large

Position in vector PCV Cloud Array Contents Units

1Cloud top pressure (ignored if cloud cover is

hPa

zero. Set to 500 as default)

0-1

2Cloud fractional cover (set to 0 for clear sky

1 for 100% cloud cover)

Position in vector PEMIS Surface Emissivity Array Contents Units

0-1

1 to NCHAN Surface emissivity (if set to zero or -1.

provide default value as defined in Table 4)

? If unavailable initialise to reference ozone profile listed in any rt_coef file and ozone will be assumed constant.

This variable only affects microwave cloudy radiance simulations, default set to zero and set top level to –0.1 to switch off transmittance computation to save time if not required. IR and MW cloudy radiances also governed by PCV vector.

Only used by FASTEM-1/2 to compute microwave sea surface emissivity. If not required set to zero.

See Table 1 of English and Hewison (1998) or Table 3 of RTTOV-7 science and validation report for typical values for different surface types. Set to zero if not required.

Table 1. State vector for RTTOV-7 model. NLEV is the number of profile levels (currently 43) and NCHAN the number of channels. Default values are also given where appropriate.

Level Pressure Tmax Tmin Qmax Qmin O3max O3min O3 Ref number(hPa)deg K degK Kg/Kg Kg/Kg Kg/Kg Kg/Kg Kg/Kg

10.1335.5162.0 4.38E-05 1.20E-06 1.63E-057.00E-079.69E-06

20.3335.8173.1 4.65E-05 1.20E-06 1.69E-05 1.00E-06 1.00E-05

30.7352.8168.9 4.61E-05 1.20E-06 1.70E-05 2.10E-06 1.01E-05

4 1.4354.4160.9 4.51E-0

5 1.20E-0

6 1.71E-05 2.11E-06 1.02E-05

5 2.6349.4160.5 4.29E-05 1.20E-0

6 1.71E-05 2.11E-06 1.02E-05

6 4.4328.8160.3 4.26E-05 1.20E-06 1.71E-05 2.11E-06 1.02E-05

77.0321.4158.5 4.36E-05 1.20E-06 1.71E-05 2.11E-06 1.02E-05

810.4300.3154.7 4.35E-05 1.20E-06 1.71E-05 2.11E-06 1.02E-05 914.8295.0154.9 4.01E-05 1.20E-06 1.72E-05 2.11E-06 1.01E-05 1020.4289.0151.1 4.03E-05 1.20E-06 1.61E-05 2.11E-069.36E-06 1127.3286.5151.2 4.18E-05 1.20E-06 1.60E-05 2.03E-068.10E-06 1235.5285.3151.6 3.62E-05 1.20E-06 1.14E-058.33E-07 6.72E-06 1345.3284.2152.5 3.43E-05 1.20E-06 1.11E-05 5.49E-07 5.19E-06 1456.7283.8154.2 3.33E-05 1.20E-069.82E-06 2.85E-07 3.72E-06 1570.0282.7155.7 3.23E-05 1.20E-06 6.46E-06 2.13E-07 2.58E-06 1685.2282.7153.9 3.01E-05 1.20E-06 5.31E-06 1.71E-07 1.72E-06 17102.1281.5151.5 2.90E-05 1.20E-06 4.10E-06 6.96E-08 1.19E-06 18122.0280.1156.7 3.58E-05 1.20E-06 3.63E-06 1.18E-088.45E-07 19143.8278.6157.48.61E-05 1.20E-06 3.06E-06 1.03E-08 6.50E-07 20168.0278.8159.7 1.64E-03 1.20E-06 2.24E-068.72E-09 5.27E-07 21194.4280.1163.2 2.79E-03 1.20E-06 1.64E-067.43E-09 4.13E-07 22222.9282.3165.3 4.44E-03 1.20E-06 1.47E-067.14E-09 3.03E-07 23253.7285.3166.77.64E-03 1.20E-06 1.09E-06 1.20E-08 2.11E-07 24286.6288.7167.6 1.12E-02 1.20E-067.60E-07 1.16E-08 1.56E-07 25321.5294.0170.6 1.68E-02 1.20E-06 5.90E-07 1.59E-08 1.23E-07 26358.3300.5174.2 2.54E-02 1.20E-06 3.83E-077.94E-09 1.08E-07 27396.8306.4175.3 3.62E-02 1.20E-06 3.13E-07 1.13E-08 1.01E-07 28437.0312.2178.8 5.00E-02 1.20E-06 2.45E-07 6.58E-099.60E-08 29478.5317.2182.1 6.50E-02 1.95E-06 2.34E-07 6.24E-099.17E-08 30521.5321.1185.07.75E-02 4.51E-06 2.31E-07 4.95E-098.91E-08 31565.5325.2187.88.95E-02 1.04E-05 2.13E-07 2.76E-098.47E-08 32610.6328.2190.3 1.05E-01 1.29E-05 2.01E-07 2.41E-098.12E-08 33656.4333.0192.8 1.24E-01 1.42E-05 2.07E-07 2.27E-097.78E-08 34702.7336.8195.4 1.41E-01 1.71E-05 2.21E-07 2.07E-097.57E-08 35749.1340.7197.1 1.59E-01 3.63E-05 1.87E-077.24E-107.12E-08 36795.1344.4198.4 1.78E-01 5.34E-05 1.91E-077.24E-10 6.63E-08 37840.0348.0199.0 2.00E-01 6.42E-05 1.81E-077.24E-10 6.16E-08 38882.8350.3197.5 2.14E-01 6.68E-05 1.73E-078.10E-10 5.68E-08 39922.5352.2195.5 2.40E-01 6.57E-05 1.68E-078.10E-10 5.21E-08 40957.4354.7188.2 2.70E-01 6.57E-05 1.65E-078.10E-10 4.79E-08 41985.9356.6155.0 2.79E-01 6.57E-05 1.63E-078.10E-10 4.44E-08 421005.4357.9135.0 2.82E-01 6.57E-05 1.62E-078.10E-10 4.20E-08 431013.3385.9135.0 2.84E-01 6.57E-05 1.62E-078.10E-10 4.10E-08 Table 2 Pressure levels adopted for RTTOV-7 and the profile limits within which the transmittance calculations are valid. The default ozone profile is also given in the right hand column.

Platform RTTOV id Sat id range NOAA1 1 to 16

DMSP28 to 16

Meteosat3 5 to 7

GOES48 to 12

GMS55

FY-262

TRMM71

ERS8 1 to 2

EOS9 1 to 2 ENVISAT111

MSG121

FY-113 3 to 4

Sensor RTTOV id Sensor

Channel #

RTTOV Channel #

HIRS0 1 to 19 1 to 19

MSU1 1 to 4 1 to 4

SSU2 1 to 3 1 to 3

AMSU-A3 1 to 15 1 to 15

AMSU-B4 1 to 5 1 to 5

AVHRR53b to 5 1 to 3

SSMI6 1 to 7 1 to 7

VTPR17 1 to 8 1 to 8

VTPR28 1 to 8 1 to 8

TMI9 1 to 9 1 to 9

SSMIS10 1 to 24? 1 to 24?

AIRS11 1 to 2378 1 to 2378

MODIS13 1 to 17 1 to 17

ATSR14 1 to 3 1 to 3

MVIRI20 1 to 2 1 to 2

SEVIRI21 4 to 11 1 to 8

GOES-Imager22 1 to 4 1 to 4

GOES-Sounder23 1 to 18 1 to 18

GMS imager24 1 to 2 1 to 2

FY2-VISSR25 1 to 2 1 to 2

FY1-MVISR26 1 to 3 1 to 3

*channels 19-21 are not simulated accurately

Table 3. Platforms and sensors supported by RTTOV-7 as at 1 Jan 2002. Sensors in italics are only supported by RTTOV-7.

Tangent Linear Output ?

ISEM

?

ISEM

Non-zero as input

?

input

MICROWAVE CHANNELS

Land/sea-ice computed from coefs in PSSV(2-6)/sea=

, about , computed from

?u, ?v, ?sst about

FASTEM2

Land/sea-ice ?

FASTEM2

sea ?

FASTEM2

Non-zero

as input

?

and gradient routines

< BRUTE FORCE: -0.2829711887E+02 0.1000000381E+01 6< BRUTE FORCE: -0.2829710928E+02 0.1000000043E+01 7< BRUTE FORCE: -0.2829711349E+02 0.1000000191E+01 8< BRUTE FORCE: -0.2829712571E+02 0.1000000623E+01 9< BRUTE FORCE: -0.2829696655E+02 0.9999949986E+00 10< BRUTE FORCE: -0.2829438017E+02 0.9999035979E+00 11< BRUTE FORCE: -0.2829665391E+02 0.9999839502E+00 12< BRUTE FORCE: -0.2862066140E+02 0.1011434148E+01 13< BRUTE FORCE: -0.3012701200E+02 0.1064667524E+01 14< BRUTE FORCE: -0.2273736754E+02 0.8035226599E+00 15---> BRUTE FORCE: -0.2829711886E+02 0.1000000381E+01 6> BRUTE FORCE: -0.2829710937E+02 0.1000000046E+01 7> BRUTE FORCE: -0.2829711178E+02 0.1000000131E+01 8> BRUTE FORCE: -0.2829712855E+02 0.1000000724E+01 9> BRUTE FORCE: -0.2829702339E+02 0.9999970074E+00 10> BRUTE FORCE: -0.2829381174E+02 0.9998835099E+00 11> BRUTE FORCE: -0.2828812740E+02 0.9996826292E+00 12> BRUTE FORCE: -0.2859223969E+02 0.1010429745E+01 13> BRUTE FORCE: -0.3069544618E+02 0.1084755591E+01 14> BRUTE FORCE: -0.1136868377E+02 0.4017613299E+00 15872,873c872,873

< PROFILE= 1 SUMRAD= -0.7225097989E+01 SUMPROF= -0.7225097989E+01< PROFILE= 2 SUMRAD= -0.5618514327E+01 SUMPROF= -0.5618514327E+01---> PROFILE= 1 SUMRAD= -0.7074762965E+01 SUMPROF= -0.7074762965E+01> PROFILE= 2 SUMRAD= -0.1075604858E+02 SUMPROF= -0.1075604858E+02

Table 5. Example of typical differences found between NWPSAF generated output and that from

the users machine. The numbers can differ from run to run.

IFAIL value Meaning

0Profile OK

11Temp profile outside limits

12Water vapour profile outside limits

13Ozone profile outside limits

14Surface temp outside limits

15Surface water vapour outside limits

16Surface wind speed outside limits

17Zenith angle outside ISEM-6 limits

20Input pressure levels do not match coef file 21Temperature profile unphysical

22Water vapour profile unphysical

23Ozone profile unphysical

24Surface temperature unphysical

25Surface water vapour unphysical

26Surface wind unphysical

27Surface pressure unphysical

Table 6. Values for IFAIL flag from RTTOV

CALL RTTVI ( KERR, KPPF, KPNSAT, KPLEV, KPCH, KPCHUS, KPNAV, KPNSAV, KPNSSV, KPNCV, NRTTOVID, PLATFORM, SATELLITE, INSTRUMENT, NUMCHANS, PRESLEV, OTMIN, OTMAX, OQMIN, OQMAX, OOZMIN, OOZMAX, IVCH, NIU1)

RTTVI is called only once for all platforms, satellites and instruments. The table below lists the variables and gives an example of what the arrays should contain to set up RTTOV for simulating NOAA-16 AMSU-A, AMSU-B and METEOSAT-7 MVIRI radiances for up to 6 profiles in each call of RTTOV. The jpxxx array sizes are set up by the module MOD_CPARAM.f90. For this example setting jpnsat=3, jpch=15, jppf=6 and nlev=43 is optimum to allow all the calling options given in Annexes B-E to work.

Parameter and size if > 1Type IN/OUT Description Example of

contents KERR INTEGER OUT Error if not 00

KPPF INTEGER OUT No. of profiles6

KPNSAT INTEGER OUT No. of sensors3

KPLEV INTEGER OUT No. of levels43

KPCH INTEGER OUT No. of channels15

KPCHUS INTEGER OUT No. of channels15

KPNAV INTEGER OUT No. of profile vars4

KPNSAV INTEGER OUT No. of 2m surface vars5

KPNSSV INTEGER OUT No. of surface skin vars6

KPNCV INTEGER OUT No. of cloud variables2

NRTTOVID INTEGER IN No. of sensors3 PLATFORM(jpnsat)INTEGER IN Platform ids (Table 3)1,1,3

SATELLITE(jpnsat)INTEGER IN Satellite ids (Table 3)16,16,7

INSTRUMENTjpnsat)INTEGER IN Instrument ids (Table 3)3,4,20

NUMCHANS(jpnsat)INTEGER IN/OUT Number of channels15,5,2

PRESLEV(nlev)REAL OUT Pressure levels for coeffs Table 2

OTMIN(nlev)REAL OUT Min valid Temp Table 2

OTMAX(nlev)REAL OUT Max valid Temp Table 2

OQMIN(nlev)REAL OUT Min valid specific hum Table 2

OQMAX(nlev)REAL OUT Max valid specific hum Table 2

OOZMIN(nlev)REAL OUT Min valid ozone Table 2

OOZMAX(nlev)REAL OUT Max valid ozone Table 2

IVCH(jpch,jpnsat)INTEGER IN/OUT See note 1 below1-15,1-5,1-2

NIU1(jpnsat)INTEGER IN/OUT See note 2 below10 Note 1. Normally IVCH on input should be initialised to zero and the output will contain all valid

channel numbers for each sensor. This can be used to check RTTOV is not called with an invalid channel

number. For sensors with large number of channels (e.g. AIRS) the IVCH array and NUMCHANS array

can be set to non-zero values on input to allow coefficients for only those channels required to be read in

to memory. In this case the number of channels required is in NUMCHANS and their numbers are given

in the IVCH array. If IVCH is zero on input coefficients for all valid channels are read into memory.

Note 2. NIU1 is an optional parameter and if set to a non-zero value defines the fortran unit numbers

through which the coefficient files are read in. This file should have already been opened.

CALL RTTOV (KNPF, KLENPF, PPRES, PANGL, PANGS, KSURF, KSAT, KNCHPF, KCHAN, KPROF, PAV, PSAV, PSSV, PCV, PEMIS, IFAIL, PRAD, PTB, RADOV, RADO, TAU, TAUSFC, LCLOUD)

RTTOV is called for every sensor required for KPPF profiles at a time. The table below lists the variables and gives an example of what the arrays should contain for RTTOV to simulate NOAA-16 AMSU-B for 3 profiles and 4 out of the 5 channels (omitting channel 2). This assumes the calling sequence in Annex A is followed.

Parameter and size if >1Type IN/OUT Description Example of contents for AMSU-B

KNPF INTEGER IN No. of profiles3

KLENPF INTEGER IN No. of levels in profiles43

PPRES(jplev)REAL IN Pressure levels (hPa)Table 2 PANGL(jppf)REAL IN Sat zenith angle (deg)30.,32.,34.

PANGS(jppf)REAL Not used Solar zenith angle (deg)0.,0.,0.

KSURF(jppf)INTEGER IN0=land, 1=sea, 2=sea-ice1,1,0 KSAT INTEGER IN Sequence number as loaded

by RTTVI (see annex A)

2

KNCHPF INTEGER IN No chans*No. profiles4*3=12 KCHAN(jpchus*jppf)INTEGER IN Channel numbers+1,3,4,5,1,3,. KPROF(jpchus*jppf)INTEGER IN Profile numbers1,1,1,2,2,2..

PAV(jplev,4,jppf)REAL IN Profile array (Table 1) 3 profiles PSAV(5,jppf)REAL IN Surface 2m array (Table 1) 3 profiles PSSV(6,jppf)REAL IN Surface skin array (Table 1) 3 profiles PCV(2,jppf)REAL IN Cloud array (Table 1) 3 profiles PEMIS(jpchpf)REAL IN/OUT Surface emissivity (Table 4) 3 profiles IFAIL(jppf,kpnsat)INTEGER OUT See Table 63*3*0 PRAD(jpchpf)REAL OUT Radiances in mW/m2/sr/cm-112 radiances PTB(jpchpf)REAL OUT Brightness temps in degK12 Br.

Temps RADOV(jpchpf,2*jplev+2)REAL OUT Overcast cloudy radiances?1056 rads RADO(jpchpf)REAL OUT O’cast radiance from cld top12 radiances TAU(jpchpf,jplev)REAL OUT Layer to space transmittances43*12 trans TAUSFC(jpchpf)REAL OUT Surface to space transmittances12 trans LCLOUD LOGICAL IN Switch for IR cloud calcs.false.

+ If the array IVCH is non-zero on input to RTTVI then this channel index refers to the subset of

channels requested in IVCH (normally only used for AIRS).

? The RADOV array contains the following radiances for possible cloud computations outside RTTOV

(e.g. used by RTTOVCLD):

RADOV (jpchus,1:njplev) : overcast radiances at given cloud top

RADOV (jpchus,njplev+1,2*njplev) : contribution to radiance of downward cloud emission at given

cloud top (if LCLOUD .false. then this is zero) RADOV (jpchus,2*njplev+1): clear-sky radiance without reflection term

RADOV (jpchus,2*njplev+2) : reflected clear-sky downwelling radiance (if LCLOUD .false.

then this is zero)

CALL RTTOVK(KNPF, KLENPF, PPRES, PANGL, PANGS, KSURF, KSAT, KNCHPF, KCHAN, KPROF, PAV, PSAV, PSSV, PCV, PEMIS, PAV_D, PSAV_D, PSSV_D, PCV_D, PEMIS_D, PRAD_D, PTB_D, KINRAD, LCLOUD,IFAIL,RADOV)

RTTOVK is called once for each sensor for KPPF profiles at a time. The table below lists the variables and gives an example of what the arrays should contain for RTTOVK to simulate METEOSAT MVIRI for 1 profile and both channels for a zenith angle of 30 deg. This assumes the calling sequence to RTTVI in Annex A is followed. The variables ending in _D denote direct value (same as RTTOV input/output).

Parameter and size if >1Type IN/OUT Description Example of contents for MVIRI

KNPF INTEGER IN No. of profiles1

KLENPF INTEGER IN No. of levels in profiles43

PPRES(jplev)REAL IN Pressure levels (hPa)Table 2 PANGL(jppf)REAL IN Sat zenith angle (deg)30.

PANGS(jppf)REAL Not used Solar zenith angle (deg)0.

KSURF(jppf)INTEGER IN0=land, 1=sea, 2=sea-ice1 KSAT INTEGER IN Sequence number as loaded

by RTTVI (see annex A)

3 KNCHPF INTEGER IN No chans*No. profiles2*1=2 KCHAN(jpchus*jppf)INTEGER IN Channel numbers +1,2 KPROF(jpchus*jppf)INTEGER IN Profile numbers1,1 PAV(jplev,4,jpchpf)REAL OUT K of profile array 1 profile PSAV(5,jpchpf)REAL OUT K of surface 2m array 1 profile PSSV(6,jpchpf)REAL OUT K of Surface skin array 1 profile PCV(2,jpchpf)REAL OUT K of cloud array 1 profile PEMIS(jpchpf)REAL IN/OUT K of surface emiss (Table 4) 1 profile PAV_D(jplev,4,jppf)REAL IN Input profile array 1 profile PSAV_D(5,jppf)REAL IN Input surface 2m array 1 profile PSSV_D(6,jppf)REAL IN Input surface skin array 1 profile PCV_D(2,jppf)REAL IN In put cloud array 1 profile PEMIS_D(jpchpf)REAL IN/OUT Input surface emiss (Table 4) 1 profile PRAD_D(jpchpf)REAL OUT Radiances in mW/m2/sr/cm-1 2 radiances PTB_D(jpchpf)REAL OUT Brightness temps in degK 2 Br. Temps KINRAD INTEGER IN Switch (1=radiance, 2=BT)2

LCLOUD LOGICAL IN Switch for IR cloud calcs.false.

IFAIL(jppf,kpnsat)INTEGER OUT See Table 63*3*0 RADOV(jpchpf,2*jplev+2)REAL IN/OUT K of overcast cloudy

radiances?

radiances If the array IVCH is non-zero on input to RTTVI then this channel index refers to the subset of channels requested in IVCH (normally only used for AIRS).

? The RADOV array contains the following radiances for possible cloud computations outside RTTOV (e.g. used by RTTOVCLD):

RADOV (jpchus,1:njplev) : overcast radiances at given cloud top

RADOV (jpchus,njplev+1,2*njplev): contribution to radiance of downward cloud

emission at given cloud top (if LCLOUD .false. then

this is zero)

RADOV (jpchus,2*njplev+1): clear-sky radiance without reflection term

RADOV (jpchus,2*njplev+2): reflected clear-sky downwelling radiance (zero if

LCLOUD false)

CALL RTTOVTL (KNPF, KLENPF, PPRES, PANGL, PANGS, KSURF, KSAT, KNCHPF, KCHAN, KPROF, PAV, PSAV, PSSV, PCV, PEMIS, PAV_D, PSAV_D, PSSV_D, PCV_D, PEMIS_D, RADOV_D, PRAD, PTB, RADOV, LCLOUD, IFAIL)

RTTOVTL is called once for each sensor for KPPF profiles at a time. The table below lists the variables and gives an example of what the arrays should contain for RTTOV to simulate NOAA-16 AMSU-A for 1 profile and all 15 channels for a zenith angle of 15 deg. This assumes the calling sequence to RTTVI in Annex A is followed. The variables ending in _D denote direct value (same as RTTOV input/output).

Parameter and size if >1Type IN/OUT Description Example of contents for AMSU-A

KNPF INTEGER IN No. of profiles1

KLENPF INTEGER IN No. of levels in profiles43

PPRES(jplev)REAL IN Pressure levels (hPa)Table 2 PANGL(jppf)REAL IN Sat zenith angle (deg)15.

PANGS(jppf)REAL Not used Solar zenith angle (deg)0.

KSURF(jppf)INTEGER IN0=land, 1=sea, 2=sea-ice1 KSAT INTEGER IN Sequence number as loaded

by RTTVI (see annex A)

1 KNCHPF INTEGER IN No chans*No. profiles15*1=15 KCHAN(jpchus*jppf)INTEGER IN Channel numbers +1,2,3,..15 KPROF(jpchus*jppf)INTEGER IN Profile numbers1,1,…1,1 PAV(jplev,4,jppf)REAL IN TL of profile array 1 profile PSAV(5,jppf)REAL IN TL of surface 2m array 1 profile PSSV(6,jppf)REAL IN TL of surface skin array 1 profile PCV(2,jppf)REAL IN TL of cloud array 1 profile PEMIS(jpchpf)REAL IN/OUT TL of surface emiss (table 4) 1 profile PAV_D(jplev,4,jppf)REAL IN Input profile array 1 profile PSAV_D(5,jppf)REAL IN Input surface 2m array 1 profile PSSV_D(6,jppf)REAL IN Input surface skin array 1 profile PCV_D(2,jppf)REAL IN In put cloud array 1 profile PEMIS_D(jpchpf)REAL IN/OUT Input surface emiss (table 4) 1 profile RADOV_D(jpchpf,2*jplev+2)REAL OUT Overcast cloudy radiances? Radiances PRAD(jpchpf)REAL OUT TL of radiances in

mW/m2/sr/cm-1

15 radiances

PTB(jpchpf)REAL OUT TL of Brightness temps in

degK

15 B. Temps RADOV(jpchpf,2*jplev+2)REAL OUT TL of overcast cloudy

radiances?

Radiances LCLOUD LOGICAL IN Switch for IR cloud calcs.false.

IFAIL(jppf,kpnsat)INTEGER OUT See Table 63*3*0 + If the array IVCH is non-zero on input to RTTVI then this channel index refers to the subset of channels requested in IVCH (normally only used for AIRS).

? The RADOV array contains the following TL radiances for possible cloud computations

outside RTTOV (e.g. used by RTTOVCLD):

RADOV (jpchus,1:njplev) : TL overcast radiances at given cloud top

RADOV (jpchus,njplev+1,2*njplev): TL contribution to radiance of downward cloud

emission at given cloud top (zero if LCLOUD false) RADOV (jpchus,2*njplev+1) : TL clear-sky radiance without reflection term

RADOV (jpchus,2*njplev+2): TL reflected clear-sky downwelling radiance (zero if

LCLOUD false)

CALL RTTOVAD (KNPF, KLENPF, PPRES, PANGL, PANGS, KSURF, KSAT, KNCHPF, KCHAN, KPROF, PAV, PSAV, PSSV, PCV, PEMIS, PAV_D, PSAV_D, PSSV_D, PCV_D, PEMIS_D, PRAD, PTB, RADOV, KINRAD, LCLOUD, IFAIL)

RTTOVAD is called once for each sensor for KPPF profiles at a time. The table below lists the variables and gives an example of what the arrays should contain for RTTOV to simulate NOAA-16 AMSU-A for 6 profiles and 2 channels (chans 3, 8) for a zenith angle of 25 deg. This assumes the calling sequence to RTTVI in Annex A is followed. The variables ending in _D denote direct value (same as RTTOV input/output).

Parameter and size if >1Type IN/OUT Description Example of contents for AMSU-A

KNPF INTEGER IN No. of profiles6

KLENPF INTEGER IN No. of levels in profiles43 PPRES(jplev)REAL IN Pressure levels (hPa)Table 2 PANGL(jppf)REAL IN Sat zenith angle (deg)6*25.

PANGS(jppf)REAL Not used Solar zenith angle (deg)6*0.

KSURF(jppf)INTEGER IN0=land, 1=sea, 2=sea-ice6*1 KSAT INTEGER IN Sequence number as loaded

by RTTVI (see annex A)

1 KNCHPF INTEGER IN No chans*No. profiles2*6=1

2 KCHAN(jpchus*jppf)INTEGER IN Channel numbers +3,8,3,8,.. KPROF(jpchus*jppf)INTEGER IN Profile numbers1,1,2,2,3,3.. PAV(jplev,4,jppf)REAL OUT AD of profile array 6 profiles PSAV(5,jppf)REAL OUT AD of surface 2m array 6 profiles PSSV(6,jppf)REAL OUT AD of surface skin array 6 profiles PCV(2,jppf)REAL OUT AD of cloud array 6 profiles PEMIS(jpchpf)REAL IN/OUT AD of surface emiss (table 4) 6 profiles PAV_D(jplev,4,jppf)REAL IN Input profile array 6 profiles PSAV_D(5,jppf)REAL IN Input surface 2m array 6 profiles PSSV_D(6,jppf)REAL IN Input surface skin array 6 profiles PCV_D(2,jppf)REAL IN In put cloud array 6 profiles PEMIS_D(jpchpf)REAL IN/OUT Input surface emiss (table 4) 6 profiles

PRAD(jpchpf)REAL IN AD of radiances in

mW/m2/sr/cm-1Ignored for kinrad=2

PTB(jpchpf)REAL IN AD of Brightness temps in

degK

12 B. Temps RADOV(jpchpf,2*jplev+2)REAL IN/OUT AD of overcast cloudy

radiances?

Radiances KINRAD INTEGER IN Switch (1=radiance, 2=BT)2

LCLOUD LOGICAL IN Switch for IR cloud calcs.false.

IFAIL(jppf,kpnsat)INTEGER OUT See Table 63*3*0 + If the array IVCH is non-zero on input to RTTVI then this channel index refers to the subset of channels requested in IVCH (normally only used for AIRS).

? The RADOV array contains the following AD radiances for possible cloud computations

outside RTTOV (e.g. used by RTTOVCLD):

RADOV (jpchus,1:njplev) : AD overcast radiances at given cloud top

RADOV (jpchus,njplev+1,2*njplev): AD contribution to radiance of downward cloud

emission at given cloud top (zero if LCLOUD false) RADOV (jpchus,2*njplev+1) : AD clear-sky radiance without reflection term

RADOV (jpchus,2*njplev+2) : AD reflected clear-sky down-welling radiance (zero

if LCLOUD false)

21

相关文档