INTERFACE / PUBLIC COMPONENTS / FILES / REFERENCES / ERRORS / BUGS / PLANS / PRIVATE COMPONENTS

MODULE obs_def_radar_mod

Contact: Jeff Anderson
Reviewers:  
Revision: $Revision: 1.1 $
Release Name: $Name: post_iceland $
Change Date: $Date: 2005/09/28 22:13:07 $
Change history: see CVS log

OVERVIEW

Provides subroutines to calculate radar radial velocity and reflectivity from model variables.





OTHER MODULES USED

types_mod
utilities_mod
location_mod (most likely threed_sphere)
assim_model_mod
obs_kind_mod



PUBLIC INTERFACE

use obs_def_radar_mod, only : write_rad_vel
 read_rad_vel
 set_rad_vel
 interactive_rad_vel
 get_expected_rad_vel
 get_expected_rad_ref




PUBLIC COMPONENTS



call write_rad_vel(key, ifile[, fform])
 integer,                    intent(in) :: key
 integer,                    intent(in) :: ifile
 character(len=*), optional, intent(in) :: fform

Description

Writes the obs definition part required for radial velocity.

key    Unique identifier associated to this radial velocity observation
ifile    File unit open to output file
fform    File format specifier: FORMATTED or UNFORMATTED; default FORMATTED


call read_rad_vel(key, ifile[, fform])
 integer,                    intent(in) :: key
 integer,                    intent(in) :: ifile
 character(len=*), optional, intent(in) :: fform

Description

Read companion of write_rad_vel.

key    Unique identifier associated to this radial velocity observation
ifile    File unit open to output file
fform    File format specifier: FORMATTED or UNFORMATTED; default FORMATTED


call set_rad_vel(key, location, orientation)
 integer,             intent(in) :: key
 type(location_type), intent(in) :: location
 real(r8),            intent(in) :: orientation
 

Description

Set the radar location and the orientation of the radar beam at the observation location in the private arrays of the module.

key    Unique identifier associated to this radial velocity observation
location    Radar location
orientation    Orientation of the radar beam at the observation location


call interactive_rad_vel(key)
 integer, intent(in) :: key
 

Description

Initializes the specialized part of a radial velocity observation from information provided interactively by the user. Not yet implemented.

key    Unique identifier associated to this radial velocity observation


call get_expected_rad_vel(state_vector, location, key, vr, istatus)
 real(r8),            intent(in)  :: state_vector(:)
 type(location_type), intent(in)  :: location
 integer,             intent(in)  :: key
 real(r8),            intent(out) :: vr
 integer,             intent(out) :: istatus
 

Description

Calculates the radial velocity (m/s).

state_vector    A one dimensional representation of the model state vector
location    Location of this obs
key    Unique identifier associated to this radial velocity observation
vr    The returned radial velocity value
istatus    Returned integer describing problems with applying forward operator


call get_expected_rad_ref(state_vector, location, ref, istatus)
 real(r8),            intent(in)  :: state_vector(:)
 type(location_type), intent(in)  :: location
 real(r8),            intent(out) :: ref
 integer,             intent(out) :: istatus
 

Description

Calculates the radar reflectivity (dBZ), where Z (mm^6 m^-3).

state_vector    A one dimensional representation of the model state vector
location    Location of this obs
vr    The returned radar reflectivity value
istatus    Returned integer describing problems with applying forward operator




PRIVATE COMPONENTS

 get_reflectivity
 write_orientation
 read_orientation


call get_reflectivity(qr, qg, qs, rho, temp, ref)
 real(r8), intent(in)  :: qr
 real(r8), intent(in)  :: qg
 real(r8), intent(in)  :: qs
 real(r8), intent(in)  :: rho
 real(r8), intent(in)  :: temp
 real(r8), intent(out) :: ref
 

Description

Calculates the radar reflectivity Z (mm^6 m^-3).

qr    Rain water content (kg kg^-1)
qg    Graupel/hail content (kg kg^-1)
qs    Snow content (kg kg^-1)
rho    Air density (kg m^-3)
temp    Air temperature (K)
ref    The returned radar reflectivity value


call write_orientation(ifile, orientation[, fform])
 integer,                    intent(in) :: ifile
 real(r8),                   intent(in) :: orientation(3)
 character(len=*), optional, intent(in) :: fform

Description

Writes the orientation required for radial velocity.

ifile    File unit open to output file
orientation    Three components of the velocity orientation
fform    File format specifier: FORMATTED or UNFORMATTED; default FORMATTED


orientation = read_orientation(ifile[, fform])
 integer,                    intent(in) :: ifile
 character(len=*), optional, intent(in) :: fform

Description

Reads orientation from file that was written by write_orientation.

ifile    File unit open to output file
fform    File format specifier: FORMATTED or UNFORMATTED; default FORMATTED




FILES




REFERENCES


ERROR CODES and CONDITIONS

RoutineMessageComment
read_rad_vel Expected location header "platform" in input file The format of the input file is not consistent.
read_rad_vel
set_rad_vel
'key (',key,') exceed max_rad_vel_obs (',max_rad_vel_obs,')' The number of radial velocity observations exceeds the array size set in the module. The module has to be edited and recompiled.
read_orientation Expected orientation header "dir3d" in input file The format of the input file is not consistent.



KNOWN BUGS




FUTURE PLANS