Claire Ryder : ES96 Notes : UoR, Dept Of Meteorology

ES96 Notes

The purpose of this page is to document some of the things that go on, or are required by ES96, and which may not be obvious (at least not to me, or they weren't at the time).

If you would like to add something to the list I'd be happy to add it - please email me with details! I'm also keeping track of the person who found these issues so that we other people know who to ask if they have questions.

Contents

  1. The rescaling flag
  2. Surface albedo files
  3. Carriage returns in input files
  4. Array ordering in vertical profile files
  5. Surface albedo in a GCM
  6. Pre-existing output files
  7. Text length for scatter90
  8. Understanding scatter90 output
  9. How to calculate kext
  10. Creating a new aerosol classification
  11. Order of variables in input files
  12. Brief notes on the phase function
  13. Including absorption from different gases
  14. What database for gaseous absorption does ESRAD use?
  15. Information from UKMO on standard spectral files
  16. Using the correct value of STOA
  17. Surface Emissivity in the Longwave

The Rescaling Flag

If the rescaling flag is OFF then the Eddington approximation is used. If it's ON, then the delta-Eddington approximation is used. This is appropriate if the aerosol is strongly forward scattering (g>0). What the code does in this case is to take flux out of the diffuse and add it back into the direct beam to account for the strong forward scattering.

If you are interested in the direct flux (e.g. for AOD calculations) or in the partioning between diffuse and direct, you shoud switch the rescaling flag OFF as it will alter the results. If you are interested in the total flux, then switching it on should give more accurate results. Choose carefully, as diffuse and direct fluxes can change by hundereds of Wm-2!!

To turn the flag on or off in interactive mode, choose .t. or .f. for true (on) or false (off) when asked. With Cl_run_cdf, set the flag to +R to switch it on, default is off.

Surface Albedo files, and spectral surface albedos

Discoveries from Nicky & Marc...

Within the .surf file, the basis value is supplied. This is usually 1 for a spectrally constant, lambertian surface albedo. The code will fall over unless the variable type of the basis is a BYTE. See a text example or a netcdf example.

Carriage returns in input files

Discoveries from Jolene...

Almost all the text input files, such as the spectral file and the mie code files for scatter90 require a space and a carriage return at the end of each line, and the code won't run without these!

The Order of vertical profile input files

Discoveries from Bethan...

If creating the profile input files, the first index of each dimension must be the top (i.e. highest altitude) pressure level, with the lowest (i.e. lowest altitude) pressure level last. See an example.

The surface albedo when running with a GCM

Discoveries from Liang...

Pre-existing output files

If you already have the .flx and .hrts files in the same directory as you're running the code from, (for example from a previous run) and with the same base name, the code will not overwrite them. Make sure you delete them first!

Text length in scatter90

When supplying the path names for input files for scatter90 (and esrad spectral file), the string length can only be 40 (? might be 80) characters long. ES96 will report that it couldn't find the file, even though it was there!

Understanding Scatter90 Output

Scatter90 output is contained ina text file and looks like this:

  *FILE TYPE = 6

Single scattering parameters.

Scattering algorithm = 1 (Full Mie scattering calculation )
Scattering type = 1 (Aerosol )
Component = 17 (Dust Division 1 )

Number density = 2.57907E+08 m-3
Effective radius = 4.33625E-06 m
Volume fraction = 2.68626E-10

Wavelength (m) Absorption (m-1) Scattering (m-1) Moments of pf
2.000000000E-07 1.872171666E-05 8.524926459E-05 8.010584985E-01
4.500000000E-07 1.259655298E-05 9.181332603E-05 7.554080381E-01
5.500000000E-07 1.125475204E-05 9.421888026E-05 7.495457686E-01
7.000000000E-07 9.756609151E-06 9.756026192E-05 7.468852438E-01
4.000000000E-05 2.516695495E-07 1.731725260E-05 6.253778297E-01

The file provides firstly some information about the information used to run the code, secondly information about the size distribution used to generate the scattering properties - number density (no. conc per m-3 of air?), effective radius, and the volume fraction (volume of aerosol per m3 air), and thirdly the scattering properties as a function of wavelength (absorption, scattering and asymetry parameter, in this case).

How to calculate kext

How to calculate kext, the mass specific extinction (in m2/kg):

In brief:

  kext = sigma_ext/(vf*rho_aer)

where sigma_ext is the extinction coefficient (=scattering + absorption) in m-1, vf is the volume faction provided in the output file, and rho_aer is the density of your aerosol (in kg/m3).

The explanation :

We know from text books:

  kext = (3*Qext)/(4*r*rho_aer)

and

  Qext = sigma_ext/(N*pi*r^2)

where N is the number concenctration per m3 air. Also, by definition the volume fraction can be shown as:

  vf = (4/3)*pi*r^3*N

Substituting sigma_ext into the kext equation, we get:

  kext=(3*sigma_ext)/(4*r*rho_aer*N*pi*r^2)

then substituting in vf gives us finally:

  kext = sigma_ext/(vf*rho_aer)

Creating a new aerosol classification

Discoveries from Bethan...

For the Aerocom runs, an unclassified aerosol classification was used, 'AUNCH.' To run this, the density of the aerosol must be supplied to the code. This is hardwired into the file $RAD_DIR/bin/incl/aerosol_component.dcf. The following line can be added to this file:

  ! Test value for uncharacterized aerosol - B Harris, Nov 09
DATA
& DENSITY_COMPONENT(IP_AEROSOL_UNCHARACTERIZED)/
& 1.6533E+03_RealK/

To compile the changes, from the $RAD_DIR/bin/ directory, type (and remember to have already typed setup fortran!):

  $make

Now the new aerosol classification can be used in ES96.

Note that the radiation code itself does NOT use the density value. The aerosol density is ONLY used in the band averaging (scatter_average), when extinction coefficients (m-1) are being converted into mass scattering efficieincies (m2kg-1).

Order of variables in ESRAD input files

Discoveries from Angus...

When providing the code with netCDF input files, the variables need to be in the file in a specific order. Esrad will read the last variable in the file as the mass mixing ratio (in kg/kg) of the substance (which is specified by the filename extension). Write your variables in the following order: longitude, latitude, pressure, profile of mass mixing ratio.

Brief notes on the phase function

Discoveries from Claire...

When running scatter_90, it is important to get the number of moments of phase function right. It's best to ask for several hundred, or only 1. See more documentation here.

Including absorption from different gases

On hindsight this is obvious, but for a long time I didn't realise that ESRAD will only include absorption from a gas if it is specified in the spectral file. This means the gas must be listed in block 1 of the spectral file, where the names and number of absorbers are listed. Additionally, the vertical profile must also be supplied as an input file. If you supply a vertical profile of a gas MMR but it is not listed in the spectral file in block 1, it will not be accounted for.

Gaseous Absorption Database

In the latest version of the code I used for AeroCom (released Dec 2009), HITRAN92 had been used for gaseous absorption, except for water vapour where the HITRAN2001 database was used, with updates to 2003. I have a description of John Edward's updates to include this. (Please contact me if you need it.)

Additionally, the code now uses a version of correlated k-distribution based on Cusack et al., 1999. The spectral file may still refer to ESFT terms, but this is just a hangover in the text.

Spectral File Documentation

James Manners supplied me a document which describes in more detail what goes into the spectral file, and differences between standard ones supplied with the code. Contact me if you'd like a copy.

Using the Correct STOA value

To run ESRAD in the shortwave, you must supply a .stoa file, containing the top of atmosphere solar irradiance (often referred to as the solar constant). Typically this has a value of 1366Wm-2, although note that it will vary with day of year, and solar cycle, since it depends on the Sun-Earth distance. If you are calculating irradiances for a specific date, you will want to make sure you use a sensible value. An online calculator can be found at the University of Oregon Solar Radiation Monitoring Laboratory, with basic information here.

Surface Emissivity in the Longwave

The .surf file is used for the surface albedo in both the SW and LW regions (for LW just set an albedo = 1 – emissivity). The documentation is a bit woolly on this... Note that in UM spectral files, emissivity is set in the spectral file.