program cam_dart_obs_preprocessor

Overview

This program provides a way to modifiy the incoming observation stream before running filter for the CAM model. Currently runs with the CAM-FV variant. It uses the CAM model_mod namelist to select the CAM level above which to remove observations. The output obs_seq file contains all observations below that level and none above.

This program could be extended to superob dense obs, adjust obs error values near the surface, or any other desired changes to the incoming observation stream.


Usage

Set the input and output obs_seq filenames in the namelist and run.


Namelist

This namelist is read from the file input.nml. Namelists start with an ampersand ‘&’ and terminate with a slash ‘/’. Character strings that contain a ‘/’ must be enclosed in quotes to prevent them from prematurely terminating the namelist.

&cam_dart_obs_preprocessor_nml
   filename_in  = 'obs_seq.out'
   filename_out = 'obs_seq.nohighobs'
   verbose      = .true.
   calendar     = 'Gregorian'
   print_every  = 5000
   /

Items in this namelist set the input and output files.

Item

Type

Description

filename_in

character(len=256)

Observation sequence file to read

filename_out

character(len=256)

Observation sequence file to create and write. If this file exists it will be overwritten.

verbose

logical

If true, write more debugging/status information.

calendar

character(len=32)

The string name of a valid DART calendar type. (See the MODULE time_manager_mod document for a list of valid types.) The setting here does not change what is written to the output file; it only changes how the date information is printed to the screen in the informational messages.

print_every

integer

If set to a positive integer, print a status message each time after processing that number of observations.


Discussion

See the documentation in the obs_kind and obs_def modules for things you can query about an observation, and how to set (overwrite) existing values.


Building

This program will be built when models/cam-fv/work/quickbuild.sh is run.

The preprocess program must be built and run first to define what set of observation types will be supported. See the PROGRAM preprocess for more details on how to define the list and run it. The &preprocess_nml namelist in the input.nml file must contain files with definitions for the combined set of all observation types which will be encountered over all input obs_seq files.

If you have observation types which are not part of the default list in the &preprocess_nml namelist, add them to the input.nml file and then run quickbuild.sh.

Files

Filename

Purpose

input.nml

to read the &cam_dart_obs_preprocess namelist

caminput.nml

(or the name in model_mod_nml:cam_template_filename)

File required by static_init_model to run the program.

cam_phis.nc

(or the name inmodel_mod_nml:cam_phis_filename)

File required by static_init_model to run the program.


References

  1. none

Error codes and conditions

Routine

Message

Comment

cam_obs_dart_preprocess

No obs in input sequence file

Number of reported obs is 0a

cam_obs_dart_preprocess

no first observation in {file}

Unable to find the first observation in the filea

cam_obs_dart_preprocess

No obs will be written to {file}

All obs were excluded; file_out will not be writtena


Future plans

none