From nancy at ucar.edu Wed Jan 6 13:41:50 2010 From: nancy at ucar.edu (nancy at ucar.edu) Date: Wed, 06 Jan 2010 13:41:50 -0700 Subject: [Dart-dev] [4210] DART/trunk/models: Huge overhaul to conform to HTML spec and to provide Message-ID: Revision: 4210 Author: thoar Date: 2010-01-06 13:41:50 -0700 (Wed, 06 Jan 2010) Log Message: ----------- Huge overhaul to conform to HTML spec and to provide new terms of use. This highlights some inconsistencies in variable names of our required interfaces. Must fix that in the not-too-distant future. Modified Paths: -------------- DART/trunk/models/MITgcm_ocean/model_mod.html DART/trunk/models/PBL_1d/model_mod.html DART/trunk/models/POP/model_mod.html DART/trunk/models/cam/model_mod.html DART/trunk/models/coamps/model_mod.html DART/trunk/models/forced_lorenz_96/model_mod.html DART/trunk/models/ikeda/model_mod.html DART/trunk/models/lorenz_04/model_mod.html DART/trunk/models/lorenz_63/model_mod.html DART/trunk/models/lorenz_84/model_mod.html DART/trunk/models/lorenz_96/model_mod.html DART/trunk/models/model_mod.html DART/trunk/models/pe2lyr/model_mod.html DART/trunk/models/simple_advection/model_mod.html DART/trunk/models/wrf/model_mod.html Property Changed: ---------------- DART/trunk/models/MITgcm_ocean/model_mod.html -------------- next part -------------- Modified: DART/trunk/models/MITgcm_ocean/model_mod.html =================================================================== --- DART/trunk/models/MITgcm_ocean/model_mod.html 2009-12-24 23:07:40 UTC (rev 4209) +++ DART/trunk/models/MITgcm_ocean/model_mod.html 2010-01-06 20:41:50 UTC (rev 4210) @@ -1,70 +1,29 @@ + module MITgcm_ocean model_mod - + - + -
-INTERFACE / -PUBLIC COMPONENTS / +
+
+INTERFACES / NAMELIST / FILES / REFERENCES / ERRORS / -BUGS / PLANS / -PRIVATE COMPONENTS -
+PRIVATE COMPONENTS / +TERMS OF USE + +
- -

MODULE MITgcm_ocean

- - - - - - - -
Contact: Tim Hoar
Revision: $Revision$
Source: $URL$
Change Date: $Date$
Change history: try "svn log" or "svn diff"
+

$Id$

-

- A note about documentation style. Optional arguments are enclosed in - brackets [like this]. -

- - - - -
-

OVERVIEW

The MIT ocean GCM version 'checkpoint59a' is the foundation of this directory. It was modified by Ibrahim Hoteit @@ -130,10 +89,10 @@ trans_sv_pv.f90 converts the DART output into snapshot files to be used as ocean model input datasets (specified in - data&PARM05); creates + data&PARM05); creates a new data namelist file (data.DART) containing the correct - &#PARM03;startTime,endTime values to advance + &PARM03;startTime,endTime values to advance the ocean model the expected amount; and creates a new data.cal namelist file (data.cal.DART) containing the calendar information. @@ -146,9 +105,9 @@

The data assimilation period is controlled in the - input.nml&model_nml + input.nml&model_nml namelist. In combination with the ocean model dynamics timestep - data&PARM03:deltaTClock + data&PARM03:deltaTClock this determines the amount of time the model will advance for each assimilation cycle.

@@ -199,9 +158,9 @@

Controlling the model advances

-

+

The assimilation period is specified by two namelist parameters - in the input.nml&model_nml namelist: + in the input.nml&model_nml namelist: assimilation_period_days and assimilation_period_seconds. Normally, all observations within (+/-) HALF of the total assimilation @@ -209,7 +168,7 @@

The time of the initial conditions is specified by two namelist parameters - in the input.nml&model_nml namelist: + in the input.nml&model_nml namelist: init_time_days and init_time_seconds; depending on the settings of these parameters, the times may or may not come directly from the DART initial @@ -217,19 +176,19 @@

The ocean model MUST always start from the input datasets defined - in the data&PARM05 namelist. + in the data&PARM05 namelist. Apparently, this requires - data&PARM03:startTime to be 0.0. + data&PARM03:startTime to be 0.0. One of the DART support routines (trans_sv_pv) converts the DART state vector to the files used in - data&PARM05 and creates new - data.cal&CAL_NML and - data&PARM03 namelists with + data&PARM05 and creates new + data.cal&CAL_NML and + data&PARM03 namelists with values appropriate to advance the model to the desired time.

The ocean model then - advances till data&PARM03:endTime + advances till data&PARM03:endTime and writes out snapshot files. trans_pv_sv converts the snapshot files to a DART-compatible file which is ingested by filter. filter also reads @@ -238,21 +197,23 @@ set of restart files, one for each ensemble member. filter then waits for each instance of the ocean model (one instance for each ensemble member) to advance to - data&PARM03:endTime. + data&PARM03:endTime. The whole process repeats until 1) there are no more observations to assimilate (i.e. the observation sequence file is exhausted) or 2) the time specified by - input.nml&filter_nml:last_obs_days,last_obs_seconds + input.nml&filter_nml:last_obs_days,last_obs_seconds has been reached. -

+


Getting Started

+

I always like running something akin to a 'perfect model' experiment to start. Since I have not come up with a good way to perturb a single model state to generate an ensemble, here's the next best thing. Please keep in mind that the details for running each program are covered in their own documentation. +

  1. create a set of initial conditions for DART as described in @@ -276,7 +237,10 @@ filter
+

A perfectly sensible approach to get to know the system would be to try to +

+
  1. assimilate data for the first assimilation period and stop. Do not advance the model at all. The filter namelist can control all of this and you do @@ -289,6 +253,7 @@

    Exploring the Output

    +

    Is pretty much like any other model. The netCDF files have the model prognostic variables before and after the assimilation. There are Matlab® scripts for perusing the netCDF files in the DART/matlab @@ -300,14 +265,14 @@ As always, there are some model-specific item you should know about in DART/models/MITgcm_ocean/matlab, and DART/models/MITgcm_ocean/shell_scripts. +

    -

    - - -


    + +

    OTHER MODULES USED

    +
     types_mod
     time_manager_mod
    @@ -319,10 +284,16 @@
     
    + + + + + + -


    -

    INTERFACES USED

    +
    +

    PUBLIC INTERFACES

    Only a select number of interfaces used are discussed here. @@ -335,8 +306,6 @@  set_location -

    NOTES

    -

    The ocean model namelists data, and data.cal MUST be @@ -346,16 +315,6 @@ the current time of the model output.

    - - - - - - - -


    -

    PUBLIC COMPONENTS PROVIDED

    - @@ -394,51 +353,64 @@
    Required Interface Routines
    use model_mod, only :
     write_data_namelistfile
    -

    NOTES

    -

    -Ocean model namelist interfaces &PARM03, -&PARM04, and -&PARM04 are read from +Ocean model namelist interfaces &PARM03, +&PARM04, and +&PARM04 are read from file data. -Ocean model namelist interface &CAL_NML, +Ocean model namelist interface &CAL_NML, is read from file data.cal.

    - +

    + A note about documentation style. + Optional arguments are enclosed in brackets + [like this]. +

    + + -

    -
    - model_size = get_model_size( ) +
    +
    +model_size = get_model_size( )
    -integer                               ::  get_model_size 
    +integer :: get_model_size
     
    -
    -

    Description

    +
    +

    -Returns the length of the model state vector as an integer. -This includes all nested domains. +Returns the length of the model state vector. +Required.

    + + + + + + +
    model_sizeThe length of the model state vector.
    +
    +
    - + -

    -
    -call adv_1step(x, time) +
    +
    +call adv_1step(x, time)
    -real(r8), dimension(:),   intent(inout) ::  x 
    -type(time_type),          intent(in)    ::  time 
    +real(r8), dimension(:), intent(inout) :: x
    +type(time_type),        intent(in)    :: time
     
    -
    -

    Description

    +
    +

    adv_1step @@ -446,24 +418,36 @@ Advancing the model is done through the advance_model script. This is a NULL_INTERFACE, provided only for compatibility with the DART requirements.

    + + + + + + + + + +
    xState vector of length model_size.
    time   Specifies time of the initial model state.
    +
    +
    - + -

    -
    -call get_state_meta_data (index_in, location, - [, var_type] ) +
    +
    +call get_state_meta_data (index_in, location, + [, var_type] )
    -integer,                  intent(in)    ::  index_in 
    -type(location_type),      intent(out)   ::  location 
    -integer, optional,        intent(out)   ::  var_type 
    +integer,             intent(in)  :: index_in
    +type(location_type), intent(out) :: location
    +integer, optional,   intent(out) ::  var_type 
     
    -
    -

    Description

    +
    +

    get_state_meta_data @@ -480,10 +464,10 @@ - - + + - +
    index_inIndex into the long state vector.
    index_in   Index of state vector element about which information is requested.
    location
    location Returns the 3D location of the indexed state variable. The location_ type comes from DART/location/threed_sphere/location_mod.f90. @@ -500,36 +484,34 @@
    -

    Notes

    -

    The list of supported variables in DART/obs_kind/obs_kind_mod.f90 is created by preprocess using the entries in -input.nml[&preprocess_nml, &obs_kind_nml], +input.nml[&preprocess_nml, &obs_kind_nml], DEFAULT_obs_kin_mod.F90 and obs_def_MITgcm_ocean_mod.f90.

    +
    +
    + - - -

    -
    - call model_interpolate(x, location, obs_type, interp_val, -istatus) +
    +
    +call model_interpolate(x, location, itype, obs_val, istatus)
    -real(r8), dimension(:),   intent(in)  ::  x 
    -type(location_type),      intent(in)  ::  location 
    -integer,                  intent(in)  ::  obs_type 
    -real(r8),                 intent(out) ::  interp_val 
    -integer,                  intent(out) ::  istatus 
    +real(r8), dimension(:), intent(in)  :: x
    +type(location_type),    intent(in)  :: location
    +integer,                intent(in)  :: itype
    +real(r8),               intent(out) :: obs_val
    +integer,                intent(out) :: istatus
     
    -
    -

    Description

    +
    +

    Given a model state, model_interpolate returns the value of @@ -550,39 +532,40 @@ - - + + - + - - + + - - + + - +
    x     Model state vector.
    xA model state vector.
    location
    location    Location to which to interpolate.
    obs_typeInteger indexing which type of observation is desired.
    itype Not used.
    interp_valThe desired observation value at the requested location.
    obs_val The interpolated value from the model.
    istatus
    istatus Integer flag indicating the success of the interpolation.
    success == 0, failure == anything else

    +
    - + -

    -
    - var = get_model_time_step( ) +
    +
    +var = get_model_time_step()
    -type(time_type)                       ::  get_model_time_step 
    +type(time_type) :: get_model_time_step
     
    -
    -

    Description

    +
    +

    get_model_time_step @@ -594,16 +577,15 @@ length are used for the assimilation. In the MITgcm_ocean case, this is set from the namelist values for input.nml&model_nml:assimilation_period_days, assimilation_period_seconds, +class="code">&model_nml:assimilation_period_days, assimilation_period_seconds, after ensuring the forecast length is a multiple of the ocean model dynamical timestep -declared by data&PARM03:deltaTClock. +declared by data&PARM03:deltaTClock.

    - - + +
    varthe assimilation width, the minimum amount of time the model can be advanced, -etc.
    var   Smallest time step of model.
    @@ -611,22 +593,20 @@ Please read the note concerning Controlling the model advances

    +
    +
    + - - - -

    -
    -call static_init_model( ) -
    -
    +
    +
    +call static_init_model()
    -
    -

    Description

    +
    +

    static_init_model @@ -637,27 +617,29 @@ public interface routines.

    The namelists (all mandatory) are:
    -input.nml&model_mod_nml,
    -data.cal&CAL_NML,
    -data&PARM03,
    -data&PARM04, and
    -data&PARM05. +input.nml&model_mod_nml,
    +data.cal&CAL_NML,
    +data&PARM03,
    +data&PARM04, and
    +data&PARM05.

    + + +
    +
    +
    + - - -

    -
    -call end_model( ) -
    -
    +
    +
    +call end_model()
    -
    -

    Description

    +
    +

    end_model @@ -665,23 +647,26 @@ when the model is no longer needed. There are no arguments and no return values. This is required by DART but nothing needs to be done for the MITgcm_ocean model.

    -
    + +
    +
    +
    - + -

    -
    -call init_time(time) +
    +
    +call init_time(time)
    -type(time_type),          intent(out)    ::  time 
    +type(time_type), intent(out) :: time
     
    -
    -

    Description

    +
    +

    init_time @@ -689,31 +674,33 @@ to be used. This is frequently used to spin-up models from rest, but is not meaningfully supported for the MITgcm_ocean model. The only time this routine would get called is if the -input.nml&perfect_model_obs_nml:start_from_restart is .false., which is +input.nml&perfect_model_obs_nml:start_from_restart is .false., which is not supported in the MITgcm_ocean model. +

    -

    - +
    time
    time    the starting time for the model if no initial conditions are to be supplied. As of Oct 2008, this is hardwired to 0.0
    +
    +
    - + -

    -
    -call init_conditions( x ) +
    +
    +call init_conditions(x)
    -real(r8), dimension(:),   intent(out)   ::  x 
    +real(r8), dimension(:), intent(out) :: x
     
    -
    -

    Description

    +
    +

    init_conditions @@ -724,25 +711,29 @@ - +
    x
    x    Model state vector. [default is 0.0 for every element of the state vector]
    +

    +
    - + -

    -
    - ierr = nc_write_model_atts(ncFileId) +
    +
    +ierr = nc_write_model_atts(ncFileID)
    -integer,                              ::  nc_write_model_atts 
    -integer,                  intent(in)  ::  ncFileId 
    -
    +integer :: nc_write_model_atts +integer, intent(in) :: ncFileID + +
    -
    -

    Description

    +
    + +

    nc_write_model_atts writes model-specific attributes to an opened netCDF file: @@ -756,15 +747,14 @@ - - + + - - + +
    ncFileIdInteger file descriptor to opened NetCDF file.
    ncFileID   Integer file descriptor to previously-opened netCDF file.
    ierrReturned error code.
    ierrReturns a 0 for successful completion.
    -

    Note

    nc_write_model_atts is responsible for the model-specific attributes in the following DART-output netCDF files: @@ -772,25 +762,27 @@ Prior_Diag.nc, and Posterior_Diag.nc.

    +
    +
    - + -

    -
    - ierr = nc_write_model_vars(ncFileID, statevec, copyindex, timeindex) +
    +
    +ierr = nc_write_model_vars(ncFileID, statevec, copyindex, timeindex)
    -integer                               ::  nc_write_model_vars 
    -integer,                  intent(in)  ::  ncFileID 
    -real(r8), dimension(:),   intent(in)  ::  statevec 
    -integer,                  intent(in)  ::  copyindex
    -integer,                  intent(in)  ::  timeindex 
    +integer                            :: nc_write_model_vars
    +integer,                intent(in) :: ncFileID
    +real(r8), dimension(:), intent(in) :: statevec
    +integer,                intent(in) :: copyindex
    +integer,                intent(in) :: timeindex
     
    -
    -

    Description

    +
    +

    nc_write_model_vars @@ -799,7 +791,7 @@ include multiple ensemble estimates of the state. Whether the state vector is parsed into prognostic variables (S,T,U,V,Eta) or simply written as a 1D array is controlled by -input.nml&model_mod_nml:output_state_vector. +input.nml&model_mod_nml:output_state_vector. If output_state_vector = .true. the state vector is written as a 1D array (the simplest case, but hard to explore with the diagnostics). If output_state_vector = .false. the state vector is parsed @@ -809,39 +801,41 @@ - - + + - - + + - - + + - - + + - - + +
    ncFileIDInteger file descriptor to opened NetCDF file.
    ncFileIDfile descriptor to previously-opened netCDF file.
    statevecState vector.
    statevecA model state vector.
    copyindex Integer index of copy to be written.
    copyindex    Integer index of copy to be written.
    timeindexInteger index of which time in the file is being written.
    timeindexThe timestep counter for the given state.
    ierrReturned error code. success == 0, failure == -1
    ierrReturns 0 for normal completion.
    +

    +
    - + -

    -
    -call pert_model_state(state, pert_state, interf_provided) +
    +
    +call pert_model_state(state, pert_state, interf_provided)
    -real(r8), dimension(:),   intent(in)    ::  state 
    -real(r8), dimension(:),   intent(out)   ::  pert_state 
    -logical,                  intent(out)   ::  interf_provided 
    +real(r8), dimension(:), intent(in)  :: state
    +real(r8), dimension(:), intent(out) :: pert_state
    +logical,                intent(out) :: interf_provided
     
    -
    -

    Description

    +
    +

    Given a model state, pert_model_state produces a @@ -854,118 +848,134 @@ (interf_provided == .true.).

    At present (Oct 2008) the magnitude of the perturbation is wholly determined by -input.nml&model_mod_nml:model_perturbation_amplitude +input.nml&model_mod_nml:model_perturbation_amplitude and utterly, completely fails. The resulting model states cause a fatal error when being read in by the ocean model - something like +

     *** ERROR *** S/R INI_THETA: theta = 0 identically. 
     If this is intentional you will need to edit ini_theta.F to avoid this safety check
     
    +

    A more robust perturbation mechanism is needed (see, for example this routine in the CAM model_mod.f90). Until then, you can avoid using this routine by using your own ensemble of initial conditions. This is determined by setting -input.nml&filter_nml:start_from_restart = .false. +input.nml&filter_nml:start_from_restart = .false. See also Generating the initial ensemble at the start of this document.

    - + - + - +
    state
    state State vector to be perturbed.
    pert_state
    pert_state The perturbed state vector.
    interf_provided
    interf_provided    Because of the 'wet/dry' issue discussed above, this is always .true., indicating a model-specific perturbation is available.
    +
    +
    + - -

    -
    - call get_close_maxdist_init(gc, maxdist) +
    +
    +call get_close_maxdist_init(gc, maxdist)
    -type(get_close_type), intent(inout) :: gc
    -real(r8),             intent(in)    :: maxdist
    +type(get_close_type), intent(inout) :: gc
    +real(r8),             intent(in)    :: maxdist
     
    -
    -

    Description

    + +
    + +

    Pass-through to the 3-D sphere locations module. See get_close_maxdist_init() for the documentation of this subroutine.

    +
    +
    + - -

    -
    - call get_close_obs_init(gc, num, obs) +
    +
    +call get_close_obs_init(gc, num, obs)
    -type(get_close_type), intent(inout) :: gc
    -integer,              intent(in)    :: num
    -type(location_type),  intent(in)    :: obs(num)
    +type(get_close_type), intent(inout) :: gc
    +integer,              intent(in)    :: num
    +type(location_type),  intent(in)    :: obs(num)
     
    -
    -

    Description

    +
    + +

    Pass-through to the 3-D sphere locations module. See get_close_obs_init() for the documentation of this subroutine.

    +
    +
    - + + -

    -
    - call get_close_obs(gc, base_obs_loc, base_obs_kind, - obs, obs_kind, num_close, close_ind - [, dist]) +
    +
    +call get_close_obs(gc, base_obs_loc, base_obs_kind, + obs, obs_kind, num_close, close_ind + [, dist])
    -type(get_close_type), intent(in)  :: gc
    -type(location_type),  intent(in)  :: base_obs_loc
    -integer,              intent(in)  :: base_obs_kind
    -type(location_type),  intent(in)  :: obs(:)
    -integer,              intent(in)  :: obs_kind(:)
    -integer,              intent(out) :: num_close
    -integer,              intent(out) :: close_ind(:)
    +type(get_close_type), intent(in)  :: gc
    +type(location_type),  intent(in)  :: base_obs_loc
    +integer,              intent(in)  :: base_obs_kind
    +type(location_type),  intent(in)  :: obs(:)
    +integer,              intent(in)  :: obs_kind(:)
    +integer,              intent(out) :: num_close
    +integer,              intent(out) :: close_ind(:)
     real(r8), optional,   intent(out) :: dist(:)
     
    -
    -

    Description

    +
    + +

    Pass-through to the 3-D sphere locations module. See get_close_obs() for the documentation of this subroutine.

    +
    +
    + - -

    -
    - call ens_mean_for_model(ens_mean) +
    +
    +call ens_mean_for_model(ens_mean)
    -real(r8), dimension(:), intent(in)  :: ens_mean
    +real(r8), dimension(:), intent(in) :: ens_mean
     
    -
    -

    Description

    +
    + +

    ens_mean_for_model saves a copy of the ensemble mean to module-local storage. Sometimes @@ -975,10 +985,11 @@ No storage is allocated.

    - +
    ens_mean Ensemble mean state vector
    +



    @@ -990,7 +1001,7 @@ -

    +
     type MIT_meta_type
    @@ -1005,8 +1016,8 @@
     
    -
    -

    Description

    +
    +

    MIT_meta_type is a derived type used to codify @@ -1037,12 +1048,14 @@ of the snapshot, you must multiply the timeStepNumber by the amount of time in each timestep and add the start time. +

    +
    - + -

    +
    metadata = read_meta(fbase [, vartype])
    @@ -1052,8 +1065,8 @@
     
    -
    @@ Diff output truncated at 40000 characters. @@ From nancy at ucar.edu Wed Jan 6 13:44:49 2010 From: nancy at ucar.edu (nancy at ucar.edu) Date: Wed, 06 Jan 2010 13:44:49 -0700 Subject: [Dart-dev] [4211] DART/trunk/models/9var/model_mod.html: Huge overhaul to conform to HTML spec and to provide Message-ID: Revision: 4211 Author: thoar Date: 2010-01-06 13:44:48 -0700 (Wed, 06 Jan 2010) Log Message: ----------- Huge overhaul to conform to HTML spec and to provide new terms of use. This highlights some inconsistencies in variable names of our required interfaces. Must fix that in the not-too-distant future. Modified Paths: -------------- DART/trunk/models/9var/model_mod.html -------------- next part -------------- Modified: DART/trunk/models/9var/model_mod.html =================================================================== --- DART/trunk/models/9var/model_mod.html 2010-01-06 20:41:50 UTC (rev 4210) +++ DART/trunk/models/9var/model_mod.html 2010-01-06 20:44:48 UTC (rev 4211) @@ -1,67 +1,29 @@ + module model_mod (9-variable) - + - + - - - -

    MODULE model_mod (9-variable)

    - - - - - - - -
    Contact: Jeff Anderson
    Revision: $Revision$
    Source: $URL$
    Change Date: $Date$
    Change history: try "svn log" or "svn diff"
    +

    $Id$

    - - - -
    -

    OVERVIEW

    -

    DART interface module for the 9-variable model. The 17 public interfaces are standardized for all DART compliant models. These interfaces allow @@ -69,18 +31,17 @@ this state, find state variables that are close to a given location, and do spatial interpolation for model state variables. The distinctive part of the model interfaces is the namelist. +

    +This model provides interesting transient off-attractor behavior +that is something like gravity waves.

    -

    -This model provides -interesting transient off-attractor behavior that is something like -gravity waves. -

    - -


    + +

    OTHER MODULES USED

    +
     types_mod
     time_manager_mod
    @@ -89,81 +50,94 @@
     
    - + + + + + + -


    -

    PUBLIC INTERFACE

    +
    +

    PUBLIC INTERFACES

    - - - - - - - - - - - - + + + + + + + + + + + +
    use model_mod, only : get_model_size
     adv_1step
     get_state_meta_data
     model_interpolate
     get_model_time_step
     end_model
     static_init_model
     init_time
     init_conditions
     nc_write_model_atts
     nc_write_model_vars
     pert_model_state
    get_model_size
     adv_1step
     get_state_meta_data
     model_interpolate
     get_model_time_step
     static_init_model
     end_model
     init_time
     init_conditions
     nc_write_model_atts
     nc_write_model_vars
     pert_model_state
     get_close_maxdist_init
     get_close_obs_init
     get_close_obs
     ens_mean_for_model
    -

    NOTES

    Optional namelist interface - &model_mod_nml +&model_nml may be read from file input.nml. +The details of the namelist are always model-specific +(there are no generic namelist values).

    - - - - - - - - -


    -

    PUBLIC COMPONENTS

    + A note about documentation style. + Optional arguments are enclosed in brackets + [like this].

    - + - -


    + +
    - var = get_model_size( ) +model_size = get_model_size( )
    -integer                               ::  get_model_size 
    -
    +integer :: get_model_size + +
    -

    Description

    +
    +

    -Returns the length of the model state vector, 9. +Returns the length of the model state vector. +Required.

    + - + + - -


    +
    model_sizeThe length of the model state vector.
    + +
    +
    + + + + +
    call adv_1step(x, time)
    -real(r8), dimension(:),   intent(inout) ::  x 
    -type(time_type),          intent(in)    ::  time 
    -
    +real(r8), dimension(:), intent(inout) :: x +type(time_type), intent(in) :: time + +
    -

    Description

    +
    +

    Advances the model for a single time step. @@ -176,26 +150,30 @@ x State vector of length model_size. -time - Gives time of the initial model state. +time    + Specifies time of the initial model state. +

    +
    - + - -


    + +
    call get_state_meta_data (index_in, location, - [,var_type] ) + [, var_type] )
    -integer,                  intent(in)    ::  index_in 
    -type(location_type),      intent(out)   ::  location 
    -integer, optional,        intent(out)   ::  var_type 
    -
    +integer, intent(in) :: index_in +type(location_type), intent(out) :: location +integer, optional, intent(out) :: var_type + +
    -

    Description

    +
    +

    Returns metadata about a given state vector element, @@ -209,35 +187,38 @@ - - + + - + - +
    index_inIndex into the long state vector.
    index_in   Index of state vector element about which information is requested.
    locationReturns location of indexed state variable.
    The location of state variable element.
    var_typeReturns the type (always 1) of the indexed state variable as an optional argument.
    Returns the type (always 1) of the indexed state + variable as an optional argument.
    -

    Notes

    +
    +
    - + - -


    + +
    call model_interpolate(x, location, itype, obs_val, istatus)
    -real(r8), dimension(:),   intent(in)  ::  x 
    -type(location_type),      intent(in)  ::  location 
    -integer,                  intent(in)  ::  itype 
    -real(r8)                              ::  var 
    -real(r8),                 intent(out) ::  obs_val 
    -integer,                  intent(out) ::  istatus 
    -
    +real(r8), dimension(:), intent(in) :: x +type(location_type), intent(in) :: location +integer, intent(in) :: itype +real(r8), intent(out) :: obs_val +integer, intent(out) :: istatus + +
    -

    Description

    +
    +

    Given model state, returns the value interpolated to a given @@ -249,10 +230,10 @@ - - + + - + @@ -266,100 +247,127 @@
    x     Model state vector.
    xA model state vector.
    location
    location    Location to which to interpolate.
    itype
    -

    Notes

    +
    +
    + - - - -


    + +
    - var = get_model_time_step( ) +var = get_model_time_step()
    -type(time_type)                       ::  get_model_time_step 
    -
    +type(time_type) :: get_model_time_step + +
    -

    Description

    +
    +

    -Returns the models base time step as a time_type. +Returns the time step (forecast length) of the model; The time step defaults to 1 hour but is settable by namelist.

    -

    Notes

    + + + - +
    var   Smallest time step of model.
    - -


    +
    +
    + + + + +
    -call end_model( ) -
    -
    +call static_init_model() +
    -

    Description

    +
    +

    -A stub since 9-variable requires no clean up. +Used for runtime initialization of model; +reads namelist, initializes model parameters, etc. +This is the first call made to the model by any +DART-compliant assimilation routine.

    -

    Notes

    + +
    +
    +
    - + - -


    + +
    -call static_init_model( ) -
    -
    +call end_model() +
    -

    Description

    +
    +

    -Used for runtime initialization of model; -reads namelist, initializes model parameters, etc. This is the first call -made to the model by any DART compliant assimilation routine. +A stub since 9-variable requires no clean up.

    -

    Notes

    + +
    +
    +
    - + - -


    + +
    -call init_time(time) +call init_time(time)
    -type(time_type),          intent(out)    ::  time 
    -
    +type(time_type), intent(out) :: time + +
    -

    Description

    +
    +

    Returns the time at which the model will start if no input initial conditions are -to be used. This is used to spin-up the model from rest. +to be used. This is used to spin-up the model from rest. Sets time to 0 in this model.

    -

    Notes

    + + + - +
    time   Initial model time.
    - -


    +
    +
    + + + + +
    -call init_conditions( x ) +call init_conditions(x)
    -real(r8), dimension(:),   intent(out)   ::  x 
    -
    +real(r8), dimension(:), intent(out) :: x + +
    -

    Description

    +
    +

    Returns default initial conditions for the model; @@ -369,110 +377,121 @@ - - + +
    xModel state vector.
    x   Initial conditions for state vector.
    -

    Notes

    +
    +
    + - - - -


    + +
    - ierr = nc_write_model_atts(ncFileId) +ierr = nc_write_model_atts(ncFileID)
    -integer,                              ::  nc_write_model_atts 
    -integer,                  intent(in)  ::  ncFileId 
    -
    +integer :: nc_write_model_atts +integer, intent(in) :: ncFileID + +
    -

    Description

    +
    +

    -Function to write model specific attributes to a netCDF file. At present, DART -is using the NetCDF format to output diagnostic information. This is not a -requirement, and models could choose to provide output in other formats. -This function writes the metadata associated with the model to a NetCDF -file opened to a file identified by ncFileID. +This routine must write the model-specific attributes to a netCDF file. +This includes coordinate variables and any metadata, but NOT +the model state vector. We do have to allocate SPACE for the model +state vector, but that variable gets filled as the model advances. +models/template/model_mod.f90 contains code that +can be used for any model as-is. The generic code prepares a +file which will have the state vector written as a single 1-D array +of data. This routine can be modified to save the data in form +more closely related to the actual grid shape and variable type, +and could also be extended to write additional attributes if desired. +This routine is required for all models.

    - - + + - +
    ncFileId     Integer file descriptor opened to NetCDF file.
    ncFileID   Integer file descriptor to previously-opened netCDF file.
    ierrReturned error code.
    Returns a 0 for successful completion.
    -

    Notes

    +
    +
    + - - - - -


    + +
    - ierr = nc_write_model_vars(ncFileID, statevec, copyindex, timeindex) +ierr = nc_write_model_vars(ncFileID, statevec, copyindex, timeindex)
    -integer                               ::  nc_write_model_vars 
    -integer,                  intent(in)  ::  ncFileID 
    -real(r8), dimension(:),   intent(in)  ::  statevec 
    -integer,                  intent(in)  ::  copyindex
    -integer,                  intent(in)  ::  timeindex 
    -
    +integer :: nc_write_model_vars +integer, intent(in) :: ncFileID +real(r8), dimension(:), intent(in) :: statevec +integer, intent(in) :: copyindex +integer, intent(in) :: timeindex + +
    -

    Description

    +
    +

    -Writes a copy of the state variables to a NetCDF file. Multiple copies of the -state for a given time are supported, allowing, for instance, a single file to -include multiple ensemble estimates of the state. +Writes a copy of the state variables to a netCDF file. Multiple copies +of the state for a given time are supported, allowing, for instance, +a single file to include multiple ensemble estimates of the state.

    - - + + - + - - + + - + - +
    ncFileID     Integer file descriptor opened to NetCDF file.
    ncFileIDfile descriptor to previously-opened netCDF file.
    statevecState vector.
    A model state vector.
    copyindex Integer index to which copy is to be written.
    copyindex    Integer index of copy to be written.
    timeindexInteger index of which time in the file is being written.
    The timestep counter for the given state.
    ierrReturned error code.
    Returns 0 for normal completion.
    -

    Notes

    +
    +
    + - - - -


    + +
    call pert_model_state(state, pert_state, interf_provided)
    -real(r8), dimension(:),   intent(in)    ::  state 
    -real(r8), dimension(:),   intent(out)   ::  pert_state 
    -logical,                  intent(out)   ::  interf_provided 
    -
    +real(r8), dimension(:), intent(in) :: state +real(r8), dimension(:), intent(out) :: pert_state +logical, intent(out) :: interf_provided + +
    -

    Description

    +
    +

    -Given a model state, produces a perturbed model state. -9-variable does not implement an interface for this +Given a model state, produces a perturbed model state. +This particular model does not implement an interface for this and so returns .false. for interf_provided.

    @@ -482,111 +501,146 @@ State vector to be perturbed. pert_state - Perturbed state vector: NOT returned. + Perturbed state vector: NOT returned. -interf_provided +interf_provided    Returned false; interface is not implemented. -

    Notes

    +
    +
    - - - -


    -
    - call get_close_maxdist_init(gc, maxdist) -
    - type(get_close_type), intent(inout) :: gc
    - real(r8),             intent(in)    :: maxdist
    - 
    -

    Description

    -

    + + + +
    +

    +call get_close_maxdist_init(gc, maxdist) +
    +type(get_close_type), intent(inout) :: gc
    +real(r8),             intent(in)    :: maxdist
    +
    +
    + +
    + + +

    Pass-through to the 1-D locations module. See get_close_maxdist_init() for the documentation of this subroutine. +

    - - - -


    -
    - call get_close_obs_init(gc, num, obs) -
    - type(get_close_type), intent(inout) :: gc
    - integer,              intent(in)    :: num
    - type(location_type),  intent(in)    :: obs(num)
    - 
    -

    Description

    -

    +

    +
    + + + + +
    +
    +call get_close_obs_init(gc, num, obs) +
    +type(get_close_type), intent(inout) :: gc
    +integer,              intent(in)    :: num
    +type(location_type),  intent(in)    :: obs(num)
    +
    +
    + +
    + + +

    Pass-through to the 1-D locations module. See get_close_obs_init() for the documentation of this subroutine. +

    - - - -


    -
    - call get_close_obs(gc, base_obs_loc, base_obs_kind, - obs, obs_kind, num_close, close_ind - [, dist]) -
    - type(get_close_type), intent(in)  :: gc
    - type(location_type),  intent(in)  :: base_obs_loc
    - integer,              intent(in)  :: base_obs_kind
    - type(location_type),  intent(in)  :: obs(:)
    - integer,              intent(in)  :: obs_kind(:)
    - integer,              intent(out) :: num_close
    - integer,              intent(out) :: close_ind(:)
    - real(r8), optional,   intent(out) :: dist(:)
    - 
    -

    Description

    -

    +

    +
    + + + + +
    +
    +call get_close_obs(gc, base_obs_loc, base_obs_kind, + obs, obs_kind, num_close, close_ind + [, dist]) +
    +type(get_close_type), intent(in)  :: gc
    +type(location_type),  intent(in)  :: base_obs_loc
    +integer,              intent(in)  :: base_obs_kind
    +type(location_type),  intent(in)  :: obs(:)
    +integer,              intent(in)  :: obs_kind(:)
    +integer,              intent(out) :: num_close
    +integer,              intent(out) :: close_ind(:)
    +real(r8), optional,   intent(out) :: dist(:)
    +
    +
    + +
    + + +

    Pass-through to the 1-D locations module. See get_close_obs() for the documentation of this subroutine. +

    - - - -


    -
    - call ens_mean_for_model(ens_mean) -
    - real(r8), dimension(:), intent(in)  :: ens_mean
    - 
    -

    Description

    -

    +

    +
    + + + + +
    +
    +call ens_mean_for_model(ens_mean) +
    +real(r8), dimension(:), intent(in) :: ens_mean
    +
    +
    + +
    + + +

    A NULL INTERFACE in this model. -

    - - - -
    ens_mean    Ensemble mean state vector
    -
    +

    + - - + + +
    ens_mean   State vector containing the ensemble mean.
    + +
    +
    + + + -


    +

    NAMELIST

    -

    We adhere to the F90 standard of starting a namelist with an ampersand -'&' and terminating with a slash '/'. +

    We adhere to the F90 standard of starting a namelist with an ampersand +'&' and terminating with a slash '/' for all our namelist input. +The declarations have a different syntax, naturally. +

    -namelist / model_nml /  &
    +namelist / model_nml /  &
         g, delta_t, time_step_days, time_step_seconds
     
    -

    -

    Discussion

    +
    + -

    This namelist is read in a file called input.nml +

    +This namelist is read in a file called input.nml

    @@ -595,88 +649,136 @@ - + - - + + - - + + - - + +
    Description
    g real(r8) Model parameter, see comp_dt in code for equations. Default: 8.
    Model parameter, see comp_dt in code for equations. + Default: 8.
    delta_t real(r8) Non-dimensional timestep, default 1/12. This is mapped to -the dimensional timestep specified by time_step_days and time_step_seconds.
    real(r8) Non-dimensional timestep, default 1/12. + This is mapped to the dimensional timestep specified by + time_step_days and time_step_seconds.
    time_step_days real(r8) Number of days for dimensional timestep, mapped to delta_t. Default: 0.
    real(r8) Number of days for dimensional timestep, + mapped to delta_t. Default: 0.
    time_step_seconds real(r8) Number of seconds for dimensional timestep, mapped to delta_t. Default: 3600
    real(r8) Number of seconds for dimensional timestep, + mapped to delta_t. Default: 3600
    +
    +
    + -


    +

    FILES

    -
      -
    • model_mod.nml in input.nml -
    • netCDF output state diagnostics files -
    + + + + + + + + + + + + + +
    filenamepurpose
    input.nmlto read the model_mod namelist
    Prior_Diag.ncthe time-history of the model state before assimilation
    Posterior_Diag.nc the time-history of the model state after assimilation
    dart_log.out [default name]the run-time diagnostic output
    dart_log.nml [default name]the record of all the namelists actually USED - + contains the default values
    + -


    +

    REFERENCES

    +
      +
    1. none
    2. +
    -

    ERROR CODES and CONDITIONS

    -
    - +
    - - - - + + + + + +
    RoutineMessageComment
    - nc_write_model_atts
    - nc_write_model_vars
    -
    Various NetCDF-f90 interface error messagesFrom one of the NetCDF calls in the named routine
    RoutineMessageComment
    nc_write_model_atts
    + nc_write_model_vars
    Various netCDF-f90 interface error messagesFrom one of the netCDF calls in the named routine
    - - - - - -


    KNOWN BUGS

    +none at this time

    - + -


    +

    FUTURE PLANS

    +

    +none at this time

    - + + +
    +

    PRIVATE COMPONENTS

    + +

    +N/A +

    + + + +
    +

    Terms of Use

    + +

    +DART software - Copyright © 2004 - 2010 UCAR.
    +This open source software is provided by UCAR, "as is",
    +without charge, subject to all terms of use at
    + +http://www.image.ucar.edu/DAReS/DART/DART_download +

    + + + + + + + +
    Contact: DART core group
    Revision: $Revision$
    Source: $URL$
    Change Date: $Date$
    Change history:  try "svn log" or "svn diff"
    + + + From nancy at ucar.edu Fri Jan 8 17:16:03 2010 From: nancy at ucar.edu (nancy at ucar.edu) Date: Fri, 08 Jan 2010 17:16:03 -0700 Subject: [Dart-dev] [4213] DART/trunk: Huge overhaul to conform to HTML spec and to provide Message-ID: Revision: 4213 Author: thoar Date: 2010-01-08 17:16:03 -0700 (Fri, 08 Jan 2010) Log Message: ----------- Huge overhaul to conform to HTML spec and to provide new terms of use. Modified Paths: -------------- DART/trunk/assim_model/assim_model_mod.html DART/trunk/assim_tools/assim_tools_mod.html DART/trunk/common/types_mod.html DART/trunk/cov_cutoff/cov_cutoff_mod.html DART/trunk/doc/html/cgd_cam.shtml DART/trunk/doc/html/filter_async_modes.html DART/trunk/doc/html/index.shtml DART/trunk/doc/html/mpi_intro.html DART/trunk/ensemble_manager/ensemble_manager_mod.html DART/trunk/index.html DART/trunk/location/oned/location_mod.html DART/trunk/location/threed_sphere/location_mod.html DART/trunk/models/cam/doc/index.html DART/trunk/models/cam/doc/script_doc.html DART/trunk/models/cam/doc/trans_date_to_dart_instr.html DART/trunk/models/cam/doc/trans_pv_sv_time0_instr.html DART/trunk/mpi_utilities/mpi_utilities_mod.html DART/trunk/ncep_obs/prep_bufr/prep_bufr.html DART/trunk/obs_def/DEFAULT_obs_def_mod.html DART/trunk/obs_def/obs_def_1d_state_mod.html DART/trunk/obs_def/obs_def_dew_point_mod.html DART/trunk/obs_def/obs_def_mod.html DART/trunk/obs_def/obs_def_ocean_mod.html DART/trunk/obs_def/obs_def_radar_mod.html DART/trunk/obs_kind/DEFAULT_obs_kind_mod.html DART/trunk/obs_kind/obs_kind_mod.html DART/trunk/obs_model/obs_model_mod.html DART/trunk/random_nr/random_nr_mod.html DART/trunk/random_seq/random_seq_mod.html DART/trunk/reg_factor/reg_factor_mod.html DART/trunk/smoother/smoother_mod.html DART/trunk/time_manager/schedule_mod.html DART/trunk/time_manager/time_manager_mod.html DART/trunk/utilities/utilities_mod.html Property Changed: ---------------- DART/trunk/obs_def/obs_def_ocean_mod.html -------------- next part -------------- Modified: DART/trunk/assim_model/assim_model_mod.html =================================================================== --- DART/trunk/assim_model/assim_model_mod.html 2010-01-08 17:22:15 UTC (rev 4212) +++ DART/trunk/assim_model/assim_model_mod.html 2010-01-09 00:16:03 UTC (rev 4213) @@ -1,66 +1,29 @@ + module assim_model_mod - + - + - - -

    MODULE assim_model_mod

    - - - - - - - -
    Contact: Jeff Anderson
    Revision: $Revision$
    Source: $URL$
    Change Date: $Date$
    Change history: try "svn log" or "svn diff"
    +

    $Id$

    - - - -
    -

    OVERVIEW

    -

    This module acts as an intermediary between DART compliant models and the filter. At one time the assim_model_type, which combines a @@ -77,8 +40,8 @@ - -



    + +

    OTHER MODULES USED

     types_mod
    @@ -86,88 +49,87 @@
     time_manager_mod
     utilities_mod
     model_mod
    -
     netcdf
     typeSizes (part of netcdf)
     
    + + + + + - -


    -

    PUBLIC INTERFACE

    +
    +

    PUBLIC INTERFACES

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    use assim_model_mod, only :
     adv_1step
     aget_closest_state_time_to
     aget_initial_condition
     aoutput_diagnostics
     aread_state_restart
     assim_model_type
     awrite_state_restart
     close_restart
     copy_assim_model
     end_assim_model
     ens_mean_for_model
     finalize_diag_output
     get_close_maxdist_init
     get_close_obs
     get_close_obs_init
     get_closest_state_time_to
     get_diag_input_copy_meta_data
     get_initial_condition
     get_model_size
     get_model_state_vector
     get_model_time
     get_model_time_step
     get_state_meta_data
     init_assim_model
     init_diag_input
     init_diag_output
     input_diagnostics
     interpolate
     nc_append_time
     nc_get_tindex
     nc_write_calendar_atts
     netcdf_file_type
     open_restart_read
     open_restart_write
     output_diagnostics
     pert_model_state
     read_state_restart
     set_model_state_vector
     set_model_time
     static_init_assim_model
     write_state_restart
     adv_1step
     aget_closest_state_time_to
     aget_initial_condition
     aoutput_diagnostics
     aread_state_restart
     assim_model_type
     awrite_state_restart
     close_restart
     copy_assim_model
     end_assim_model
     ens_mean_for_model
     finalize_diag_output
     get_close_maxdist_init
     get_close_obs
     get_close_obs_init
     get_closest_state_time_to
     get_diag_input_copy_meta_data
     get_initial_condition
     get_model_size
     get_model_state_vector
     get_model_time
     get_model_time_step
     get_state_meta_data
     init_assim_model
     init_diag_input
     init_diag_output
     input_diagnostics
     interpolate
     nc_append_time
     nc_get_tindex
     nc_write_calendar_atts
     netcdf_file_type
     open_restart_read
     open_restart_write
     output_diagnostics
     pert_model_state
     read_state_restart
     set_model_state_vector
     set_model_time
     static_init_assim_model
     write_state_restart

    NOTES

    -Optional namelist interface +Optional namelist interface &assim_model_nml may be read from file input.nml.

    - - - - - +

    + A note about documentation style. + Optional arguments are enclosed in brackets + [like this]. +

    - -


    -

    PUBLIC COMPONENTS

    -
    + - - - -


    -
    +
    +
    +
    +
     type assim_model_type
        private
        real(r8), pointer   :: state_vector(:) 
    @@ -175,9 +137,11 @@
        integer             :: model_size
        integer             :: copyID
     end type assim_model_type
    -
    +
    +
    -

    Description

    +
    +

    This type is used to represent both the state and time of a state @@ -187,20 +151,24 @@ - - - - - - - + + + + + + +
    Component Description
    state_vector A one dimensional representation of the model state vector.
    time The time of the model state.
    model_size Size of the model state vector.
    copyID
    state_vector A one dimensional representation of the model state vector.
    time The time of the model state.
    model_s Size of the model state vector.
    copyID Not used in present implementation.
    - - -



    -
    +
    +
    + + + + +
    +
     type netcdf_file_type
        integer             :: ncid
        integer             :: Ntimes
    @@ -209,9 +177,11 @@
        type(time_type), pointer :: times(:)
        character(len = 80)      :: fname
     end type netcdf_file_type
    -
    + +
    -

    Description

    +
    +

    Basically, we want to keep a local mirror of the unlimited dimension @@ -236,42 +206,48 @@ Netcdf file name. - +

    +
    - -


    + + + +
    call static_init_assim_model() -
    -
    +
    -

    Description

    - +
    +

    Initializes the assim_model class. Must be called before any other assim_model_mod interfaces are used. Also calls the static initialization - for the underlying model. + for the underlying model. There are no arguments.

    -

    Notes

    +
    +
    - + - -


    + +
    ncFileID = init_diag_output(FileName, global_meta_data, - copies_of_field_per_time, meta_data_per_copy [, lagID]) + copies_of_field_per_time, meta_data_per_copy + [, lagID])
     type(netcdf_file_type)          :: init_diag_output 
     character (len = *), intent(in) :: FileName 
     character (len = *), intent(in) :: global_meta_data 
     integer, intent(in)             :: copies_of_field_per_time 
     character (len = *), intent(in) :: meta_data_per_copy(copies_of_field_per_time) 
    -integer, optional, intent(in)   :: lagID 
    -
    +integer, optional, intent(in) :: lagID + +
    -

    Description

    +
    +

    Initializes a netCDF file for output of state space diagnostics. A handle to @@ -285,13 +261,13 @@ This is not an integer unit number, but a derived type containing additional information about the opened file. -FileName     +FileName Name of file to open. global_meta_data Global metadata that describes the contents of this file. -copies_of_field_per_time +copies_of_field_per_time    Number of copies of data to be written at each time. For instance, these could be the prior ensemble members, prior ensemble mean, prior ensemble spread, posterior ensemble members, posterior @@ -300,45 +276,51 @@ meta_data_per_copy Metadata describing each of the copies. -lagID +lagID If using the smoother, which lag number this output is for. -
    +

    +
    - + - -


    + +
    var = get_model_size()
     integer :: get_model_size 
    -
    + +
    -

    Description

    +
    +

    Returns the size of the model state vector. This is a direct pass through to the model_mod.

    -
    +
    +
    - + - -


    + +
    var = get_closest_state_time_to(assim_model, time)
     type(time_type)                     ::  get_closest_state_time_to 
     type(assim_model_type), intent(in)  ::  assim_model 
     type(time_type), intent(in)         ::  time
    -
    + +
    -

    Description

    +
    +

    Returns the closest time that a model is capable of advancing a given state to a @@ -352,7 +334,7 @@ var The closest time to which the model can be advanced is returned. -assim_model     +assim_model     A model state vector and time that might be advanced. time @@ -360,907 +342,1141 @@ -
    +

    +
    - - + - -


    -
    - call aget_initial_condition(time, x) -
    - type(time_type), intent(out) :: time
    - type(r8), intent(out) :: x
    - 
    -

    Description

    -

    - Reads an initial time and state vector from a restart format file - into a real time and real array, which are put into an assim_model_type. -

    - - - - - -
    time    Contains time of input state vector on return
    x    Contains state of input state vector on return
    -
    + +
    +
    + call aget_initial_condition(time, x) +
    +type(time_type), intent(out) :: time
    +type(r8), intent(out) :: x
    +
    +
    - - - -


    -
    - call get_state_meta_data() -
    - 
    -

    Description

    -

    -Pass through to model_mod. See model_mod documentation -for arguments and description. -

    - -
    -
    +
    + - - - - -


    -
    - var = get_model_time(assim_model) -
    - type(time_type)                    :: get_model_time
    - type(assim_model_type), intent(in) :: assim_model
    - 
    -

    Description

    -

    - Returns time from an assim_model type. -

    - - - - - -
    var    Returned time from assim_model
    assim_model    Assim_model type from which to extract time
    -
    +

    +Reads an initial time and state vector from a restart format file +into a real time and real array, which are put into an assim_model_type. +

    - - - -


    -
    - var = get_model_state_vector(assim_model) -
    - real(r8)                           :: get_model_state_vector(model_size)
    - type(assim_model_type), intent(in) :: assim_model
    - 
    -

    Description

    -

    - Returns the state vector component from an assim_model_type. -

    - - - - - -
    var    Returned state vector
    assim_model    Input assim_model_type
    -
    + + + + + +
    time   Contains time of input state vector on return
    xContains state of input state vector on return
    - - - -


    -
    - call copy_assim_model(model_out, model_in) -
    - type(assim_model_type), intent(out) :: model_out
    - type(assim_model_type), intent(in)  :: model_in
    - 
    -

    Description

    -

    +

    +
    + + + + +
    +
    + call get_state_meta_data() +
    + +
    + + +

    +Pass through to model_mod. +See model_mod documentation for arguments and description. +

    + +
    +
    + + + + +
    +
    + var = get_model_time(assim_model) +
    +type(time_type)                    :: get_model_time
    +type(assim_model_type), intent(in) :: assim_model
    +
    +
    + +
    + + +

    +Returns time from an assim_model type. +

    + + + + + + +
    varReturned time from assim_model
    assim_model   Assim_model type from which to extract time
    + +
    +
    + + + + +
    +
    + var = get_model_state_vector(assim_model) +
    +real(r8)                           :: get_model_state_vector(model_size)
    +type(assim_model_type), intent(in) :: assim_model
    +
    +
    + +
    + + +

    +Returns the state vector component from an assim_model_type. +

    + + + + + + +
    varReturned state vector
    assim_model   Input assim_model_type
    + +
    +
    + + + + +
    +
    + call copy_assim_model(model_out, model_in) +
    +type(assim_model_type), intent(out) :: model_out
    +type(assim_model_type), intent(in)  :: model_in
    +
    +
    + +
    + + +

    Copies one assim_model_type to another. -

    - - - - - -
    model_out    Copy.
    model_in    Data to be copied.
    -
    +

    - - - -


    -
    - call interpolate(x, location, loctype, obs_vals, istatus) -
    - real(r8), intent(in)            :: x(:)
    - type(location_type), intent(in) :: location
    - integer, intent(in)             :: loctype
    - real(r8), intent(out)           :: obs_vals
    - integer, intent(out)            :: istatus
    - 
    -

    Description

    -

    + + + + + +
    model_out   Copy.
    model_inData to be copied.
    + +

    +
    + + + + +
    +
    + call interpolate(x, location, loctype, obs_vals, istatus) +
    +real(r8),            intent(in)  :: x(:)
    +type(location_type), intent(in)  :: location
    +integer,             intent(in)  :: loctype
    +real(r8),            intent(out) :: obs_vals
    +integer,             intent(out) :: istatus
    +
    +
    + +
    + + +

    Interpolates a given model state variable type to a location given the model state vector. Nearly direct call to model_interpolate in model_mod. See model_mod for the error return values in istatus. -

    - - - - - - - - - - - -
    x    Model state vector.
    location    Location to which to interpolate.
    loctype    Type of variable to interpolate.
    obs_vals    Returned interpolated value.
    istatus    Returned as 0 if all is well, else various errors.
    -
    +

    - - - -


    -
    - call set_model_time(assim_model, time) -
    - type(assim_model_type), intent(inout) :: assim_model
    - type(time_type), intent(in)           :: time
    - 
    -

    Description

    -

    - Sets the time in an assim_model_type. -

    - - - - - -
    assim_model    Set the time in this assim_model_type.
    time    Set to this time
    -
    + + + + + + + + + + + +
    xModel state vector.
    location   Location to which to interpolate.
    loctypeType of variable to interpolate.
    obs_valsReturned interpolated value.
    istatusReturned as 0 if all is well, else various errors.
    - - - -


    -
    - call set_model_state_vector(assim_model, state) -
    - type(assim_model_type), intent(inout) :: assim_model
    - real(r8), intent(in)                  :: state(:)
    - 
    -

    Description

    -

    - Set the state in an assim_model_type. -

    - - - - - -
    assim_model    Set the state vector in this assim_model_type.
    state    The state vector to be inserted.
    -
    +
    +
    - - - -


    -
    - call write_state_restart(assim_model, funit [, target_time]) -
    - type(assim_model_type), intent(in)    :: assim_model
    - integer, intent(in)                   :: funit
    - type(time_type), optional, intent(in) :: target_time
    - 
    -

    Description

    -

    + + + +
    +

    + call set_model_time(assim_model, time) +
    +type(assim_model_type), intent(inout) :: assim_model
    +type(time_type), intent(in)           :: time
    +
    +
    + + +
    + +

    +Sets the time in an assim_model_type. +

    + + + + + + +
    assim_model   Set the time in this assim_model_type.
    timeSet to this time
    + +
    +
    + + + + +
    +
    + call set_model_state_vector(assim_model, state) +
    +type(assim_model_type), intent(inout) :: assim_model
    +real(r8), intent(in)                  :: state(:)
    +
    +
    + +
    + + +

    +Set the state in an assim_model_type. +

    + + + + + + +
    assim_model   Set the state vector in this assim_model_type.
    stateThe state vector to be inserted.
    + +
    +
    + + + + +
    +
    + call write_state_restart(assim_model, funit +[, target_time]) +
    +type(assim_model_type),    intent(in) :: assim_model
    +integer,                   intent(in) :: funit
    +type(time_type), optional, intent(in) :: target_time
    +
    +
    + +
    + + +

    Writes a restart from an assim_model_type with an optional target_time. -

    - - - - - - - -
    assim_model    Write a restart from this assim_model_type.
    funit    Integer file unit id open for output of restart files.
    target_time    If present, put this target time at the front of the restart file.
    -
    +

    - - - -


    -
    - call read_state_restart(assim_model, funit [, target_time]) -
    - type(assim_model_type), intent(out)    :: assim_model
    - integer, intent(in)                    :: funit
    - type(time_type), optional, intent(out) :: target_time
    - 
    -

    Description

    -

    -Read a state restart file into assim_model_type. Optionally read a prepended -target time. -

    - - - - - - - -
    assim_model    Read the time and state vector from restart into this.
    funit    File id that has been opened for reading restart files.
    target_time    If present, read a target time from the front of the file into this.
    -
    + + + + + + + +
    assim_model   Write a restart from this assim_model_type.
    funitInteger file unit id open for output of restart files.
    target_timeIf present, put this target time at the front of the restart file.
    - - - -


    -
    - call output_diagnostics(ndFileID, state, copy_index) -
    - type(netcdf_file_type), intent(inout) :: ndFileID
    - type(assim_model_type), intent(in)    :: state
    - integer, optional, intent(in)         :: copy_index
    - 
    -

    Description

    -

    +

    +
    + + + + + +
    +
    + call read_state_restart(assim_model, funit +[, target_time]) +
    +type(assim_model_type),    intent(out) :: assim_model
    +integer,                   intent(in)  :: funit
    +type(time_type), optional, intent(out) :: target_time
    +
    +
    + +
    + + +

    +Read a state restart file into assim_model_type. +Optionally read a prepended target time. +

    + + + + + + + + +
    assim_model   Read the time and state vector from restart into this.
    funitFile id that has been opened for reading restart files.
    target_timeIf present, read a target time from the front of the file into this.
    + +
    +
    + + + + +
    +
    + call output_diagnostics(ndFileID, state +[, copy_index]) +
    +type(netcdf_file_type), intent(inout) :: ndFileID
    +type(assim_model_type), intent(in)    :: state
    +integer, optional,      intent(in)    :: copy_index
    +
    +
    + +
    + + +

    Writes one copy of the state time and vector to a netCDF file. -

    - - - - - - - -
    ndFileID    An identifier for a netCDF file
    state    State vector and time
    copy_index    Which copy of state is to be output
    -
    +

    - - - -


    -
    - call end_assim_model() -
    - 
    -

    Description

    -

    -Called to clean-up at end of assim_model use. For now just passes through -to model_mod. -

    - -
    -
    + + + + + + @@ Diff output truncated at 40000 characters. @@ From nancy at ucar.edu Mon Jan 11 09:18:54 2010 From: nancy at ucar.edu (nancy at ucar.edu) Date: Mon, 11 Jan 2010 09:18:54 -0700 Subject: [Dart-dev] [4214] DART/trunk/observations/WOD/wod_to_obs.f90: The converter had been caching the previous obs time within Message-ID: Revision: 4214 Author: nancy Date: 2010-01-11 09:18:54 -0700 (Mon, 11 Jan 2010) Log Message: ----------- The converter had been caching the previous obs time within an individual profile, but using insert without a previous obs for each new profile Since most of the input files are already sorted by time, speed up the convertion by caching the last obs time even between profiles. It gives a huge performance gain, especially as these files get very large. Modified Paths: -------------- DART/trunk/observations/WOD/wod_to_obs.f90 -------------- next part -------------- Modified: DART/trunk/observations/WOD/wod_to_obs.f90 =================================================================== --- DART/trunk/observations/WOD/wod_to_obs.f90 2010-01-09 00:16:03 UTC (rev 4213) +++ DART/trunk/observations/WOD/wod_to_obs.f90 2010-01-11 16:18:54 UTC (rev 4214) @@ -18,7 +18,7 @@ use types_mod, only : r8 use time_manager_mod, only : time_type, set_calendar_type, GREGORIAN, set_time,& increment_time, get_time, set_date, operator(-), & - print_date, operator(+), leap_year + print_date, operator(+), leap_year, operator(>) use utilities_mod, only : initialize_utilities, find_namelist_in_file, & check_namelist_read, nmlfileunit, do_output, & get_next_filename, error_handler, E_ERR, E_MSG, & @@ -106,7 +106,7 @@ integer :: zloc, obs_num, io, iunit, filenum, dummy, i_qc, nc_rc integer :: funit, levels, istdlev, nvar, nsecond, ieof integer :: ip2(0:maxlevel), cast, itype -logical :: file_exist, first_obs, did_obs, from_list = .false. +logical :: file_exist, did_obs, from_list = .false. logical :: have_temp, have_salt real(r8) :: hght_miss, refr_miss, azim_miss, terr, serr, & qc, hghto, refro, azimo, wght, nx, ny, & @@ -140,7 +140,7 @@ type(obs_def_type) :: obs_def type(obs_sequence_type) :: obs_seq type(obs_type) :: obs, prev_obs -type(time_type) :: obs_time, delta_time +type(time_type) :: obs_time, delta_time, prev_time integer :: temp_type, salt_type, good_temp, good_salt, bad_temp, bad_salt integer :: salt_qc(10), temp_qc(10) @@ -177,6 +177,7 @@ ! time often missing; am setting that to 0Z with less ! trepidation. call set_calendar_type(GREGORIAN) +prev_time = set_date(4000, 1, 1) ! must be something later than all obs ! read the necessary parameters from input.nml call initialize_utilities() @@ -368,8 +369,6 @@ obslon = lono obslat = lato - first_obs = .true. - if (have_temp) then if (ierror(1) == 0) then good_temp = good_temp + 1 @@ -402,7 +401,7 @@ call set_obs_def_location(obs_def, & set_location(obslon, obslat, obsdepth,VERTISHEIGHT)) call set_obs_def_kind(obs_def, temp_type) - call set_obs_def_time(obs_def, set_time(osec, oday)) + call set_obs_def_time(obs_def, obs_time) call set_obs_def_error_variance(obs_def, terr * terr) call set_obs_def_key(obs_def, obs_num) @@ -418,14 +417,14 @@ ! same for this column, insert with the prev obs as the starting point. ! (the first insert with no prev means it will search for the right ! time ordered starting point.) - if (first_obs) then + if (prev_time > obs_time) then call insert_obs_in_seq(obs_seq, obs) - first_obs = .false. else - call insert_obs_in_seq(obs_seq, obs, prev_obs) + call insert_obs_in_seq(obs_seq, obs, prev_obs) endif obs_num = obs_num+1 prev_obs = obs + prev_time = obs_time if (.not. did_obs) did_obs = .true. endif @@ -439,7 +438,7 @@ call set_obs_def_location(obs_def, & set_location(obslon, obslat, obsdepth,VERTISHEIGHT)) call set_obs_def_kind(obs_def, salt_type) - call set_obs_def_time(obs_def, set_time(osec, oday)) + call set_obs_def_time(obs_def, obs_time) call set_obs_def_error_variance(obs_def, serr * serr) call set_obs_def_key(obs_def, obs_num) @@ -455,14 +454,14 @@ ! same for this column, insert with the prev obs as the starting point. ! (the first insert with no prev means it will search for the right ! time ordered starting point.) - if (first_obs) then + if (prev_time > obs_time) then call insert_obs_in_seq(obs_seq, obs) - first_obs = .false. else - call insert_obs_in_seq(obs_seq, obs, prev_obs) + call insert_obs_in_seq(obs_seq, obs, prev_obs) endif obs_num = obs_num+1 prev_obs = obs + prev_time = obs_time if (.not. did_obs) did_obs = .true. endif From nancy at ucar.edu Tue Jan 12 11:54:44 2010 From: nancy at ucar.edu (nancy at ucar.edu) Date: Tue, 12 Jan 2010 11:54:44 -0700 Subject: [Dart-dev] [4215] DART/trunk/diagnostics/threed_sphere/obs_seq_to_netcdf.f90: Adding original observation sequence key to the quantities Message-ID: Revision: 4215 Author: thoar Date: 2010-01-12 11:54:44 -0700 (Tue, 12 Jan 2010) Log Message: ----------- Adding original observation sequence key to the quantities recorded in the netcdf file. Will assist being able to find the obs in the observation sequence file ... Modified Paths: -------------- DART/trunk/diagnostics/threed_sphere/obs_seq_to_netcdf.f90 -------------- next part -------------- Modified: DART/trunk/diagnostics/threed_sphere/obs_seq_to_netcdf.f90 =================================================================== --- DART/trunk/diagnostics/threed_sphere/obs_seq_to_netcdf.f90 2010-01-11 16:18:54 UTC (rev 4214) +++ DART/trunk/diagnostics/threed_sphere/obs_seq_to_netcdf.f90 2010-01-12 18:54:44 UTC (rev 4215) @@ -128,7 +128,7 @@ integer, dimension(2) :: key_bounds integer, allocatable, dimension(:) :: keys real(digits12), allocatable, dimension(:) :: obs_times -integer, allocatable, dimension(:) :: obs_types +integer, allocatable, dimension(:) :: obs_types, obs_keys real(r8), allocatable, dimension(:,:) :: obs_copies integer, allocatable, dimension(:,:) :: qc_copies real(r8), allocatable, dimension(:,:) :: locations @@ -140,6 +140,7 @@ integer :: iepoch, ifile, num_obs_in_epoch, ngood real(r8) :: obsloc3(3) +! real(r8) :: Robslon, Robslat integer :: i, io, obsindex, ncunit integer :: Nepochs @@ -436,6 +437,7 @@ allocate( keys( num_obs_in_epoch), & obs_times( num_obs_in_epoch), & obs_types( num_obs_in_epoch), & + obs_keys( num_obs_in_epoch), & which_vert( num_obs_in_epoch), & obs_copies(allNcopies, num_obs_in_epoch), & qc_copies( num_qc, num_obs_in_epoch), & @@ -475,11 +477,13 @@ obs_time = get_obs_def_time(obs_def) obs_loc = get_obs_def_location(obs_def) obsloc3 = get_location(obs_loc) + ! Robslon = query_location(obs_loc,'lon') + ! Robslat = query_location(obs_loc,'lat') ! replace missing values with NetCDF missing value where (obscopies == MISSING_R8 ) obscopies = NF90_FILL_DOUBLE - ! paste on the observational error variance (more?) + ! paste on the observational error variance obs_err_var = get_obs_def_error_variance(obs_def) copyvals = (/ obscopies, obs_err_var /) @@ -515,6 +519,7 @@ locations(:,ngood) = obsloc3 obs_times( ngood) = mytime obs_types( ngood) = flavor + obs_keys( ngood) = keys(obsindex) which_vert( ngood) = nint(query_location(obs_loc)) !-------------------------------------------------------------- @@ -565,11 +570,12 @@ !----------------------------------------------------------------- if ( ngood > 0 ) call WriteNetCDF(ncunit, ncname, ngood, obs_copies, & - qc_copies, locations, obs_times, obs_types, which_vert) + qc_copies, locations, obs_times, obs_types, obs_keys, & + which_vert) call CloseNetCDF(ncunit, ncname) - deallocate(keys, obs_times, obs_types, which_vert, & + deallocate(keys, obs_times, obs_types, obs_keys, which_vert, & obs_copies, qc_copies, locations) enddo EpochLoop @@ -802,11 +808,12 @@ call nc_check(nf90_def_var(ncid=ncid, name='ObsIndex', xtype=nf90_int, & dimids=(/ ObsNumDimID /), varid=VarID), & - 'InitNetCDF', 'time:def_var') + 'InitNetCDF', 'obsindex:def_var') call nc_check(nf90_put_att(ncid, VarID, 'long_name', 'observation index'), & - 'InitNetCDF', 'time:long_name') + 'InitNetCDF', 'obsindex:long_name') call nc_check(nf90_put_att(ncid, VarID, 'units', 'dimensionless'), & - 'InitNetCDF', 'time:units') + 'InitNetCDF', 'obsindex:units') + ! Define the observation time call nc_check(nf90_def_var(ncid=ncid, name='time', xtype=nf90_double, & @@ -832,6 +839,14 @@ call nc_check(nf90_put_att(ncid, VarID, 'explanation', 'see ObsTypesMetaData'), & 'InitNetCDF', 'obs_type:explanation') +! Define the observation key (index into linked list in original file) + +call nc_check(nf90_def_var(ncid=ncid, name='obs_keys', xtype=nf90_int, & + dimids=(/ ObsNumDimID /), varid=VarID), & + 'InitNetCDF', 'obs_keys:def_var') +call nc_check(nf90_put_att(ncid, VarID, 'long_name', 'DART key in linked list'), & + 'InitNetCDF', 'obs_keys:long_name') + ! Define the vertical coordinate system code call nc_check(nf90_def_var(ncid=ncid, name='which_vert', xtype=nf90_int, & @@ -945,7 +960,7 @@ Subroutine WriteNetCDF(ncid, fname, ngood, obs_copies, qc_copies, & - locations, obs_times, obs_types, which_vert) + locations, obs_times, obs_types, obs_keys, which_vert) !============================================================================ integer, intent(in) :: ncid character(len=*), intent(in) :: fname @@ -956,6 +971,7 @@ real(r8), dimension(:,:), intent(in) :: locations real(digits12), dimension(:), intent(in) :: obs_times integer, dimension(:), intent(in) :: obs_types +integer, dimension(:), intent(in) :: obs_keys integer, dimension(:), intent(in) :: which_vert integer :: DimID, dimlen, obsindex, iobs @@ -964,7 +980,7 @@ integer :: locldimlen, obsldimlen, qcldimlen integer :: ObsIndexVarID, TimeVarID, ObsTypeVarID, WhichVertVarID, & - LocationVarID, ObsVarID, QCVarId + LocationVarID, ObsVarID, QCVarID, ObsKeyVarID !---------------------------------------------------------------------------- ! Find the current length of the unlimited dimension so we can add correctly. @@ -997,6 +1013,9 @@ call nc_check(nf90_inq_varid(ncid, 'obs_type', varid=ObsTypeVarID), & 'WriteNetCDF', 'inq_varid:obs_type '//trim(fname)) +call nc_check(nf90_inq_varid(ncid, 'obs_keys', varid=ObsKeyVarID), & + 'WriteNetCDF', 'inq_varid:obs_keys '//trim(fname)) + call nc_check(nf90_inq_varid(ncid, 'which_vert', varid=WhichVertVarID), & 'WriteNetCDF', 'inq_varid:which_vert '//trim(fname)) @@ -1042,6 +1061,14 @@ start=istart, count=icount), 'WriteNetCDF', 'put_var:obs_type') !---------------------------------------------------------------------------- + ! call nc_check(nf90_def_var(ncid=ncid, name='obs_keys', xtype=nf90_int, & + ! dimids=(/ ObsNumDimID /), varid=VarID), & + !---------------------------------------------------------------------------- + intval = obs_keys(iobs) + call nc_check(nf90_put_var(ncid, ObsKeyVarId, intval, & + start=istart, count=icount), 'WriteNetCDF', 'put_var:obs_keys') + + !---------------------------------------------------------------------------- ! call nc_check(nf90_def_var(ncid=ncid, name='which_vert', xtype=nf90_int, & ! dimids=(/ ObsNumDimID /), varid=VarID), & !---------------------------------------------------------------------------- @@ -1072,7 +1099,7 @@ ! dimids=(/ QCCopyDimID, ObsNumDimID /), varid=VarID), & !---------------------------------------------------------------------------- - call nc_check(nf90_put_var(ncid, QCVarId, qc_copies(:,iobs), & + call nc_check(nf90_put_var(ncid, QCVarID, qc_copies(:,iobs), & start=(/ 1, obsindex /), count=(/ qcldimlen, 1 /) ), & 'WriteNetCDF', 'put_var:observations') From nancy at ucar.edu Fri Jan 15 18:27:53 2010 From: nancy at ucar.edu (nancy at ucar.edu) Date: Fri, 15 Jan 2010 18:27:53 -0700 Subject: [Dart-dev] [4220] DART/trunk: Huge overhaul to conform to HTML spec and to provide Message-ID: Revision: 4220 Author: thoar Date: 2010-01-15 18:27:53 -0700 (Fri, 15 Jan 2010) Log Message: ----------- Huge overhaul to conform to HTML spec and to provide new terms of use. Modified Paths: -------------- DART/trunk/adaptive_inflate/adaptive_inflate_mod.html DART/trunk/diagnostics/oned/obs_diag.html DART/trunk/diagnostics/threed_sphere/obs_diag.html DART/trunk/diagnostics/threed_sphere/obs_seq_to_netcdf.html DART/trunk/diagnostics/threed_sphere/wind_obs_to_table.html DART/trunk/doc/html/ASP_DART_exercise.html DART/trunk/doc/html/DART_ASP_Summer2003.html DART/trunk/doc/html/Fiji_release.html DART/trunk/doc/html/Guam_release.html DART/trunk/doc/html/I_diffs_from_workshop.html DART/trunk/doc/html/Iceland_release.html DART/trunk/doc/html/Jamaica_diffs_from_I.html DART/trunk/doc/html/Jamaica_release.html DART/trunk/doc/html/PostI_diffs_from_I.html DART/trunk/doc/html/Post_Iceland_release.html DART/trunk/doc/html/hawaii_release.html DART/trunk/doc/html/pre_guam_release.html DART/trunk/doc/html/pre_hawaii_release.html DART/trunk/doc/html/pre_j_release.html DART/trunk/filter/filter.html DART/trunk/filter/wakeup_filter.html DART/trunk/integrate_model/integrate_model.html DART/trunk/mkmf/mkmf.html DART/trunk/models/MITgcm_ocean/create_ocean_obs.html DART/trunk/models/MITgcm_ocean/trans_pv_sv.html DART/trunk/models/MITgcm_ocean/trans_sv_pv.html DART/trunk/models/wrf/WRF_DART_utilities/dart_to_wrf.html DART/trunk/models/wrf/shell_scripts/advance_model.html DART/trunk/ncep_obs/create_real_obs.html DART/trunk/obs_sequence/create_fixed_network_seq.html DART/trunk/obs_sequence/create_obs_sequence.html DART/trunk/obs_sequence/obs_sequence_mod.html DART/trunk/obs_sequence/obs_sequence_tool.html DART/trunk/observations/AIRS/AIRS.html DART/trunk/observations/GTSPP/GTSPP.html DART/trunk/observations/MADIS/MADIS.html DART/trunk/observations/SSEC/SSEC.html DART/trunk/observations/WOD/WOD.html DART/trunk/observations/gps/gps.html DART/trunk/observations/observations.html DART/trunk/observations/quikscat/QuikSCAT.html DART/trunk/observations/radar/radar.html DART/trunk/observations/var/littler_tf_dart.html DART/trunk/observations/var/rad_3dvar_to_dart.html DART/trunk/observations/var/var.html DART/trunk/perfect_model_obs/perfect_model_obs.html DART/trunk/preprocess/preprocess.html DART/trunk/time_manager/advance_time.html DART/trunk/utilities/PrecisionCheck.html DART/trunk/utilities/restart_file_tool.html Property Changed: ---------------- DART/trunk/diagnostics/threed_sphere/obs_seq_to_netcdf.html DART/trunk/diagnostics/threed_sphere/wind_obs_to_table.html DART/trunk/models/MITgcm_ocean/create_ocean_obs.html DART/trunk/models/MITgcm_ocean/trans_pv_sv.html DART/trunk/models/MITgcm_ocean/trans_sv_pv.html DART/trunk/observations/AIRS/AIRS.html DART/trunk/utilities/PrecisionCheck.html -------------- next part -------------- Modified: DART/trunk/adaptive_inflate/adaptive_inflate_mod.html =================================================================== --- DART/trunk/adaptive_inflate/adaptive_inflate_mod.html 2010-01-13 19:03:45 UTC (rev 4219) +++ DART/trunk/adaptive_inflate/adaptive_inflate_mod.html 2010-01-16 01:27:53 UTC (rev 4220) @@ -1,66 +1,29 @@ + module adaptive_inflate_mod - + - + - - -

    MODULE adaptive_inflate_mod

    - -
    ndFileIDAn identifier for a netCDF file
    stateState vector and time
    copy_index   
    - - - - - -
    Contact: Jeff Anderson
    Revision: $Revision$
    Source: $URL$
    Change Date: $Date$
    Change history: try "svn log" or "svn diff"
    -
    +

    $Id$

    - - - -
    -

    OVERVIEW

    This module implements a variety of hierarchical Bayesian adaptive inflation algorithms for use with ensemble filters. It can provide @@ -81,8 +44,8 @@ - -



    + +

    OTHER MODULES USED

     types_mod
    @@ -93,11 +56,16 @@
     
    + + + + + -


    -

    PUBLIC INTERFACE

    +
    +

    PUBLIC INTERFACES

    @@ -117,423 +85,499 @@
    use adaptive_inflate_mod, only :
     deterministic_inflate
    -
    +

    +Optional namelist interface +&model_nml +may be read from file input.nml.

    +

    + A note about documentation style. + Optional arguments are enclosed in brackets + [like this]. +

    - - - - - + - -


    -

    PUBLIC COMPONENTS

    -
    + +
    +
    + call update_inflation(inflate_handle, inflate, inflate_sd, + prior_mean, prior_var, obs, obs_var, gamma) +
    +type(adaptive_inflate_type), intent(in)    :: inflate_handle
    +real(r8),                    intent(inout) :: inflate
    +real(r8),                    intent(inout) :: inflate_sd
    +real(r8),                    intent(in)    :: prior_mean
    +real(r8),                    intent(in)    :: prior_var
    +real(r8),                    intent(in)    :: obs
    +real(r8),                    intent(in)    :: obs_var
    +real(r8),                    intent(in)    :: gamma
    +
    +
    +
    + + +

    +Updates the mean and standard deviation of an inflation distribution +given the prior values, the prior observation ensemble mean and +variance, and the observation and its error variance. The factor gamma +is the expected impact (0 to 1) of the state variable corresponding to +the inflation on the observation and is the product of the ensemble +correlation plus an additional localization factor or group regression +factors. +

    + + + + + + + + + + + + + + + + + +
    inflate_handle  Handle to object that describes the inflation type and values.
    inflate  Prior mean value of the inflation distribution.
    inflate_sd  Prior standard deviation of the inflation distribution.
    prior_mean  Mean of the prior observation ensemble.
    prior_var  Variance of the prior observation ensemble.
    obs  The observed value.
    obs_var  Observational error variance.
    gamma  Expected impact factor, product of correlation, localization, regression factor.
    - - -


    -
    - call update_inflation(inflate_handle,inflate,inflate_sd,prior_mean, - prior_var,obs,obs_var,gamma) -
    - type(adaptive_inflate_type), intent(in)    :: inflate_handle
    - real(r8),                    intent(inout) :: inflate
    - real(r8),                    intent(inout) :: inflate_sd
    - real(r8),                    intent(in)    :: prior_mean
    - real(r8),                    intent(in)    :: prior_var
    - real(r8),                    intent(in)    :: obs
    - real(r8),                    intent(in)    :: obs_var
    - real(r8),                    intent(in)    :: gamma
    - 
    -

    Description

    -

    - Updates the mean and standard deviation of an inflation distribution - given the prior values, the prior observation ensemble mean and - variance, and the observation and its error variance. The factor gamma - is the expected impact (0 to 1) of the state variable corresponding to - the inflation on the observation and is the product of the ensemble - correlation plus an additional localization factor or group regression - factors. -

    - - - - - - - - - - - - - - - - - -
    inflate_handle    Handle to object that describes the inflation type and values.
    inflate    Prior mean value of the inflation distribution.
    inflate_sd    Prior standard deviation of the inflation distribution.
    prior_mean    Mean of the prior observation ensemble.
    prior_var    Variance of the prior observation ensemble.
    obs    The observed value.
    obs_var    Observational error variance.
    gamma    Expected impact factor, product of correlation, localization, regression factor.
    -

    - +

    +
    + - - -


    -
    - call adaptive_inflate_end(inflate_handle,ens_handle, - ss_inflate_index,ss_inflate_sd_index) -
    - type(adaptive_inflate_type), intent(in)    :: inflate_handle
    - type(ensemble_type),         intent(inout) :: ens_handle
    - integer,                     intent(in)    :: ss_inflate_index
    - integer,                     intent(in)    :: ss_inflate_sd_index
    - 
    -

    Description

    -

    - Outputs the values of inflation to restart files using the ensemble_manager for - state space inflation and file output for observation space inflation. Releases - allocated storage in inflate_handle. -

    - - - - - - - - - -
    inflate_handle    Handle for the details of the inflation being performed.
    ens_handle    Handle for ensemble storage that holds values of state space inflation. -
    ss_inflate_index    Index in ensemble storage copies for state space inflation.
    ss_inflate_sd_index    Index in ensemble storage copies for state space inflation standard - deviation.
    -

    - + +
    +

    + call adaptive_inflate_end(inflate_handle, ens_handle, + ss_inflate_index, ss_inflate_sd_index) +
    +type(adaptive_inflate_type), intent(in)    :: inflate_handle
    +type(ensemble_type),         intent(inout) :: ens_handle
    +integer,                     intent(in)    :: ss_inflate_index
    +integer,                     intent(in)    :: ss_inflate_sd_index
    +
    +
    +
    + - - -


    -
    - call inflate_ens(inflate_handle,ens,mean,inflate,var_in) -
    - type(adaptive_inflate_type),               intent(in)  :: inflate_handle
    - real(r8),                    dimension(:), intent(out) :: ens
    - real(r8),                                  intent(in)  :: mean
    - real(r8),                                  intent(in)  :: inflate
    - real(r8),                    optional,     intent(in)  :: var_in
    - 
    -

    Description

    -

    +

    +Outputs the values of inflation to restart files using the ensemble_manager for +state space inflation and file output for observation space inflation. Releases +allocated storage in inflate_handle. +

    + + + + + + + + + + +
    inflate_handle  Handle for the details of the inflation being performed.
    ens_handle  Handle for ensemble storage that holds values of state space inflation. +
    ss_inflate_index  Index in ensemble storage copies for state space inflation.
    ss_inflate_sd_index  Index in ensemble storage copies for state space inflation standard + deviation.
    + +
    +
    + + + + +
    +
    + call inflate_ens(inflate_handle, ens,mean, inflate [,var_in]) +
    +type(adaptive_inflate_type),               intent(in)  :: inflate_handle
    +real(r8),                    dimension(:), intent(out) :: ens
    +real(r8),                                  intent(in)  :: mean
    +real(r8),                                  intent(in)  :: inflate
    +real(r8),                    optional,     intent(in)  :: var_in
    +
    +
    + +
    + + +

    Given an ensemble, its mean and the covarance inflation factor, inflates the ensemble. -

    - - - - - - - - - - - -
    inflate_handle    Handle for the details of the inflation being performed.
    ens    Values for the ensemble to be inflated
    mean    The mean of the ensemble.
    inflate    The covariance inflation factor.
    var_in    The variance of the ensemble.
    -

    - +

    + + + + + + + + + + + +
    inflate_handle  Handle for the details of the inflation being performed.
    ens  Values for the ensemble to be inflated
    mean  The mean of the ensemble.
    inflate  The covariance inflation factor.
    var_in  The variance of the ensemble.
    - - -


    -
    - call output_inflate_diagnostics(inflate_handle, time) -
    - type(adaptive_inflate_type), intent(in) :: inflate_handle
    - type(time_type),             intent(in) :: time
    - 
    -

    Description

    -

    - Outputs diagnostic record of inflation for the observation space of +

    +
    + + + + +
    +
    + call output_inflate_diagnostics(inflate_handle, time) +
    +type(adaptive_inflate_type), intent(in) :: inflate_handle
    +type(time_type),             intent(in) :: time
    +
    +
    + +
    + + +

    +Outputs diagnostic record of inflation for the observation space of spatially constant state space inflation. Spatially varying state space diagnostics are in the Posterior and Prior Diagnostic netcdf files and are written with calls from filter.f90. -

    - - - - - -
    inflate_handle    Handle for the details of the inflation being performed.
    time    Time of this diagnostic info.
    -

    - +

    + + + + + +
    inflate_handle  Handle for the details of the inflation being performed.
    time  Time of this diagnostic info.
    - - -


    -
    - var = do_obs_inflate(inflate_handle) -
    - logical,               intent(out) :: do_obs_inflate
    - adaptive_inflate_type, intent(in)  :: inflate_handle
    - 
    -

    Description

    -

    - Returns true if observation space inflation is being done by this handle. -

    - - - - - -
    do_obs_inflate    True if obs space inflation is being done by this handle.
    inflate_handle    Handle to inflation details.
    -

    - +

    +
    + - - -


    -
    - var = do_varying_ss_inflate(inflate_handle) -
    - logical,               intent(out) :: do_varying_ss_inflate
    - adaptive_inflate_type, intent(in)  :: inflate_handle
    - 
    -

    Description

    -

    - Returns true if spatially varying state space inflation is being done by this handle. -

    - - - - - -
    do_varying_ss_inflate    True if spatially varying state space inflation is being done by this handle.
    inflate_handle    Handle to inflation details.
    -

    - + +
    +

    + var = do_obs_inflate(inflate_handle) +
    +logical,               intent(out) :: do_obs_inflate
    +adaptive_inflate_type, intent(in)  :: inflate_handle
    +
    +
    +
    + +

    +Returns true if observation space inflation is being done by this handle. +

    - - -


    -
    - var = do_single_ss_inflate(inflate_handle) -
    - logical,               intent(out) :: do_single_ss_inflate
    - adaptive_inflate_type, intent(in)  :: inflate_handle
    - 
    -

    Description

    -

    - Returns true if spatially fixed state space inflation is being done by this handle. -

    - - - - - -
    do_single_ss_inflate    True if spatially fixed state space inflation is being done by this handle.
    inflate_handle    Handle to inflation details.
    -

    - + + + + + +
    do_obs_inflate  True if obs space inflation is being done by this handle.
    inflate_handle  Handle to inflation details.
    - - -


    -
    - call adaptive_inflate_init(inflate_handle, inf_flavor, mean_from_restart, - sd_from_restart, output_restart, deterministic, in_file_name, out_file_name, - diag_file_name, inf_initial, sd_initial, inf_lower_bound, inf_upper_bound, - sd_lower_bound, ens_handle, ss_inflate_index, ss_inflate_sd_index, label) -
    - type(adaptive_inflate_type), intent(inout) :: inflate_handle
    - integer, intent(in)                        :: inf_flavor
    - logical, intent(in)                        :: mean_from_restart
    - logical, intent(in)                        :: sd_from_restart
    - logical, intent(in)                        :: output_restart
    - logical, intent(in)                        :: deterministic
    - character(len=*), intent(in)               :: in_file_name
    - character(len=*), intent(in)               :: out_file_name
    - character(len=*), intent(in)               :: diag_file_name
    - real(r8), intent(in)                       :: inf_initial
    - real(r8), intent(in)                       :: sd_initial
    - real(r8), intent(in)                       :: inf_lower_bound
    - real(r8), intent(in)                       :: inf_upper_bound
    - real(r8), intent(in)                       :: sd_lower_bound
    - type(ensemble_type), intent(inout)         :: ens_handle
    - integer, intent(in)                        :: ss_inflate_index
    - integer, intent(in)                        :: ss_inflate_sd_index
    - character(len=*), intent(in)               :: label
    - 
    -

    Description

    -

    - Initializes a descriptor of an inflation. -

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    inflate_handle    Handle for the inflation descriptor being initialized.
    inf_flavor    Type of inflation, 1=obs_inflate, 2=varying_ss_inflate, 3=single_ss_inflate.
    mean_from_restart    True if inflation mean values to be read from restart file.
    sd_from_restart    True if inflation standard deviation values to be read from restart file.
    output_restart    True if an inflation restart file is to be output.
    deterministic    True if deterministic inflation is to be done.
    in_file_name    File name from which to read restart.
    out_file_name    File name to which to write restart.
    diag_file_name    File name to which to write diagnostic output; obs space inflation only .
    inf_initial    Initial value of inflation for start_from_restart=.false.
    sd_initial    Initial value of inflation standard deviation for start_from_restart=.false.
    inf_lower_bound    Lower bound on inflation value.
    inf_upper_bound    Upper bound on inflation value.
    sd_lower_bound    Lower bound on inflation standard deviation.
    ens_handle    Ensemble handle with storage for state space inflation.
    ss_inflate_index    Index op copy in ensemble storage for inflation value.
    ss_inflate_sd_index    Index of copy in ensemble storage for inflation standard deviation.
    label    Character label to be used in diagnostic output (e.g. 'Prior', 'Posterior').
    -

    - +

    +
    + - - -


    -
    - var = get_sd(inflate_handle) -
    - real(r8), intent(out)                   :: get_sd
    - type(adaptive_inflate_type), intent(in) :: inflate_handle
    - 
    -

    Description

    -

    - Returns value of observation space inflation standard deviation. -

    - - - - - -
    get_sd    Returns the value of observation space inflation.
    inflate_handle    Handle for inflation descriptor.
    -

    - + +
    +

    + var = do_varying_ss_inflate(inflate_handle) +
    +logical,               intent(out) :: do_varying_ss_inflate
    +adaptive_inflate_type, intent(in)  :: inflate_handle
    +
    +
    - - -


    -
    - var = get_inflate(inflate_handle) -
    - real(r8), intent(out)                   :: get_inflate
    - type(adaptive_inflate_type), intent(in) :: inflate_handle
    - 
    -

    Description

    -

    - Returns value of observation space inflation. -

    - - - - - -
    get_inflate    Returns the value of observation space inflation.
    inflate_handle    Handle for inflation descriptor.
    -

    - +

    + - - -


    -
    - call set_inflate(inflate_handle,inflate) -
    - type(adaptive_inflate_type), intent(inout) :: inflate_handle
    - real(r8), intent(in)                       :: inflate
    - 
    -

    Description

    -

    - Set the value of observation space inflation. -

    - - - - - -
    inflate_handle    Handle for inflation descriptor.
    inflate    Set observation space inflation to this value.
    -

    - +

    +Returns true if spatially varying state space inflation is being done by this handle. +

    + + + + + +
    do_varying_ss_inflate  True if spatially varying state space inflation is being done by this handle.
    inflate_handle  Handle to inflation details.
    - - -


    -
    - call set_sd(inflate_handle,sd) -
    - type(adaptive_inflate_type), intent(inout) :: inflate_handle
    - real(r8), intent(in)                       :: sd
    - 
    -

    Description

    -

    - Set the value of observation space inflation standard deviation. -

    - - - - - -
    inflate_handle    Handle for inflation descriptor.
    sd    Set observation space inflation standard deviation to this value.
    -

    - +

    +
    - - -


    -
    - var = deterministic_inflate(inflate_handle) -
    - logical, intent(out)                    :: deterministic_inflate
    - type(adaptive_inflate_type), intent(in) :: inflate_handle
    - 
    -

    Description

    -

    - Returns true if deterministic inflation is being done. -

    - - - - - -
    deterministic_inflate    Returns true if deterministic inflation is being done.
    inflate_handle    Handle for inflation descriptor.
    -

    - + + +
    +

    + var = do_single_ss_inflate(inflate_handle) +
    +logical,               intent(out) :: do_single_ss_inflate
    +adaptive_inflate_type, intent(in)  :: inflate_handle
    +
    +
    +
    + + +

    +Returns true if spatially fixed state space inflation is being done by this handle. +

    + + + + + + +
    do_single_ss_inflate  True if spatially fixed state space inflation is being done by this handle.
    inflate_handle  Handle to inflation details.
    + +
    +
    + + + + +
    +
    + call adaptive_inflate_init(inflate_handle, inf_flavor, mean_from_restart, + sd_from_restart, output_restart, deterministic, in_file_name, out_file_name, + diag_file_name, inf_initial, sd_initial, inf_lower_bound, inf_upper_bound, + sd_lower_bound, ens_handle, ss_inflate_index, ss_inflate_sd_index, label) +
    +type(adaptive_inflate_type), intent(inout) :: inflate_handle
    +integer, intent(in)                        :: inf_flavor
    +logical, intent(in)                        :: mean_from_restart
    +logical, intent(in)                        :: sd_from_restart
    +logical, intent(in)                        :: output_restart
    +logical, intent(in)                        :: deterministic
    +character(len=*), intent(in)               :: in_file_name
    +character(len=*), intent(in)               :: out_file_name
    +character(len=*), intent(in)               :: diag_file_name
    +real(r8), intent(in)                       :: inf_initial
    +real(r8), intent(in)                       :: sd_initial
    +real(r8), intent(in)                       :: inf_lower_bound
    +real(r8), intent(in)                       :: inf_upper_bound
    +real(r8), intent(in)                       :: sd_lower_bound
    +type(ensemble_type), intent(inout)         :: ens_handle
    +integer, intent(in)                        :: ss_inflate_index
    +integer, intent(in)                        :: ss_inflate_sd_index
    +character(len=*), intent(in)               :: label
    +
    +
    + +
    + + +

    +Initializes a descriptor of an inflation object. +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    inflate_handle  Handle for the inflation descriptor being initialized.
    inf_flavor  Type of inflation, 1=obs_inflate, 2=varying_ss_inflate, 3=single_ss_inflate.
    mean_from_restart  True if inflation mean values to be read from restart file.
    sd_from_restart  True if inflation standard deviation values to be read from restart file.
    output_restart  True if an inflation restart file is to be output.
    deterministic  True if deterministic inflation is to be done.
    in_file_name  File name from which to read restart.
    out_file_name  File name to which to write restart.
    diag_file_name  File name to which to write diagnostic output; obs space inflation only .
    inf_initial  Initial value of inflation for start_from_restart=.false.
    sd_initial  Initial value of inflation standard deviation for start_from_restart=.false.
    inf_lower_bound  Lower bound on inflation value.
    inf_upper_bound  Upper bound on inflation value.
    sd_lower_bound  Lower bound on inflation standard deviation.
    ens_handle  Ensemble handle with storage for state space inflation.
    ss_inflate_index  Index op copy in ensemble storage for inflation value.
    ss_inflate_sd_index  Index of copy in ensemble storage for inflation standard deviation.
    label  Character label to be used in diagnostic output (e.g. 'Prior', 'Posterior').
    + +
    +
    + + + + +
    +
    + var = get_sd(inflate_handle) +
    +real(r8), intent(out)                   :: get_sd
    +type(adaptive_inflate_type), intent(in) :: inflate_handle
    +
    +
    + +
    + + +

    +Returns value of observation space inflation standard deviation. +

    + + + + + + +
    get_sd  Returns the value of observation space inflation.
    inflate_handle  Handle for inflation descriptor.
    + +
    +
    + + + + +
    +
    + var = get_inflate(inflate_handle) +
    +real(r8), intent(out)                   :: get_inflate
    +type(adaptive_inflate_type), intent(in) :: inflate_handle
    +
    +
    + +
    + + +

    +Returns value of observation space inflation. +

    + + + + + + +
    get_inflate  Returns the value of observation space inflation.
    inflate_handle  Handle for inflation descriptor.
    + +
    +
    + @@ Diff output truncated at 40000 characters. @@ From nancy at ucar.edu Wed Jan 20 09:20:06 2010 From: nancy at ucar.edu (nancy at ucar.edu) Date: Wed, 20 Jan 2010 09:20:06 -0700 Subject: [Dart-dev] [4221] DART/trunk/models/cam/model_mod.f90: Separate initial values from the declarations of the Message-ID: Revision: 4221 Author: nancy Date: 2010-01-20 09:20:06 -0700 (Wed, 20 Jan 2010) Log Message: ----------- Separate initial values from the declarations of the local subroutine variables. Doing it together sets the 'save' attribute which was not the intent here. Modified Paths: -------------- DART/trunk/models/cam/model_mod.f90 -------------- next part -------------- Modified: DART/trunk/models/cam/model_mod.f90 =================================================================== --- DART/trunk/models/cam/model_mod.f90 2010-01-16 01:27:53 UTC (rev 4220) +++ DART/trunk/models/cam/model_mod.f90 2010-01-20 16:20:06 UTC (rev 4221) @@ -3575,15 +3575,24 @@ real(r8), dimension(3), intent(inout) :: new_array integer :: i, num_levs, top_lev, bot_lev -integer :: lon_which_dimid=0, lat_which_dimid=0, lon_index=0, lat_index=0 +integer :: lon_which_dimid, lat_which_dimid, lon_index, lat_index integer :: rank_kind, cam_kind, istatus real(r8) :: p_surf, frac -logical :: stagr_lon = .false., stagr_lat = .false. +logical :: stagr_lon, stagr_lat type(location_type) :: dum_loc character(len=129) :: errstring character(len=8) :: dim_name +! set good initial values, only differences will be changed +stagr_lon = .false. +stagr_lat = .false. +lon_which_dimid = 0 +lat_which_dimid = 0 + +! set initial values which should be overwritten in all cases +lon_index = MISSING_I +lat_index = MISSING_I new_array = MISSING_R8 if (old_which == VERTISPRESSURE .or. old_which == VERTISHEIGHT .or. & From nancy at ucar.edu Wed Jan 20 11:27:41 2010 From: nancy at ucar.edu (nancy at ucar.edu) Date: Wed, 20 Jan 2010 11:27:41 -0700 Subject: [Dart-dev] [4222] DART/trunk: last little html formatting consistency check Message-ID: Revision: 4222 Author: thoar Date: 2010-01-20 11:27:41 -0700 (Wed, 20 Jan 2010) Log Message: ----------- last little html formatting consistency check Modified Paths: -------------- DART/trunk/adaptive_inflate/adaptive_inflate_mod.html DART/trunk/assim_model/assim_model_mod.html DART/trunk/assim_tools/assim_tools_mod.html DART/trunk/common/types_mod.html DART/trunk/cov_cutoff/cov_cutoff_mod.html DART/trunk/diagnostics/oned/obs_diag.html DART/trunk/diagnostics/threed_sphere/obs_diag.html DART/trunk/diagnostics/threed_sphere/obs_seq_to_netcdf.html DART/trunk/diagnostics/threed_sphere/wind_obs_to_table.html DART/trunk/doc/html/boilerplate.html DART/trunk/doc/html/cgd_cam.shtml DART/trunk/doc/html/doc.css DART/trunk/doc/html/filter_async_modes.html DART/trunk/doc/html/index.shtml DART/trunk/doc/html/mpi_intro.html DART/trunk/ensemble_manager/ensemble_manager_mod.html DART/trunk/filter/wakeup_filter.html DART/trunk/index.html DART/trunk/location/oned/location_mod.html DART/trunk/location/threed_sphere/location_mod.html DART/trunk/models/9var/model_mod.html DART/trunk/models/MITgcm_ocean/create_ocean_obs.html DART/trunk/models/MITgcm_ocean/model_mod.html DART/trunk/models/MITgcm_ocean/trans_sv_pv.html DART/trunk/models/PBL_1d/model_mod.html DART/trunk/models/POP/model_mod.html DART/trunk/models/cam/doc/index.html DART/trunk/models/cam/doc/script_doc.html DART/trunk/models/cam/doc/trans_date_to_dart_instr.html DART/trunk/models/cam/doc/trans_pv_sv_time0_instr.html DART/trunk/models/cam/model_mod.html DART/trunk/models/coamps/model_mod.html DART/trunk/models/forced_lorenz_96/model_mod.html DART/trunk/models/ikeda/model_mod.html DART/trunk/models/lorenz_04/model_mod.html DART/trunk/models/lorenz_63/model_mod.html DART/trunk/models/lorenz_84/model_mod.html DART/trunk/models/lorenz_96/model_mod.html DART/trunk/models/model_mod.html DART/trunk/models/pe2lyr/model_mod.html DART/trunk/models/simple_advection/model_mod.html DART/trunk/models/wrf/WRF_DART_utilities/dart_to_wrf.html DART/trunk/models/wrf/model_mod.html DART/trunk/mpi_utilities/mpi_utilities_mod.html DART/trunk/ncep_obs/prep_bufr/prep_bufr.html DART/trunk/obs_def/DEFAULT_obs_def_mod.html DART/trunk/obs_def/obs_def_1d_state_mod.html DART/trunk/obs_def/obs_def_dew_point_mod.html DART/trunk/obs_def/obs_def_mod.html DART/trunk/obs_def/obs_def_ocean_mod.html DART/trunk/obs_def/obs_def_radar_mod.html DART/trunk/obs_kind/DEFAULT_obs_kind_mod.html DART/trunk/obs_kind/obs_kind_mod.html DART/trunk/obs_model/obs_model_mod.html DART/trunk/perfect_model_obs/perfect_model_obs.html DART/trunk/random_nr/random_nr_mod.html DART/trunk/random_seq/random_seq_mod.html DART/trunk/reg_factor/reg_factor_mod.html DART/trunk/smoother/smoother_mod.html DART/trunk/time_manager/schedule_mod.html DART/trunk/time_manager/time_manager_mod.html DART/trunk/utilities/utilities_mod.html Added Paths: ----------- DART/trunk/doc/html/Dartboard7.png -------------- next part -------------- Modified: DART/trunk/adaptive_inflate/adaptive_inflate_mod.html =================================================================== --- DART/trunk/adaptive_inflate/adaptive_inflate_mod.html 2010-01-20 16:20:06 UTC (rev 4221) +++ DART/trunk/adaptive_inflate/adaptive_inflate_mod.html 2010-01-20 18:27:41 UTC (rev 4222) @@ -8,7 +8,6 @@ -

    MODULE adaptive_inflate_mod

    $Id$

    @@ -771,7 +769,6 @@

    PRIVATE COMPONENTS

    -

    no discussion

    Modified: DART/trunk/assim_model/assim_model_mod.html =================================================================== --- DART/trunk/assim_model/assim_model_mod.html 2010-01-20 16:20:06 UTC (rev 4221) +++ DART/trunk/assim_model/assim_model_mod.html 2010-01-20 18:27:41 UTC (rev 4222) @@ -8,7 +8,6 @@ -

    MODULE assim_model_mod

    $Id$

    @@ -1654,14 +1652,14 @@

    DART software - Copyright © 2004 - 2010 UCAR.
    -This open source software is provided by UCAR, "as is",
    -without charge, subject to all terms of use at
    +This open source software is provided by UCAR, "as is",
    +without charge, subject to all terms of use at
    http://www.image.ucar.edu/DAReS/DART/DART_download

    - + Modified: DART/trunk/assim_tools/assim_tools_mod.html =================================================================== --- DART/trunk/assim_tools/assim_tools_mod.html 2010-01-20 16:20:06 UTC (rev 4221) +++ DART/trunk/assim_tools/assim_tools_mod.html 2010-01-20 18:27:41 UTC (rev 4222) @@ -8,7 +8,6 @@ -

    MODULE assim_tools_mod

    $Id$

    @@ -379,14 +377,14 @@

    DART software - Copyright © 2004 - 2010 UCAR.
    -This open source software is provided by UCAR, "as is",
    -without charge, subject to all terms of use at
    +This open source software is provided by UCAR, "as is",
    +without charge, subject to all terms of use at
    http://www.image.ucar.edu/DAReS/DART/DART_download

    Contact: DART core group
    Contact: DART core group
    Revision: $Revision$
    Source: $URL$
    Change Date: $Date$
    - + Modified: DART/trunk/common/types_mod.html =================================================================== --- DART/trunk/common/types_mod.html 2010-01-20 16:20:06 UTC (rev 4221) +++ DART/trunk/common/types_mod.html 2010-01-20 18:27:41 UTC (rev 4222) @@ -8,10 +8,9 @@ -

    MODULE types_mod

    $Id$

    @@ -338,14 +336,14 @@

    DART software - Copyright © 2004 - 2010 UCAR.
    -This open source software is provided by UCAR, "as is",
    -without charge, subject to all terms of use at
    +This open source software is provided by UCAR, "as is",
    +without charge, subject to all terms of use at
    http://www.image.ucar.edu/DAReS/DART/DART_download

    Contact: DART core group
    Contact: DART core group
    Revision: $Revision$
    Source: $URL$
    Change Date: $Date$
    - + Modified: DART/trunk/cov_cutoff/cov_cutoff_mod.html =================================================================== --- DART/trunk/cov_cutoff/cov_cutoff_mod.html 2010-01-20 16:20:06 UTC (rev 4221) +++ DART/trunk/cov_cutoff/cov_cutoff_mod.html 2010-01-20 18:27:41 UTC (rev 4222) @@ -8,10 +8,9 @@ -

    MODULE cov_cutoff_mod

    $Id$

    @@ -252,14 +250,14 @@

    DART software - Copyright © 2004 - 2010 UCAR.
    -This open source software is provided by UCAR, "as is",
    -without charge, subject to all terms of use at
    +This open source software is provided by UCAR, "as is",
    +without charge, subject to all terms of use at
    http://www.image.ucar.edu/DAReS/DART/DART_download

    Contact: DART core group
    Contact: DART core group
    Revision: $Revision$
    Source: $URL$
    Change Date: $Date$
    - + Modified: DART/trunk/diagnostics/oned/obs_diag.html =================================================================== --- DART/trunk/diagnostics/oned/obs_diag.html 2010-01-20 16:20:06 UTC (rev 4221) +++ DART/trunk/diagnostics/oned/obs_diag.html 2010-01-20 18:27:41 UTC (rev 4222) @@ -9,8 +9,8 @@
    -MODULES / -NAMELIST / +MODULES / +NAMELIST / FILES / REFERENCES / ERRORS / @@ -19,7 +19,7 @@ TERMS OF USE
    -

    PROGRAM obs_diag

    +

    PROGRAM obs_diag

    $Id$

    @@ -110,7 +110,7 @@

    NAMELIST

    We adhere to the F90 standard of starting a namelist with an ampersand '&' and terminating with a slash '/' for all our namelist input. -Consider yourself forewarned that filenames that contain a '/' must be +Consider yourself forewarned that character strings that contain a '/' must be enclosed in quotes to prevent them from prematurely terminating the namelist. The namelist declaration (i.e. what follows) has a different syntax, naturally.

    Modified: DART/trunk/diagnostics/threed_sphere/obs_diag.html =================================================================== --- DART/trunk/diagnostics/threed_sphere/obs_diag.html 2010-01-20 16:20:06 UTC (rev 4221) +++ DART/trunk/diagnostics/threed_sphere/obs_diag.html 2010-01-20 18:27:41 UTC (rev 4222) @@ -9,8 +9,8 @@
    -MODULES / -NAMELIST / +MODULES / +NAMELIST / FILES / USAGE / REFERENCES / Modified: DART/trunk/diagnostics/threed_sphere/obs_seq_to_netcdf.html =================================================================== --- DART/trunk/diagnostics/threed_sphere/obs_seq_to_netcdf.html 2010-01-20 16:20:06 UTC (rev 4221) +++ DART/trunk/diagnostics/threed_sphere/obs_seq_to_netcdf.html 2010-01-20 18:27:41 UTC (rev 4222) @@ -9,10 +9,10 @@
    -MODULES / +MODULES / NAMELIST / FILES / -USAGE / +USAGE / REFERENCES / ERRORS / PLANS / Modified: DART/trunk/diagnostics/threed_sphere/wind_obs_to_table.html =================================================================== --- DART/trunk/diagnostics/threed_sphere/wind_obs_to_table.html 2010-01-20 16:20:06 UTC (rev 4221) +++ DART/trunk/diagnostics/threed_sphere/wind_obs_to_table.html 2010-01-20 18:27:41 UTC (rev 4222) @@ -93,7 +93,7 @@

    NAMELIST

    We adhere to the F90 standard of starting a namelist with an ampersand '&' and terminating with a slash '/' for all our namelist input. -Consider yourself forewarned that filenames that contain a '/' must be +Consider yourself forewarned that character strings that contain a '/' must be enclosed in quotes to prevent them from prematurely terminating the namelist. The namelist declaration (i.e. what follows) has a different syntax, naturally.

    Added: DART/trunk/doc/html/Dartboard7.png =================================================================== (Binary files differ) Property changes on: DART/trunk/doc/html/Dartboard7.png ___________________________________________________________________ Added: svn:executable + * Added: svn:mime-type + application/octet-stream Modified: DART/trunk/doc/html/boilerplate.html =================================================================== --- DART/trunk/doc/html/boilerplate.html 2010-01-20 16:20:06 UTC (rev 4221) +++ DART/trunk/doc/html/boilerplate.html 2010-01-20 18:27:41 UTC (rev 4222) @@ -1,72 +1,41 @@ + module xxxxxxx - + + - + - +TERMS OF USE +
    - -

    MODULE xxxxxxx

    - +

    $Id$

    - - - -
    -

    OVERVIEW

    -

    - A note about documentation style. Optional arguments are enclosed in - brackets [like this]. -

    -

    + This is the place for the general description of the module + or program or whatever. +

    + overview issues, how/when/why to use this thing, etc. +

    Atmospheric driver for the dry B-grid dynamical core and Held-Suarez benchmark (aka simple_physics).

    - +

    OTHER MODULES USED

    @@ -78,11 +47,16 @@
     
    + + + + +
    -

    PUBLIC INTERFACE

    +

    PUBLIC INTERFACES

    Contact: DART core group
    Contact: DART core group
    Revision: $Revision$
    Source: $URL$
    Change Date: $Date$
    @@ -92,54 +66,56 @@
    use xxxxxxx, only :
     yyyroutine3
    -

    NOTES

    -

    -Optional namelist interface &lim_obs_seq_nml +Optional namelist interface +&model_nml may be read from file input.nml.

    - - - - - - - -


    -

    PUBLIC COMPONENTS

    -

    fill in text here +

    + A note about documentation style. + Optional arguments are enclosed in brackets + [like this].

    -
    -
    +
    +
    +
     type location_type
        private
        real(r8) :: x
     end type location_type
    -
    +
    +
    -

    Description

    +

    The location type is essential to the fabric of the universe. If we don't know where we are, how do we know which exit to take?

    + + +
    Component Description
    x is the nondimensional distance [0,1]
    +
    +
    + -


    -
    +
    +
    +
     type time_type
        private
        integer           :: year
    @@ -151,9 +127,10 @@
        real(r8)          :: umt
        character(len=80) :: calendar
     end type time_type
    -
    +
    +
    -

    Description

    +

    The time type is ubiquitous throughout the module. Given the value of calendar, everything should be pretty clear. @@ -165,47 +142,60 @@

    + + + + + + + + + +
    Component Description
    year the (non-negative) year
    month the month
    day the day-of-month
    hour the hour-of-day
    minute the minute
    second the second
    umt uniformly monotonic time
    calendar the type of calendar being used
    - +
    +
    + + -


    +
    -call yyyroutine1( var1, var2, var3 - [,global] ) +call yyyroutine1( var1, var2, var3 + [, global])
     type(time_type),          intent(in)    ::  var1 
     real(r8), dimension(:),   intent(inout) ::  var2 
     real(r8), dimension(:,:), intent(out)   ::  var3 
     real(r8), OPTIONAL,       intent(in)    ::  global 
    -
    + +
    -

    Description

    +

    Returns the resolution of compute domain for either the current processor or the global domain. -

    -

    +

    This is the best thing since sliced bread. All you have to do is throw some arguments in the call and the subroutine automatically slices, dices and makes julienne fries. But wait! There's more! @@ -231,15 +221,17 @@ -

    Notes

    - -

    would go here +

    + notes would go here

    - +
    +
    + + -


    +
    var = yyyroutine2( var1, var2, var3, [,bob] ) @@ -249,16 +241,16 @@ real(r8), dimension(:,:), intent(in) :: var3 real(r8), OPTIONAL, intent(in) :: bob integer, dimension(size(var2)) :: var -
    + +
    -

    Description

    +

    Returns the resolution of compute domain for either the current processor or the global domain. All input variables are not changed. Otherwise, this would be a subroutine. -

    -

    +

    This is the second-best thing since sliced bread. All you have to do is throw some arguments in the call and the function automatically deep fries. @@ -266,7 +258,7 @@ - + @@ -284,11 +276,13 @@
    var1    
    var1   the first time you changed your oil.
    var2
    -

    Notes

    - -

    would go here +

    + notes would go here

    +
    +
    + @@ -296,17 +290,24 @@

    NAMELIST

    -

    We adhere to the F90 standard of starting a namelist with an ampersand -'&' and terminating with a slash '/'. -

    -namelist / lim_obs_seq_nml /  &
    +

    We adhere to the F90 standard of starting a namelist with an ampersand +'&' and terminating with a slash '/' for all our namelist input. +Consider yourself forewarned that character strings that contain a '/' must be +enclosed in quotes to prevent them from prematurely terminating the namelist. +The namelist declaration (i.e. what follows) has a different syntax, naturally. +

    +
    +
    +namelist / model_nml /  &
         ens_size, spin_up_steps, num_steps, output_start, ens_spin_up_steps, &
         obs_freq, cov_inflate, mean_inflate, restart, add_on, noise_amp
    -
    +
    +
    -

    Discussion

    +
    -

    This namelist is read in a file called input.nml +

    +This namelist is read in a file called input.nml

    @@ -316,39 +317,53 @@ + modular physics is called. + + + + + + + + + + +
    ens_size integer [default: 0] The number of "i" and "j" rows processed each time the - modular physics is called.
    spin_up_steps integer the month
    num_steps real(r8) the day-of-month
    output_start real(r4) the hour-of-day
    ens_spin_up_steps real(r4) the minute
    obs_freq, real(r4) the second
    cov_inflate real(r8) uniformly monotonic time
    mean_inflate character(len=80) the type of calendar being used
    restart integer the type of calendar being used
    add_on integer the type of calendar being used
    noise_amp integer the type of calendar being used
    +
    +
    + @@ -356,11 +371,29 @@

    FILES

    -
    • inputfile1
    • -
    • namelistfile
    • -
    • outputfile
    • -
    +

    This is the place to discuss the files that are associated with + this module. They could be input files, output files, data files, + shell scripts ... anything. +

    + + + + + + + + + + + + + + + +
    filenamepurpose
    inputfile1to read some input
    input.nmlto read namelists
    Prior_Diag.ncthe time-history of the model state before assimilation
    Posterior_Diag.nc the time-history of the model state after assimilation
    dart_log.out [default name]the run-time diagnostic output
    dart_log.nml [default name]the record of all the namelists actually USED - + contains the default values
    + @@ -368,40 +401,45 @@

    REFERENCES

    +
      +
    • Anderson, J., T. Hoar, K. Raeder, + H. Liu, N. Collins, R. Torn, + and A. Arellano, 2009:
      + The Data Assimilation Research Testbed: A Community Facility. + Bull. Amer. Meteor. Soc., + 90, 1283-1296.
      + DOI: 10.1175/2009BAMS2618.1
    • +
    +
      +
    • none
    • +
    -

    ERROR CODES and CONDITIONS

    -
    +
    - - + - + What were you thinking? +
    RoutineMessageComment
    xxxx size of [argument] is incorrectThe size of [argument] must be 1 and 4
    The size of [argument] must be 1 and 4
    xxxx yyyyy bad judgement
    - What were you thinking?
    - - - - - -

    KNOWN BUGS

    +none at this time

    @@ -412,16 +450,25 @@

    FUTURE PLANS

    +none at this time

    - +

    PRIVATE COMPONENTS

    - +

    +N/A +

    +

    + Any routines or 'local' variables of interest may be discussed here. + There are generally lots of 'internal' functions that make life simpler, + but you don't want to make them available outside the scope of the + current module. This is the place to point them out, if you like. +

     type location_type
    @@ -430,26 +477,31 @@
     end type location_type
    -

    Discussion

    - + + - +
    -

    Contact Info, History:

    +

    Terms of Use

    - - - - - - +

    +DART software - Copyright © 2004 - 2010 UCAR.
    +This open source software is provided by UCAR, "as is",
    +without charge, subject to all terms of use at
    + +http://www.image.ucar.edu/DAReS/DART/DART_download +

    + +
    Contact: Jeff Anderson
    Revision: $Revision$
    Source: $URL$
    Change Date: $Date$
    Change history: try "svn log" or "svn diff"
    + + + + +
    Contact: DART core group
    Revision: $Revision$
    Source: $URL$
    Change Date: $Date$
    Change history:  try "svn log" or "svn diff"
    -
    - -
    Modified: DART/trunk/doc/html/cgd_cam.shtml =================================================================== --- DART/trunk/doc/html/cgd_cam.shtml 2010-01-20 16:20:06 UTC (rev 4221) +++ DART/trunk/doc/html/cgd_cam.shtml 2010-01-20 18:27:41 UTC (rev 4222) @@ -109,8 +109,8 @@

    DART software - Copyright © 2004 - 2010 UCAR.
    -This open source software is provided by UCAR, "as is",
    -without charge, subject to all terms of use at
    +This open source software is provided by UCAR, "as is",
    +without charge, subject to all terms of use at
    http://www.image.ucar.edu/DAReS/DART/DART_download

    Modified: DART/trunk/doc/html/doc.css =================================================================== --- DART/trunk/doc/html/doc.css 2010-01-20 16:20:06 UTC (rev 4221) +++ DART/trunk/doc/html/doc.css 2010-01-20 18:27:41 UTC (rev 4222) @@ -1,10 +1,10 @@ body{background:white; margin-left :5%; margin-right:5%; - font-family: Verdana, Arial, Helvetica, sans-serif; + font-family:Verdana, Arial, Helvetica, sans-serif; font-weight:normal;} -h1,h2,h3,h4,h5,h6 { margin-left: -4%; color:Black;} +h1,h2,h3,h4,h5,h6 { margin-left:-4%; color:Black; } h1{font-size:2.00em;} h2{font-size:1.50em;} @@ -63,11 +63,11 @@ width: 92%;} div.type { - background-color: rgb(225,225,225); + background-color: rgb(240,240,240); padding: 0.5em; border: solid; border-width: thin; - width: 50%;} + width: 100%;} div.errors { background-color: rgb(204,204,255); @@ -107,6 +107,10 @@ border-left-width: thin; border-color: red; } +div.center{ + margin-left: auto; + margin-right: auto; } + .indent1{ margin-left: 4%; margin-right:4%; } Modified: DART/trunk/doc/html/filter_async_modes.html =================================================================== --- DART/trunk/doc/html/filter_async_modes.html 2010-01-20 16:20:06 UTC (rev 4221) +++ DART/trunk/doc/html/filter_async_modes.html 2010-01-20 18:27:41 UTC (rev 4222) @@ -11,7 +11,7 @@
    TERMS OF USE

    -snappy DART image +snappy DART image

    @@ -114,8 +114,8 @@

    DART software - Copyright © 2004 - 2010 UCAR.
    -This open source software is provided by UCAR, "as is",
    -without charge, subject to all terms of use at
    +This open source software is provided by UCAR, "as is",
    +without charge, subject to all terms of use at
    http://www.image.ucar.edu/DAReS/DART/DART_download

    Modified: DART/trunk/doc/html/index.shtml =================================================================== --- DART/trunk/doc/html/index.shtml 2010-01-20 16:20:06 UTC (rev 4221) +++ DART/trunk/doc/html/index.shtml 2010-01-20 18:27:41 UTC (rev 4222) @@ -20,11 +20,9 @@ - @@ -628,14 +626,14 @@

    DART software - Copyright © 2004 - 2010 UCAR.
    -This open source software is provided by UCAR, "as is",
    -without charge, subject to all terms of use at
    +This open source software is provided by UCAR, "as is",
    +without charge, subject to all terms of use at
    http://www.image.ucar.edu/DAReS/DART/DART_download

    - + Modified: DART/trunk/doc/html/mpi_intro.html =================================================================== --- DART/trunk/doc/html/mpi_intro.html 2010-01-20 16:20:06 UTC (rev 4221) +++ DART/trunk/doc/html/mpi_intro.html 2010-01-20 18:27:41 UTC (rev 4222) @@ -8,13 +8,11 @@ -

    The MPI version of DART


    $Id$

    @@ -313,8 +311,8 @@

    DART software - Copyright © 2004 - 2010 UCAR.
    -This open source software is provided by UCAR, "as is",
    -without charge, subject to all terms of use at
    +This open source software is provided by UCAR, "as is",
    +without charge, subject to all terms of use at
    http://www.image.ucar.edu/DAReS/DART/DART_download

    Modified: DART/trunk/ensemble_manager/ensemble_manager_mod.html =================================================================== --- DART/trunk/ensemble_manager/ensemble_manager_mod.html 2010-01-20 16:20:06 UTC (rev 4221) +++ DART/trunk/ensemble_manager/ensemble_manager_mod.html 2010-01-20 18:27:41 UTC (rev 4222) @@ -8,7 +8,6 @@ -

    MODULE ensemble_manager_mod

    $Id$

    @@ -814,7 +812,7 @@

    NAMELIST

    We adhere to the F90 standard of starting a namelist with an ampersand '&' and terminating with a slash '/' for all our namelist input. -Consider yourself forewarned that filenames that contain a '/' must be +Consider yourself forewarned that character strings that contain a '/' must be enclosed in quotes to prevent them from prematurely terminating the namelist. The namelist declaration (i.e. what follows) has a different syntax, naturally.

    @@ -987,14 +985,14 @@

    DART software - Copyright © 2004 - 2010 UCAR.
    -This open source software is provided by UCAR, "as is",
    -without charge, subject to all terms of use at
    +This open source software is provided by UCAR, "as is",
    +without charge, subject to all terms of use at
    http://www.image.ucar.edu/DAReS/DART/DART_download

    Contact: DART core group
    Contact: DART core group
    Revision: $Revision$
    Source: $URL$
    Change Date: $Date$
    - + Modified: DART/trunk/filter/wakeup_filter.html =================================================================== --- DART/trunk/filter/wakeup_filter.html 2010-01-20 16:20:06 UTC (rev 4221) +++ DART/trunk/filter/wakeup_filter.html 2010-01-20 18:27:41 UTC (rev 4222) @@ -9,12 +9,12 @@
    -MODULES / -NAMELIST / +MODULES / +NAMELIST / FILES / REFERENCES / ERRORS / -PLANS +PLANS / TERMS OF USE
    Modified: DART/trunk/index.html =================================================================== --- DART/trunk/index.html 2010-01-20 16:20:06 UTC (rev 4221) +++ DART/trunk/index.html 2010-01-20 18:27:41 UTC (rev 4222) @@ -8,7 +8,6 @@ -
    Programs / MODELS / @@ -18,11 +17,10 @@ ALL DOCUMENTS / TERMS OF USE
    -

    -extraordinarily cool DART logo +extraordinarily cool DART logo

    DART Documentation Index

    @@ -436,14 +434,14 @@

    DART software - Copyright © 2004 - 2010 UCAR.
    -This open source software is provided by UCAR, "as is",
    -without charge, subject to all terms of use at
    +This open source software is provided by UCAR, "as is",
    +without charge, subject to all terms of use at
    http://www.image.ucar.edu/DAReS/DART/DART_download

    Contact: DART core group
    Contact: DART core group
    Revision: $Revision$
    Source: $URL$
    Change Date: $Date$
    - + Modified: DART/trunk/location/oned/location_mod.html =================================================================== --- DART/trunk/location/oned/location_mod.html 2010-01-20 16:20:06 UTC (rev 4221) @@ Diff output truncated at 40000 characters. @@ From nancy at ucar.edu Wed Jan 20 14:09:48 2010 From: nancy at ucar.edu (nancy at ucar.edu) Date: Wed, 20 Jan 2010 14:09:48 -0700 Subject: [Dart-dev] [4223] DART/trunk/models/cam/model_mod.f90: Set initial value for an array which is allocated larger, Message-ID: Revision: 4223 Author: nancy Date: 2010-01-20 14:09:48 -0700 (Wed, 20 Jan 2010) Log Message: ----------- Set initial value for an array which is allocated larger, but only the first value is set or used. The whole array ends up in the output diag netcdf files, and the random uninitialized part make it hard to bitwise comparisons. Modified Paths: -------------- DART/trunk/models/cam/model_mod.f90 -------------- next part -------------- Modified: DART/trunk/models/cam/model_mod.f90 =================================================================== --- DART/trunk/models/cam/model_mod.f90 2010-01-20 18:27:41 UTC (rev 4222) +++ DART/trunk/models/cam/model_mod.f90 2010-01-20 21:09:48 UTC (rev 4223) @@ -1390,6 +1390,7 @@ ! Initialize the storage space and return allocate( var%vals (length)) +var%vals = 0.0_r8 allocate( var%atts_names(num_atts)) allocate( var%atts_vals (num_atts)) From nancy at ucar.edu Thu Jan 21 11:01:32 2010 From: nancy at ucar.edu (nancy at ucar.edu) Date: Thu, 21 Jan 2010 11:01:32 -0700 Subject: [Dart-dev] [4224] DART/trunk/doc/CAM/junk4: removing what must have been a test file Message-ID: Revision: 4224 Author: thoar Date: 2010-01-21 11:01:32 -0700 (Thu, 21 Jan 2010) Log Message: ----------- removing what must have been a test file Removed Paths: ------------- DART/trunk/doc/CAM/junk4 -------------- next part -------------- Deleted: DART/trunk/doc/CAM/junk4 =================================================================== --- DART/trunk/doc/CAM/junk4 2010-01-20 21:09:48 UTC (rev 4223) +++ DART/trunk/doc/CAM/junk4 2010-01-21 18:01:32 UTC (rev 4224) @@ -1 +0,0 @@ -more From nancy at ucar.edu Fri Jan 22 16:24:16 2010 From: nancy at ucar.edu (nancy at ucar.edu) Date: Fri, 22 Jan 2010 16:24:16 -0700 Subject: [Dart-dev] [4225] DART/trunk/ncep_obs: Added a DART "Id" tag and made sure we did not Message-ID: Revision: 4225 Author: thoar Date: 2010-01-22 16:24:16 -0700 (Fri, 22 Jan 2010) Log Message: ----------- Added a DART "Id" tag and made sure we did not copyright anything that was not ours. Modified Paths: -------------- DART/trunk/ncep_obs/README DART/trunk/ncep_obs/create_real_obs.f90 DART/trunk/ncep_obs/prep_bufr/README DART/trunk/ncep_obs/prep_bufr/README.developer DART/trunk/ncep_obs/prep_bufr/blk_ublk/README_cwordsh DART/trunk/ncep_obs/prep_bufr/blk_ublk/cwordsh DART/trunk/ncep_obs/prep_bufr/blk_ublk/cwordsh.f DART/trunk/ncep_obs/prep_bufr/convert_bufr/README DART/trunk/ncep_obs/prep_bufr/convert_bufr/arg_test.f DART/trunk/ncep_obs/prep_bufr/convert_bufr/convert_bufr.csh DART/trunk/ncep_obs/prep_bufr/convert_bufr/grabbufr.f DART/trunk/ncep_obs/prep_bufr/convert_bufr/stat_test.f DART/trunk/ncep_obs/prep_bufr/data/README DART/trunk/ncep_obs/prep_bufr/docs/Input_Report_type.txt DART/trunk/ncep_obs/prep_bufr/docs/Instrument_type.txt DART/trunk/ncep_obs/prep_bufr/docs/LevelCat_code.txt DART/trunk/ncep_obs/prep_bufr/docs/PREPBUFR_MNEUMONIC_table DART/trunk/ncep_obs/prep_bufr/docs/Program_code.txt DART/trunk/ncep_obs/prep_bufr/docs/Quality_mark.txt DART/trunk/ncep_obs/prep_bufr/docs/README DART/trunk/ncep_obs/prep_bufr/docs/Reason_codes/PC001.txt DART/trunk/ncep_obs/prep_bufr/docs/Reason_codes/PC002.txt DART/trunk/ncep_obs/prep_bufr/docs/Reason_codes/PC004.txt DART/trunk/ncep_obs/prep_bufr/docs/Reason_codes/PC005.txt DART/trunk/ncep_obs/prep_bufr/docs/Reason_codes/PC006.txt DART/trunk/ncep_obs/prep_bufr/docs/Reason_codes/PC007.txt DART/trunk/ncep_obs/prep_bufr/docs/Reason_codes/PC008.txt DART/trunk/ncep_obs/prep_bufr/docs/Reason_codes/PC009.txt DART/trunk/ncep_obs/prep_bufr/docs/Reason_codes/PC010.txt DART/trunk/ncep_obs/prep_bufr/docs/Reason_codes/PC012.txt DART/trunk/ncep_obs/prep_bufr/docs/Report_type.txt DART/trunk/ncep_obs/prep_bufr/exe/README DART/trunk/ncep_obs/prep_bufr/install.sh DART/trunk/ncep_obs/prep_bufr/lib/README_BUFRLIB DART/trunk/ncep_obs/prep_bufr/lib/addate.f DART/trunk/ncep_obs/prep_bufr/lib/adn30.f DART/trunk/ncep_obs/prep_bufr/lib/bfrini.f DART/trunk/ncep_obs/prep_bufr/lib/bort.f DART/trunk/ncep_obs/prep_bufr/lib/bort2.f DART/trunk/ncep_obs/prep_bufr/lib/bort_exit.c DART/trunk/ncep_obs/prep_bufr/lib/bufrlib.h DART/trunk/ncep_obs/prep_bufr/lib/bufrlib.prm DART/trunk/ncep_obs/prep_bufr/lib/cadn30.f DART/trunk/ncep_obs/prep_bufr/lib/capit.f DART/trunk/ncep_obs/prep_bufr/lib/ccbfl.c DART/trunk/ncep_obs/prep_bufr/lib/chekstab.f DART/trunk/ncep_obs/prep_bufr/lib/chrtrn.f DART/trunk/ncep_obs/prep_bufr/lib/chrtrna.f DART/trunk/ncep_obs/prep_bufr/lib/cktaba.f DART/trunk/ncep_obs/prep_bufr/lib/closbf.f DART/trunk/ncep_obs/prep_bufr/lib/closmg.f DART/trunk/ncep_obs/prep_bufr/lib/cmpmsg.f DART/trunk/ncep_obs/prep_bufr/lib/cmsgini.f DART/trunk/ncep_obs/prep_bufr/lib/cnved4.f DART/trunk/ncep_obs/prep_bufr/lib/cobfl.c DART/trunk/ncep_obs/prep_bufr/lib/conwin.f DART/trunk/ncep_obs/prep_bufr/lib/copybf.f DART/trunk/ncep_obs/prep_bufr/lib/copymg.f DART/trunk/ncep_obs/prep_bufr/lib/copysb.f DART/trunk/ncep_obs/prep_bufr/lib/cpbfdx.f DART/trunk/ncep_obs/prep_bufr/lib/cpymem.f DART/trunk/ncep_obs/prep_bufr/lib/cpyupd.f DART/trunk/ncep_obs/prep_bufr/lib/crbmg.c DART/trunk/ncep_obs/prep_bufr/lib/cwbmg.c DART/trunk/ncep_obs/prep_bufr/lib/datebf.f DART/trunk/ncep_obs/prep_bufr/lib/datelen.f DART/trunk/ncep_obs/prep_bufr/lib/digit.f DART/trunk/ncep_obs/prep_bufr/lib/drfini.f DART/trunk/ncep_obs/prep_bufr/lib/drstpl.f DART/trunk/ncep_obs/prep_bufr/lib/dumpbf.f DART/trunk/ncep_obs/prep_bufr/lib/dxdump.f DART/trunk/ncep_obs/prep_bufr/lib/dxinit.f DART/trunk/ncep_obs/prep_bufr/lib/dxmini.f DART/trunk/ncep_obs/prep_bufr/lib/elemdx.f DART/trunk/ncep_obs/prep_bufr/lib/getabdb.f DART/trunk/ncep_obs/prep_bufr/lib/getlens.f DART/trunk/ncep_obs/prep_bufr/lib/gets1loc.f DART/trunk/ncep_obs/prep_bufr/lib/getwin.f DART/trunk/ncep_obs/prep_bufr/lib/i4dy.f DART/trunk/ncep_obs/prep_bufr/lib/ichkstr.f DART/trunk/ncep_obs/prep_bufr/lib/icopysb.f DART/trunk/ncep_obs/prep_bufr/lib/idn30.f DART/trunk/ncep_obs/prep_bufr/lib/ifbget.f DART/trunk/ncep_obs/prep_bufr/lib/ifxy.f DART/trunk/ncep_obs/prep_bufr/lib/igetdate.f DART/trunk/ncep_obs/prep_bufr/lib/inctab.f DART/trunk/ncep_obs/prep_bufr/lib/invcon.f DART/trunk/ncep_obs/prep_bufr/lib/invmrg.f DART/trunk/ncep_obs/prep_bufr/lib/invtag.f DART/trunk/ncep_obs/prep_bufr/lib/invwin.f DART/trunk/ncep_obs/prep_bufr/lib/ipkm.f DART/trunk/ncep_obs/prep_bufr/lib/ireadft.f DART/trunk/ncep_obs/prep_bufr/lib/ireadibm.f DART/trunk/ncep_obs/prep_bufr/lib/ireadmg.f DART/trunk/ncep_obs/prep_bufr/lib/ireadmm.f DART/trunk/ncep_obs/prep_bufr/lib/ireadns.f DART/trunk/ncep_obs/prep_bufr/lib/ireadsb.f DART/trunk/ncep_obs/prep_bufr/lib/irev.f DART/trunk/ncep_obs/prep_bufr/lib/istdesc.f DART/trunk/ncep_obs/prep_bufr/lib/iupb.f DART/trunk/ncep_obs/prep_bufr/lib/iupbs01.f DART/trunk/ncep_obs/prep_bufr/lib/iupbs1.f DART/trunk/ncep_obs/prep_bufr/lib/iupm.f DART/trunk/ncep_obs/prep_bufr/lib/iupvs01.f DART/trunk/ncep_obs/prep_bufr/lib/iupvs1.f DART/trunk/ncep_obs/prep_bufr/lib/jstchr.f DART/trunk/ncep_obs/prep_bufr/lib/jstnum.f DART/trunk/ncep_obs/prep_bufr/lib/ljust.f DART/trunk/ncep_obs/prep_bufr/lib/lmsg.f DART/trunk/ncep_obs/prep_bufr/lib/lstjpb.f DART/trunk/ncep_obs/prep_bufr/lib/lstrpc.f DART/trunk/ncep_obs/prep_bufr/lib/lstrps.f DART/trunk/ncep_obs/prep_bufr/lib/makestab.f DART/trunk/ncep_obs/prep_bufr/lib/maxout.f DART/trunk/ncep_obs/prep_bufr/lib/mesgbc.f DART/trunk/ncep_obs/prep_bufr/lib/mesgbf.f DART/trunk/ncep_obs/prep_bufr/lib/minimg.f DART/trunk/ncep_obs/prep_bufr/lib/mova2i.f DART/trunk/ncep_obs/prep_bufr/lib/mrginv.f DART/trunk/ncep_obs/prep_bufr/lib/msgini.f DART/trunk/ncep_obs/prep_bufr/lib/msgupd.f DART/trunk/ncep_obs/prep_bufr/lib/msgwrt.f DART/trunk/ncep_obs/prep_bufr/lib/mvb.f DART/trunk/ncep_obs/prep_bufr/lib/nemock.f DART/trunk/ncep_obs/prep_bufr/lib/nemtab.f DART/trunk/ncep_obs/prep_bufr/lib/nemtba.f DART/trunk/ncep_obs/prep_bufr/lib/nemtbax.f DART/trunk/ncep_obs/prep_bufr/lib/nemtbb.f DART/trunk/ncep_obs/prep_bufr/lib/nemtbd.f DART/trunk/ncep_obs/prep_bufr/lib/nenuaa.f DART/trunk/ncep_obs/prep_bufr/lib/nenubd.f DART/trunk/ncep_obs/prep_bufr/lib/nevn.f DART/trunk/ncep_obs/prep_bufr/lib/newwin.f DART/trunk/ncep_obs/prep_bufr/lib/nmbyt.f DART/trunk/ncep_obs/prep_bufr/lib/nmsub.f DART/trunk/ncep_obs/prep_bufr/lib/nmwrd.f DART/trunk/ncep_obs/prep_bufr/lib/numbck.f DART/trunk/ncep_obs/prep_bufr/lib/numtab.f DART/trunk/ncep_obs/prep_bufr/lib/numtbd.f DART/trunk/ncep_obs/prep_bufr/lib/nvnwin.f DART/trunk/ncep_obs/prep_bufr/lib/nwords.f DART/trunk/ncep_obs/prep_bufr/lib/nxtwin.f DART/trunk/ncep_obs/prep_bufr/lib/openbf.f DART/trunk/ncep_obs/prep_bufr/lib/openbt.f DART/trunk/ncep_obs/prep_bufr/lib/openmb.f DART/trunk/ncep_obs/prep_bufr/lib/openmg.f DART/trunk/ncep_obs/prep_bufr/lib/ovrbs1.f DART/trunk/ncep_obs/prep_bufr/lib/pad.f DART/trunk/ncep_obs/prep_bufr/lib/padmsg.f DART/trunk/ncep_obs/prep_bufr/lib/parseq.f DART/trunk/ncep_obs/prep_bufr/lib/parusr.f DART/trunk/ncep_obs/prep_bufr/lib/parutg.f DART/trunk/ncep_obs/prep_bufr/lib/pkb.f DART/trunk/ncep_obs/prep_bufr/lib/pkbs1.f DART/trunk/ncep_obs/prep_bufr/lib/pkc.f DART/trunk/ncep_obs/prep_bufr/lib/pkftbv.f DART/trunk/ncep_obs/prep_bufr/lib/pktdd.f DART/trunk/ncep_obs/prep_bufr/lib/pkvs01.f DART/trunk/ncep_obs/prep_bufr/lib/pkvs1.f DART/trunk/ncep_obs/prep_bufr/lib/posapn.f DART/trunk/ncep_obs/prep_bufr/lib/posapx.f DART/trunk/ncep_obs/prep_bufr/lib/rbytes.c DART/trunk/ncep_obs/prep_bufr/lib/rcstpl.f DART/trunk/ncep_obs/prep_bufr/lib/rdbfdx.f DART/trunk/ncep_obs/prep_bufr/lib/rdcmps.f DART/trunk/ncep_obs/prep_bufr/lib/rdmemm.f DART/trunk/ncep_obs/prep_bufr/lib/rdmems.f DART/trunk/ncep_obs/prep_bufr/lib/rdmgsb.f DART/trunk/ncep_obs/prep_bufr/lib/rdmsgb.f DART/trunk/ncep_obs/prep_bufr/lib/rdmsgw.f DART/trunk/ncep_obs/prep_bufr/lib/rdtree.f DART/trunk/ncep_obs/prep_bufr/lib/rdusdx.f DART/trunk/ncep_obs/prep_bufr/lib/readdx.f DART/trunk/ncep_obs/prep_bufr/lib/readerme.f DART/trunk/ncep_obs/prep_bufr/lib/readft.f DART/trunk/ncep_obs/prep_bufr/lib/readibm.f DART/trunk/ncep_obs/prep_bufr/lib/readlc.f DART/trunk/ncep_obs/prep_bufr/lib/readmg.f DART/trunk/ncep_obs/prep_bufr/lib/readmm.f DART/trunk/ncep_obs/prep_bufr/lib/readns.f DART/trunk/ncep_obs/prep_bufr/lib/readsb.f DART/trunk/ncep_obs/prep_bufr/lib/restd.c DART/trunk/ncep_obs/prep_bufr/lib/rewnbf.f DART/trunk/ncep_obs/prep_bufr/lib/rjust.f DART/trunk/ncep_obs/prep_bufr/lib/rsvfvm.f DART/trunk/ncep_obs/prep_bufr/lib/seqsdx.f DART/trunk/ncep_obs/prep_bufr/lib/status.f DART/trunk/ncep_obs/prep_bufr/lib/stdmsg.f DART/trunk/ncep_obs/prep_bufr/lib/stndrd.f DART/trunk/ncep_obs/prep_bufr/lib/strcln.f DART/trunk/ncep_obs/prep_bufr/lib/string.f DART/trunk/ncep_obs/prep_bufr/lib/strnum.f DART/trunk/ncep_obs/prep_bufr/lib/strsuc.f DART/trunk/ncep_obs/prep_bufr/lib/subupd.f DART/trunk/ncep_obs/prep_bufr/lib/tabent.f DART/trunk/ncep_obs/prep_bufr/lib/tabsub.f DART/trunk/ncep_obs/prep_bufr/lib/trybump.f DART/trunk/ncep_obs/prep_bufr/lib/ufbcnt.f DART/trunk/ncep_obs/prep_bufr/lib/ufbcpy.f DART/trunk/ncep_obs/prep_bufr/lib/ufbcup.f DART/trunk/ncep_obs/prep_bufr/lib/ufbdmp.f DART/trunk/ncep_obs/prep_bufr/lib/ufbevn.f DART/trunk/ncep_obs/prep_bufr/lib/ufbget.f DART/trunk/ncep_obs/prep_bufr/lib/ufbin3.f DART/trunk/ncep_obs/prep_bufr/lib/ufbint.f DART/trunk/ncep_obs/prep_bufr/lib/ufbinx.f DART/trunk/ncep_obs/prep_bufr/lib/ufbmem.f DART/trunk/ncep_obs/prep_bufr/lib/ufbmms.f DART/trunk/ncep_obs/prep_bufr/lib/ufbmns.f DART/trunk/ncep_obs/prep_bufr/lib/ufbovr.f DART/trunk/ncep_obs/prep_bufr/lib/ufbpos.f DART/trunk/ncep_obs/prep_bufr/lib/ufbqcd.f DART/trunk/ncep_obs/prep_bufr/lib/ufbqcp.f DART/trunk/ncep_obs/prep_bufr/lib/ufbrep.f DART/trunk/ncep_obs/prep_bufr/lib/ufbrms.f DART/trunk/ncep_obs/prep_bufr/lib/ufbrp.f DART/trunk/ncep_obs/prep_bufr/lib/ufbrw.f DART/trunk/ncep_obs/prep_bufr/lib/ufbseq.f DART/trunk/ncep_obs/prep_bufr/lib/ufbsp.f DART/trunk/ncep_obs/prep_bufr/lib/ufbstp.f DART/trunk/ncep_obs/prep_bufr/lib/ufbtab.f DART/trunk/ncep_obs/prep_bufr/lib/ufbtam.f DART/trunk/ncep_obs/prep_bufr/lib/ufdump.f DART/trunk/ncep_obs/prep_bufr/lib/upb.f DART/trunk/ncep_obs/prep_bufr/lib/upbb.f DART/trunk/ncep_obs/prep_bufr/lib/upc.f DART/trunk/ncep_obs/prep_bufr/lib/upds3.f DART/trunk/ncep_obs/prep_bufr/lib/upftbv.f DART/trunk/ncep_obs/prep_bufr/lib/uptdd.f DART/trunk/ncep_obs/prep_bufr/lib/usrtpl.f DART/trunk/ncep_obs/prep_bufr/lib/valx.f DART/trunk/ncep_obs/prep_bufr/lib/wrcmps.f DART/trunk/ncep_obs/prep_bufr/lib/wrdesc.c DART/trunk/ncep_obs/prep_bufr/lib/wrdlen.f DART/trunk/ncep_obs/prep_bufr/lib/writca.f DART/trunk/ncep_obs/prep_bufr/lib/writcp.f DART/trunk/ncep_obs/prep_bufr/lib/writdx.f DART/trunk/ncep_obs/prep_bufr/lib/writlc.f DART/trunk/ncep_obs/prep_bufr/lib/writsa.f DART/trunk/ncep_obs/prep_bufr/lib/writsb.f DART/trunk/ncep_obs/prep_bufr/lib/wrtree.f DART/trunk/ncep_obs/prep_bufr/lib/wtstat.f DART/trunk/ncep_obs/prep_bufr/src/prepbufr.f DART/trunk/ncep_obs/prep_bufr/src/prepbufr_03Z.f Property Changed: ---------------- DART/trunk/ncep_obs/prep_bufr/blk_ublk/README_cwordsh DART/trunk/ncep_obs/prep_bufr/convert_bufr/README DART/trunk/ncep_obs/prep_bufr/data/README DART/trunk/ncep_obs/prep_bufr/docs/Input_Report_type.txt DART/trunk/ncep_obs/prep_bufr/docs/Instrument_type.txt DART/trunk/ncep_obs/prep_bufr/docs/LevelCat_code.txt DART/trunk/ncep_obs/prep_bufr/docs/PREPBUFR_MNEUMONIC_table DART/trunk/ncep_obs/prep_bufr/docs/Program_code.txt DART/trunk/ncep_obs/prep_bufr/docs/Quality_mark.txt DART/trunk/ncep_obs/prep_bufr/docs/README DART/trunk/ncep_obs/prep_bufr/docs/Reason_codes/PC001.txt DART/trunk/ncep_obs/prep_bufr/docs/Reason_codes/PC002.txt DART/trunk/ncep_obs/prep_bufr/docs/Reason_codes/PC004.txt DART/trunk/ncep_obs/prep_bufr/docs/Reason_codes/PC005.txt DART/trunk/ncep_obs/prep_bufr/docs/Reason_codes/PC006.txt DART/trunk/ncep_obs/prep_bufr/docs/Reason_codes/PC007.txt DART/trunk/ncep_obs/prep_bufr/docs/Reason_codes/PC008.txt DART/trunk/ncep_obs/prep_bufr/docs/Reason_codes/PC009.txt DART/trunk/ncep_obs/prep_bufr/docs/Reason_codes/PC010.txt DART/trunk/ncep_obs/prep_bufr/docs/Reason_codes/PC012.txt DART/trunk/ncep_obs/prep_bufr/docs/Report_type.txt DART/trunk/ncep_obs/prep_bufr/exe/README DART/trunk/ncep_obs/prep_bufr/lib/bufrlib.prm -------------- next part -------------- Modified: DART/trunk/ncep_obs/README =================================================================== --- DART/trunk/ncep_obs/README 2010-01-21 18:01:32 UTC (rev 4224) +++ DART/trunk/ncep_obs/README 2010-01-22 23:24:16 UTC (rev 4225) @@ -1,3 +1,8 @@ +# DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +# provided by UCAR, "as is", without charge, subject to all terms of use at +# http://www.image.ucar.edu/DAReS/DART/DART_download +# +# DART $Id: $ This directory contains source for two programs that convert NCEP BUFR files, which contain observational data, into DART obs_seq file format. Modified: DART/trunk/ncep_obs/create_real_obs.f90 =================================================================== --- DART/trunk/ncep_obs/create_real_obs.f90 2010-01-21 18:01:32 UTC (rev 4224) +++ DART/trunk/ncep_obs/create_real_obs.f90 2010-01-22 23:24:16 UTC (rev 4225) @@ -1,7 +1,6 @@ -! Data Assimilation Research Testbed -- DART -! Copyright 2004-2007, Data Assimilation Research Section -! University Corporation for Atmospheric Research -! Licensed under the GPL -- www.gpl.org/licenses/gpl.html +! DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +! provided by UCAR, "as is", without charge, subject to all terms of use at +! http://www.image.ucar.edu/DAReS/DART/DART_download program create_real_obs Modified: DART/trunk/ncep_obs/prep_bufr/README =================================================================== --- DART/trunk/ncep_obs/prep_bufr/README 2010-01-21 18:01:32 UTC (rev 4224) +++ DART/trunk/ncep_obs/prep_bufr/README 2010-01-22 23:24:16 UTC (rev 4225) @@ -1,3 +1,4 @@ +# DART $Id: $ See the prep_bufr.html file for detailed instructions on what is in this directory and how to build and run it. Modified: DART/trunk/ncep_obs/prep_bufr/README.developer =================================================================== --- DART/trunk/ncep_obs/prep_bufr/README.developer 2010-01-21 18:01:32 UTC (rev 4224) +++ DART/trunk/ncep_obs/prep_bufr/README.developer 2010-01-22 23:24:16 UTC (rev 4225) @@ -1,5 +1,5 @@ +# DART $Id$ - ====================================================================== WARNING: Modified: DART/trunk/ncep_obs/prep_bufr/blk_ublk/README_cwordsh =================================================================== --- DART/trunk/ncep_obs/prep_bufr/blk_ublk/README_cwordsh 2010-01-21 18:01:32 UTC (rev 4224) +++ DART/trunk/ncep_obs/prep_bufr/blk_ublk/README_cwordsh 2010-01-22 23:24:16 UTC (rev 4225) @@ -1,3 +1,5 @@ +# DART $Id$ + This file explains how to compile and run the NCEP cwordsh utility, which is described in detail at http://www.nco.ncep.noaa.gov/sib/decoders/BUFRLIB/cwordsh/, @@ -49,4 +51,3 @@ 'cwordsh.x block in out') plus, each string must be on a separate line. this does *not* work either: echo 'block in out' | ./cwordsh.x - Property changes on: DART/trunk/ncep_obs/prep_bufr/blk_ublk/README_cwordsh ___________________________________________________________________ Modified: svn:keywords - Date Author Revision HeadURL Id + Date Revision Author HeadURL Id Modified: DART/trunk/ncep_obs/prep_bufr/blk_ublk/cwordsh =================================================================== --- DART/trunk/ncep_obs/prep_bufr/blk_ublk/cwordsh 2010-01-21 18:01:32 UTC (rev 4224) +++ DART/trunk/ncep_obs/prep_bufr/blk_ublk/cwordsh 2010-01-22 23:24:16 UTC (rev 4225) @@ -1,4 +1,4 @@ -# $Id$ +# DART $Id$ # ------------------------------------------------------------------------ # This script will FORTRAN block or unblock BUFR files on a number of # standard computing platforms. Stictly speaking, real BUFR files are Modified: DART/trunk/ncep_obs/prep_bufr/blk_ublk/cwordsh.f =================================================================== --- DART/trunk/ncep_obs/prep_bufr/blk_ublk/cwordsh.f 2010-01-21 18:01:32 UTC (rev 4224) +++ DART/trunk/ncep_obs/prep_bufr/blk_ublk/cwordsh.f 2010-01-22 23:24:16 UTC (rev 4225) @@ -18,6 +18,8 @@ C USE OF APPLICATION PROGRAM GRABBUFR) AND TO C REMOVE DIRECT LINKS TO BUFRLIB COMMON BLOCKS C +C DART $Id$ +C C USAGE: C INPUT FILES: C UNIT 05 - STANDARD INPUT (OPERATION TYPE, INPUT FILENAME, Modified: DART/trunk/ncep_obs/prep_bufr/convert_bufr/README =================================================================== --- DART/trunk/ncep_obs/prep_bufr/convert_bufr/README 2010-01-21 18:01:32 UTC (rev 4224) +++ DART/trunk/ncep_obs/prep_bufr/convert_bufr/README 2010-01-22 23:24:16 UTC (rev 4225) @@ -1,4 +1,6 @@ +# DART $Id$ + The programs in this directory are used to convert binary BUFR files into a format that works on Intel-processor based machines (e.g. Linux clusters, SGI Altix systems). They are not needed on IBM Power systems. Property changes on: DART/trunk/ncep_obs/prep_bufr/convert_bufr/README ___________________________________________________________________ Added: svn:keywords + Date Revision Author HeadURL Id Modified: DART/trunk/ncep_obs/prep_bufr/convert_bufr/arg_test.f =================================================================== --- DART/trunk/ncep_obs/prep_bufr/convert_bufr/arg_test.f 2010-01-21 18:01:32 UTC (rev 4224) +++ DART/trunk/ncep_obs/prep_bufr/convert_bufr/arg_test.f 2010-01-22 23:24:16 UTC (rev 4225) @@ -10,6 +10,8 @@ C C PROGRAM HISTORY LOG: C +C DART $Id$ +C C USAGE: arg_test inputBUFRfile ouputBUFRfile C C INPUT FILES: Modified: DART/trunk/ncep_obs/prep_bufr/convert_bufr/convert_bufr.csh =================================================================== --- DART/trunk/ncep_obs/prep_bufr/convert_bufr/convert_bufr.csh 2010-01-21 18:01:32 UTC (rev 4224) +++ DART/trunk/ncep_obs/prep_bufr/convert_bufr/convert_bufr.csh 2010-01-22 23:24:16 UTC (rev 4225) @@ -1,9 +1,5 @@ #!/bin/csh # -# DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is -# provided by UCAR, "as is", without charge, subject to all terms of use at -# http://www.image.ucar.edu/DAReS/DART/DART_download -# # $Id$ set FC = ifort Modified: DART/trunk/ncep_obs/prep_bufr/convert_bufr/grabbufr.f =================================================================== --- DART/trunk/ncep_obs/prep_bufr/convert_bufr/grabbufr.f 2010-01-21 18:01:32 UTC (rev 4224) +++ DART/trunk/ncep_obs/prep_bufr/convert_bufr/grabbufr.f 2010-01-22 23:24:16 UTC (rev 4225) @@ -15,6 +15,8 @@ C 1999-12-22 Gilbert - Made cbuf array allocatable so that there C would be no hard wired size limit. C +C DART $Id$ +C C USAGE: grabbufr inputBUFRfile ouputBUFRfile C C INPUT FILES: Modified: DART/trunk/ncep_obs/prep_bufr/convert_bufr/stat_test.f =================================================================== --- DART/trunk/ncep_obs/prep_bufr/convert_bufr/stat_test.f 2010-01-21 18:01:32 UTC (rev 4224) +++ DART/trunk/ncep_obs/prep_bufr/convert_bufr/stat_test.f 2010-01-22 23:24:16 UTC (rev 4225) @@ -16,6 +16,8 @@ C PROGRAM HISTORY LOG: C 20067-07-24 collins C +C DART $Id$ +C C USAGE: stat_test inputBUFRfile C C INPUT FILES: Modified: DART/trunk/ncep_obs/prep_bufr/data/README =================================================================== --- DART/trunk/ncep_obs/prep_bufr/data/README 2010-01-21 18:01:32 UTC (rev 4224) +++ DART/trunk/ncep_obs/prep_bufr/data/README 2010-01-22 23:24:16 UTC (rev 4225) @@ -1 +1,3 @@ -# This directory needs to exist (but can be empty) +# DART $Id$ + +This directory needs to exist (but can be empty) Property changes on: DART/trunk/ncep_obs/prep_bufr/data/README ___________________________________________________________________ Modified: svn:keywords - Date Author Revision HeadURL Id + Date Revision Author HeadURL Id Modified: DART/trunk/ncep_obs/prep_bufr/docs/Input_Report_type.txt =================================================================== --- DART/trunk/ncep_obs/prep_bufr/docs/Input_Report_type.txt 2010-01-21 18:01:32 UTC (rev 4224) +++ DART/trunk/ncep_obs/prep_bufr/docs/Input_Report_type.txt 2010-01-22 23:24:16 UTC (rev 4225) @@ -1,3 +1,5 @@ +# DART $ Id: $ + (T29) Table 6. Code table for input report types (last revised 7/10/2001). Property changes on: DART/trunk/ncep_obs/prep_bufr/docs/Input_Report_type.txt ___________________________________________________________________ Modified: svn:keywords - Date Author Revision HeadURL Id + Date Revision Author HeadURL Id Modified: DART/trunk/ncep_obs/prep_bufr/docs/Instrument_type.txt =================================================================== --- DART/trunk/ncep_obs/prep_bufr/docs/Instrument_type.txt 2010-01-21 18:01:32 UTC (rev 4224) +++ DART/trunk/ncep_obs/prep_bufr/docs/Instrument_type.txt 2010-01-22 23:24:16 UTC (rev 4225) @@ -1,3 +1,5 @@ +# DART $ Id: $ + (ITP) Code Fig. &| Description |Tbl. R.2a Property changes on: DART/trunk/ncep_obs/prep_bufr/docs/Instrument_type.txt ___________________________________________________________________ Modified: svn:keywords - Date Author Revision HeadURL Id + Date Revision Author HeadURL Id Modified: DART/trunk/ncep_obs/prep_bufr/docs/LevelCat_code.txt =================================================================== --- DART/trunk/ncep_obs/prep_bufr/docs/LevelCat_code.txt 2010-01-21 18:01:32 UTC (rev 4224) +++ DART/trunk/ncep_obs/prep_bufr/docs/LevelCat_code.txt 2010-01-22 23:24:16 UTC (rev 4225) @@ -1,3 +1,5 @@ +# DART $Id : $ + (cat) PREPBUFR data level category (local descriptor 0-01-194) defined as: Property changes on: DART/trunk/ncep_obs/prep_bufr/docs/LevelCat_code.txt ___________________________________________________________________ Modified: svn:keywords - Date Author Revision HeadURL Id + Date Revision Author HeadURL Id Modified: DART/trunk/ncep_obs/prep_bufr/docs/PREPBUFR_MNEUMONIC_table =================================================================== --- DART/trunk/ncep_obs/prep_bufr/docs/PREPBUFR_MNEUMONIC_table 2010-01-21 18:01:32 UTC (rev 4224) +++ DART/trunk/ncep_obs/prep_bufr/docs/PREPBUFR_MNEUMONIC_table 2010-01-22 23:24:16 UTC (rev 4225) @@ -1,3 +1,4 @@ +# DART $Id$ .------------------------------------------------------------------------------. | ------------ USER DEFINITIONS FOR TABLE-A TABLE-B TABLE D -------------- | |------------------------------------------------------------------------------| Property changes on: DART/trunk/ncep_obs/prep_bufr/docs/PREPBUFR_MNEUMONIC_table ___________________________________________________________________ Modified: svn:keywords - Date Author Revision HeadURL Id + Date Revision Author HeadURL Id Modified: DART/trunk/ncep_obs/prep_bufr/docs/Program_code.txt =================================================================== --- DART/trunk/ncep_obs/prep_bufr/docs/Program_code.txt 2010-01-21 18:01:32 UTC (rev 4224) +++ DART/trunk/ncep_obs/prep_bufr/docs/Program_code.txt 2010-01-22 23:24:16 UTC (rev 4225) @@ -1,3 +1,4 @@ +# DART $Id$ (pc) MNEMONIC NUMBER DESCRIPTION Property changes on: DART/trunk/ncep_obs/prep_bufr/docs/Program_code.txt ___________________________________________________________________ Modified: svn:keywords - Date Author Revision HeadURL Id + Date Revision Author HeadURL Id Modified: DART/trunk/ncep_obs/prep_bufr/docs/Quality_mark.txt =================================================================== --- DART/trunk/ncep_obs/prep_bufr/docs/Quality_mark.txt 2010-01-21 18:01:32 UTC (rev 4224) +++ DART/trunk/ncep_obs/prep_bufr/docs/Quality_mark.txt 2010-01-22 23:24:16 UTC (rev 4225) @@ -1,3 +1,4 @@ +# DART $Id$ (qm) Table 7. Code table for observation quality markers (last revised 1/30/2002). Property changes on: DART/trunk/ncep_obs/prep_bufr/docs/Quality_mark.txt ___________________________________________________________________ Modified: svn:keywords - Date Author Revision HeadURL Id + Date Revision Author HeadURL Id Modified: DART/trunk/ncep_obs/prep_bufr/docs/README =================================================================== --- DART/trunk/ncep_obs/prep_bufr/docs/README 2010-01-21 18:01:32 UTC (rev 4224) +++ DART/trunk/ncep_obs/prep_bufr/docs/README 2010-01-22 23:24:16 UTC (rev 4225) @@ -1,3 +1,5 @@ +# DART $Id$ + Last updated 07/23/2003 for: ds090.0 (NCEP/NCAR Global Reanalysis Products, 6-hrly, monthly 1948jan01-continuing) Property changes on: DART/trunk/ncep_obs/prep_bufr/docs/README ___________________________________________________________________ Modified: svn:keywords - Date Author Revision HeadURL Id + Date Revision Author HeadURL Id Modified: DART/trunk/ncep_obs/prep_bufr/docs/Reason_codes/PC001.txt =================================================================== --- DART/trunk/ncep_obs/prep_bufr/docs/Reason_codes/PC001.txt 2010-01-21 18:01:32 UTC (rev 4224) +++ DART/trunk/ncep_obs/prep_bufr/docs/Reason_codes/PC001.txt 2010-01-22 23:24:16 UTC (rev 4225) @@ -1,6 +1,9 @@ +# DART $Id$ + Table 8.a Reason codes associated with step "PREPRO", program code 001 (last revised 5/30/2001). + NOTE 1: FOR ALL DATA TYPES EXCEPT TOVS AND GOES RETRIEVALS, THE ENCODED QUALITY MARKER FOR SPECIFIC HUMIDITY (QQM) IS SET Property changes on: DART/trunk/ncep_obs/prep_bufr/docs/Reason_codes/PC001.txt ___________________________________________________________________ Modified: svn:keywords - Date Author Revision HeadURL Id + Date Revision Author HeadURL Id Modified: DART/trunk/ncep_obs/prep_bufr/docs/Reason_codes/PC002.txt =================================================================== --- DART/trunk/ncep_obs/prep_bufr/docs/Reason_codes/PC002.txt 2010-01-21 18:01:32 UTC (rev 4224) +++ DART/trunk/ncep_obs/prep_bufr/docs/Reason_codes/PC002.txt 2010-01-22 23:24:16 UTC (rev 4225) @@ -1,3 +1,5 @@ +# DART $Id$ + Table 9. Reason codes associated with step "SYNDATA", program code 002 (last revised 10/26/2001). Property changes on: DART/trunk/ncep_obs/prep_bufr/docs/Reason_codes/PC002.txt ___________________________________________________________________ Modified: svn:keywords - Date Author Revision HeadURL Id + Date Revision Author HeadURL Id Modified: DART/trunk/ncep_obs/prep_bufr/docs/Reason_codes/PC004.txt =================================================================== --- DART/trunk/ncep_obs/prep_bufr/docs/Reason_codes/PC004.txt 2010-01-21 18:01:32 UTC (rev 4224) +++ DART/trunk/ncep_obs/prep_bufr/docs/Reason_codes/PC004.txt 2010-01-22 23:24:16 UTC (rev 4225) @@ -1,3 +1,4 @@ +# DART $Id$ Table 10. Reason codes associated with step "PREVENT", program code 004 (last revised 5/30/2001). Property changes on: DART/trunk/ncep_obs/prep_bufr/docs/Reason_codes/PC004.txt ___________________________________________________________________ Modified: svn:keywords - Date Author Revision HeadURL Id + Date Revision Author HeadURL Id Modified: DART/trunk/ncep_obs/prep_bufr/docs/Reason_codes/PC005.txt =================================================================== --- DART/trunk/ncep_obs/prep_bufr/docs/Reason_codes/PC005.txt 2010-01-21 18:01:32 UTC (rev 4224) +++ DART/trunk/ncep_obs/prep_bufr/docs/Reason_codes/PC005.txt 2010-01-22 23:24:16 UTC (rev 4225) @@ -1,3 +1,4 @@ +# DART $Id$ Table 11. Reason codes associated with step "CQCHT", program code 005 (last revised 5/30/2001). Property changes on: DART/trunk/ncep_obs/prep_bufr/docs/Reason_codes/PC005.txt ___________________________________________________________________ Modified: svn:keywords - Date Author Revision HeadURL Id + Date Revision Author HeadURL Id Modified: DART/trunk/ncep_obs/prep_bufr/docs/Reason_codes/PC006.txt =================================================================== --- DART/trunk/ncep_obs/prep_bufr/docs/Reason_codes/PC006.txt 2010-01-21 18:01:32 UTC (rev 4224) +++ DART/trunk/ncep_obs/prep_bufr/docs/Reason_codes/PC006.txt 2010-01-22 23:24:16 UTC (rev 4225) @@ -1,3 +1,4 @@ +# DART $Id$ Table 12. Reason codes associated with step "RADCOR", program code 006 (last revised 5/30/2001). Property changes on: DART/trunk/ncep_obs/prep_bufr/docs/Reason_codes/PC006.txt ___________________________________________________________________ Modified: svn:keywords - Date Author Revision HeadURL Id + Date Revision Author HeadURL Id Modified: DART/trunk/ncep_obs/prep_bufr/docs/Reason_codes/PC007.txt =================================================================== --- DART/trunk/ncep_obs/prep_bufr/docs/Reason_codes/PC007.txt 2010-01-21 18:01:32 UTC (rev 4224) +++ DART/trunk/ncep_obs/prep_bufr/docs/Reason_codes/PC007.txt 2010-01-22 23:24:16 UTC (rev 4225) @@ -1,3 +1,4 @@ +# DART $Id$ Table 13. Reason codes associated with step "PREPACQC", program code 007 (last revised 5/30/2001). Property changes on: DART/trunk/ncep_obs/prep_bufr/docs/Reason_codes/PC007.txt ___________________________________________________________________ Modified: svn:keywords - Date Author Revision HeadURL Id + Date Revision Author HeadURL Id Modified: DART/trunk/ncep_obs/prep_bufr/docs/Reason_codes/PC008.txt =================================================================== --- DART/trunk/ncep_obs/prep_bufr/docs/Reason_codes/PC008.txt 2010-01-21 18:01:32 UTC (rev 4224) +++ DART/trunk/ncep_obs/prep_bufr/docs/Reason_codes/PC008.txt 2010-01-22 23:24:16 UTC (rev 4225) @@ -1,3 +1,4 @@ +# DART $Id$ Table 14. Reason codes associated with step "VIRTMP", program code 008 (last revised 5/30/2001). Property changes on: DART/trunk/ncep_obs/prep_bufr/docs/Reason_codes/PC008.txt ___________________________________________________________________ Modified: svn:keywords - Date Author Revision HeadURL Id + Date Revision Author HeadURL Id Modified: DART/trunk/ncep_obs/prep_bufr/docs/Reason_codes/PC009.txt =================================================================== --- DART/trunk/ncep_obs/prep_bufr/docs/Reason_codes/PC009.txt 2010-01-21 18:01:32 UTC (rev 4224) +++ DART/trunk/ncep_obs/prep_bufr/docs/Reason_codes/PC009.txt 2010-01-22 23:24:16 UTC (rev 4225) @@ -1,3 +1,4 @@ +# DART $Id$ Table 15. Reason codes associated with step "CQCPROF", program code 009 (last revised 5/30/2001). Property changes on: DART/trunk/ncep_obs/prep_bufr/docs/Reason_codes/PC009.txt ___________________________________________________________________ Modified: svn:keywords - Date Author Revision HeadURL Id + Date Revision Author HeadURL Id Modified: DART/trunk/ncep_obs/prep_bufr/docs/Reason_codes/PC010.txt =================================================================== --- DART/trunk/ncep_obs/prep_bufr/docs/Reason_codes/PC010.txt 2010-01-21 18:01:32 UTC (rev 4224) +++ DART/trunk/ncep_obs/prep_bufr/docs/Reason_codes/PC010.txt 2010-01-22 23:24:16 UTC (rev 4225) @@ -1,3 +1,4 @@ +# DART $Id$ Table 16. Reason codes associated with step "OIQC", program code 010 (last revised 9/17/2001). Property changes on: DART/trunk/ncep_obs/prep_bufr/docs/Reason_codes/PC010.txt ___________________________________________________________________ Modified: svn:keywords - Date Author Revision HeadURL Id + Date Revision Author HeadURL Id Modified: DART/trunk/ncep_obs/prep_bufr/docs/Reason_codes/PC012.txt =================================================================== --- DART/trunk/ncep_obs/prep_bufr/docs/Reason_codes/PC012.txt 2010-01-21 18:01:32 UTC (rev 4224) +++ DART/trunk/ncep_obs/prep_bufr/docs/Reason_codes/PC012.txt 2010-01-22 23:24:16 UTC (rev 4225) @@ -1,3 +1,4 @@ +# DART $Id$ Table 17. Reason codes associated with step "CQCVAD", program code 012 (last revised 10/02/2001). Property changes on: DART/trunk/ncep_obs/prep_bufr/docs/Reason_codes/PC012.txt ___________________________________________________________________ Modified: svn:keywords - Date Author Revision HeadURL Id + Date Revision Author HeadURL Id Modified: DART/trunk/ncep_obs/prep_bufr/docs/Report_type.txt =================================================================== --- DART/trunk/ncep_obs/prep_bufr/docs/Report_type.txt 2010-01-21 18:01:32 UTC (rev 4224) +++ DART/trunk/ncep_obs/prep_bufr/docs/Report_type.txt 2010-01-22 23:24:16 UTC (rev 4225) @@ -1,3 +1,4 @@ +# DART $Id$ (TYP) Table 3. Code table for PREPBUFR report types used by Global CDAS/reanalysis systems (last revised 10/31/2001). Property changes on: DART/trunk/ncep_obs/prep_bufr/docs/Report_type.txt ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Revision Author HeadURL Id Modified: DART/trunk/ncep_obs/prep_bufr/exe/README =================================================================== --- DART/trunk/ncep_obs/prep_bufr/exe/README 2010-01-21 18:01:32 UTC (rev 4224) +++ DART/trunk/ncep_obs/prep_bufr/exe/README 2010-01-22 23:24:16 UTC (rev 4225) @@ -1 +1,3 @@ -# This directory needs to exist (but can be empty) +# DART $Id$ + +This directory needs to exist (but can be empty) Property changes on: DART/trunk/ncep_obs/prep_bufr/exe/README ___________________________________________________________________ Modified: svn:keywords - Date Author Revision HeadURL Id + Date Revision Author HeadURL Id Modified: DART/trunk/ncep_obs/prep_bufr/install.sh =================================================================== --- DART/trunk/ncep_obs/prep_bufr/install.sh 2010-01-21 18:01:32 UTC (rev 4224) +++ DART/trunk/ncep_obs/prep_bufr/install.sh 2010-01-22 23:24:16 UTC (rev 4225) @@ -1,11 +1,7 @@ #!/bin/sh # -# DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is -# provided by UCAR, "as is", without charge, subject to all terms of use at -# http://www.image.ucar.edu/DAReS/DART/DART_download +# DART $Id$ # -# $Id$ -# # This script will make executables which extract data # from ADP BUFR input files, and place the data into a basic text file. # prepbufr.x: used to extract data from prepbufr files Modified: DART/trunk/ncep_obs/prep_bufr/lib/README_BUFRLIB =================================================================== --- DART/trunk/ncep_obs/prep_bufr/lib/README_BUFRLIB 2010-01-21 18:01:32 UTC (rev 4224) +++ DART/trunk/ncep_obs/prep_bufr/lib/README_BUFRLIB 2010-01-22 23:24:16 UTC (rev 4225) @@ -1,3 +1,5 @@ +# DART $Id$ + This file explains how to compile the NCEP BUFRLIB software, which is described in detail at http://www.nco.ncep.noaa.gov/sib/decoders/BUFRLIB/, and whose usage is governed by the terms and conditions of the disclaimer Modified: DART/trunk/ncep_obs/prep_bufr/lib/addate.f =================================================================== --- DART/trunk/ncep_obs/prep_bufr/lib/addate.f 2010-01-21 18:01:32 UTC (rev 4224) +++ DART/trunk/ncep_obs/prep_bufr/lib/addate.f 2010-01-22 23:24:16 UTC (rev 4225) @@ -17,6 +17,7 @@ C DOCUMENTATION (INCLUDING HISTORY) C 2004-08-18 J. ATOR -- FIX BUG FOR YEARS THAT ARE MULTIPLE C OF 100 BUT NOT OF 400 +C DART $Id$ C C USAGE: CALL ADDATE (IDATE, JH, JDATE) C INPUT ARGUMENT LIST: Modified: DART/trunk/ncep_obs/prep_bufr/lib/adn30.f =================================================================== --- DART/trunk/ncep_obs/prep_bufr/lib/adn30.f 2010-01-21 18:01:32 UTC (rev 4224) +++ DART/trunk/ncep_obs/prep_bufr/lib/adn30.f 2010-01-22 23:24:16 UTC (rev 4225) @@ -20,6 +20,7 @@ C DOCUMENTATION (INCLUDING HISTORY); OUTPUTS C MORE COMPLETE DIAGNOSTIC INFO WHEN ROUTINE C TERMINATES ABNORMALLY +C DART $Id$ C C USAGE: ADN30 (IDN, L30) C INPUT ARGUMENT LIST: Modified: DART/trunk/ncep_obs/prep_bufr/lib/bfrini.f =================================================================== --- DART/trunk/ncep_obs/prep_bufr/lib/bfrini.f 2010-01-21 18:01:32 UTC (rev 4224) +++ DART/trunk/ncep_obs/prep_bufr/lib/bfrini.f 2010-01-22 23:24:16 UTC (rev 4225) @@ -36,6 +36,7 @@ C 20,000 TO 50,000 BYTES C 2005-11-29 J. ATOR -- ADDED INITIALIZATION OF COMMON /MSGCMP/ C AND CALLS TO PKVS1 AND PKVS01 +C DART $Id$ C C USAGE: CALL BFRINI C Modified: DART/trunk/ncep_obs/prep_bufr/lib/bort.f =================================================================== --- DART/trunk/ncep_obs/prep_bufr/lib/bort.f 2010-01-21 18:01:32 UTC (rev 4224) +++ DART/trunk/ncep_obs/prep_bufr/lib/bort.f 2010-01-22 23:24:16 UTC (rev 4225) @@ -23,6 +23,7 @@ C INTERDEPENDENCIES C 2003-11-04 D. KEYSER -- UNIFIED/PORTABLE FOR WRF; ADDED HISTORY C DOCUMENTATION +C DART $Id$ C C USAGE: CALL BORT (STR) C INPUT ARGUMENT LIST: Modified: DART/trunk/ncep_obs/prep_bufr/lib/bort2.f =================================================================== --- DART/trunk/ncep_obs/prep_bufr/lib/bort2.f 2010-01-21 18:01:32 UTC (rev 4224) +++ DART/trunk/ncep_obs/prep_bufr/lib/bort2.f 2010-01-22 23:24:16 UTC (rev 4225) @@ -13,6 +13,7 @@ C C PROGRAM HISTORY LOG: C 2003-11-04 D. KEYSER -- ORIGINAL AUTHOR +C DART $Id$ C C USAGE: CALL BORT2 (STR1, STR2) C INPUT ARGUMENT LIST: Modified: DART/trunk/ncep_obs/prep_bufr/lib/bort_exit.c =================================================================== --- DART/trunk/ncep_obs/prep_bufr/lib/bort_exit.c 2010-01-21 18:01:32 UTC (rev 4224) +++ DART/trunk/ncep_obs/prep_bufr/lib/bort_exit.c 2010-01-22 23:24:16 UTC (rev 4225) @@ -11,6 +11,7 @@ C 2003-11-04 J. ATOR -- ORIGINAL AUTHOR C 2003-11-04 D. KEYSER -- UNIFIED/PORTABLE FOR WRF C 2004-08-18 J. ATOR -- USE bufrlib.h INCLUDE FILE +C DART $Id$ C C USAGE: CALL BORT_EXIT C Modified: DART/trunk/ncep_obs/prep_bufr/lib/bufrlib.h =================================================================== --- DART/trunk/ncep_obs/prep_bufr/lib/bufrlib.h 2010-01-21 18:01:32 UTC (rev 4224) +++ DART/trunk/ncep_obs/prep_bufr/lib/bufrlib.h 2010-01-22 23:24:16 UTC (rev 4225) @@ -6,6 +6,8 @@ /* ** Define a global variable for sharing of file pointers across different ** subprograms within the BUFRLIB software. +** +** DART $Id$ */ #ifdef BUFRLIB_GLOBAL FILE *pbf[2]; /* each element will automatically initialize to NULL */ Modified: DART/trunk/ncep_obs/prep_bufr/lib/bufrlib.prm =================================================================== --- DART/trunk/ncep_obs/prep_bufr/lib/bufrlib.prm 2010-01-21 18:01:32 UTC (rev 4224) +++ DART/trunk/ncep_obs/prep_bufr/lib/bufrlib.prm 2010-01-22 23:24:16 UTC (rev 4225) @@ -1,3 +1,4 @@ +C DART $Id$ C----------------------------------------------------------------------- C Maximum number of BUFR files that can be connected to the C BUFRLIB software (for reading or writing) at any one time. Property changes on: DART/trunk/ncep_obs/prep_bufr/lib/bufrlib.prm ___________________________________________________________________ Added: svn:keywords + Date Revision Author HeadURL Id Modified: DART/trunk/ncep_obs/prep_bufr/lib/cadn30.f =================================================================== --- DART/trunk/ncep_obs/prep_bufr/lib/cadn30.f 2010-01-21 18:01:32 UTC (rev 4224) +++ DART/trunk/ncep_obs/prep_bufr/lib/cadn30.f 2010-01-22 23:24:16 UTC (rev 4225) @@ -16,6 +16,7 @@ C C PROGRAM HISTORY LOG: C 2004-08-18 J. ATOR -- ORIGINAL AUTHOR +C DART $Id$ C C USAGE: CADN30( IDN, ADN ) C INPUT ARGUMENT LIST: Modified: DART/trunk/ncep_obs/prep_bufr/lib/capit.f =================================================================== --- DART/trunk/ncep_obs/prep_bufr/lib/capit.f 2010-01-21 18:01:32 UTC (rev 4224) +++ DART/trunk/ncep_obs/prep_bufr/lib/capit.f 2010-01-22 23:24:16 UTC (rev 4225) @@ -21,6 +21,7 @@ C INTERDEPENDENCIES C 2003-11-04 D. KEYSER -- UNIFIED/PORTABLE FOR WRF; ADDED C DOCUMENTATION (INCLUDING HISTORY) +C DART $Id$ C C USAGE: CALL CAPIT (STR) C INPUT ARGUMENT LIST: Modified: DART/trunk/ncep_obs/prep_bufr/lib/ccbfl.c =================================================================== --- DART/trunk/ncep_obs/prep_bufr/lib/ccbfl.c 2010-01-21 18:01:32 UTC (rev 4224) +++ DART/trunk/ncep_obs/prep_bufr/lib/ccbfl.c 2010-01-22 23:24:16 UTC (rev 4225) @@ -9,6 +9,7 @@ C C PROGRAM HISTORY LOG: C 2005-11-29 J. ATOR -- ORIGINAL AUTHOR +C DART $Id$ C C USAGE: CALL CCBFL C Modified: DART/trunk/ncep_obs/prep_bufr/lib/chekstab.f =================================================================== --- DART/trunk/ncep_obs/prep_bufr/lib/chekstab.f 2010-01-21 18:01:32 UTC (rev 4224) +++ DART/trunk/ncep_obs/prep_bufr/lib/chekstab.f 2010-01-22 23:24:16 UTC (rev 4225) @@ -28,6 +28,7 @@ C DOCUMENTATION; OUTPUTS MORE COMPLETE C DIAGNOSTIC INFO WHEN ROUTINE TERMINATES C ABNORMALLY +C DART $Id$ C C USAGE: CALL CHEKSTAB (LUN) C INPUT ARGUMENT LIST: Modified: DART/trunk/ncep_obs/prep_bufr/lib/chrtrn.f =================================================================== --- DART/trunk/ncep_obs/prep_bufr/lib/chrtrn.f 2010-01-21 18:01:32 UTC (rev 4224) +++ DART/trunk/ncep_obs/prep_bufr/lib/chrtrn.f 2010-01-22 23:24:16 UTC (rev 4225) @@ -15,6 +15,7 @@ C INTERDEPENDENCIES C 2003-11-04 D. KEYSER -- UNIFIED/PORTABLE FOR WRF; ADDED HISTORY C DOCUMENTATION +C DART $Id$ C C USAGE: CALL CHRTRN (STR, CHR, N) C INPUT ARGUMENT LIST: Modified: DART/trunk/ncep_obs/prep_bufr/lib/chrtrna.f =================================================================== --- DART/trunk/ncep_obs/prep_bufr/lib/chrtrna.f 2010-01-21 18:01:32 UTC (rev 4224) +++ DART/trunk/ncep_obs/prep_bufr/lib/chrtrna.f 2010-01-22 23:24:16 UTC (rev 4225) @@ -20,6 +20,7 @@ C INTERDEPENDENCIES C 2003-11-04 D. KEYSER -- UNIFIED/PORTABLE FOR WRF; ADDED HISTORY C DOCUMENTATION +C DART $Id$ C C USAGE: CALL CHRTRNA (STR, CHR, N) C INPUT ARGUMENT LIST: Modified: DART/trunk/ncep_obs/prep_bufr/lib/cktaba.f =================================================================== --- DART/trunk/ncep_obs/prep_bufr/lib/cktaba.f 2010-01-21 18:01:32 UTC (rev 4224) +++ DART/trunk/ncep_obs/prep_bufr/lib/cktaba.f 2010-01-22 23:24:16 UTC (rev 4225) @@ -46,6 +46,7 @@ C 2006-04-14 J. ATOR -- ALLOW "FRtttsss" AND "FNtttsss" AS POSSIBLE C TABLE A MNEMONICS, WHERE ttt IS THE BUFR C TYPE AND sss IS THE BUFR SUBTYPE +C DART $Id$ C C USAGE: CALL CKTABA (LUN, SUBSET, JDATE, IRET) C INPUT ARGUMENT LIST: Modified: DART/trunk/ncep_obs/prep_bufr/lib/closbf.f =================================================================== --- DART/trunk/ncep_obs/prep_bufr/lib/closbf.f 2010-01-21 18:01:32 UTC (rev 4224) +++ DART/trunk/ncep_obs/prep_bufr/lib/closbf.f 2010-01-22 23:24:16 UTC (rev 4225) @@ -25,6 +25,7 @@ C INTERDEPENDENCIES C 2003-11-04 D. KEYSER -- UNIFIED/PORTABLE FOR WRF; ADDED C DOCUMENTATION (INCLUDING HISTORY) +C DART $Id$ C C USAGE: CALL CLOSBF (LUNIT) C INPUT ARGUMENT LIST: Modified: DART/trunk/ncep_obs/prep_bufr/lib/closmg.f =================================================================== --- DART/trunk/ncep_obs/prep_bufr/lib/closmg.f 2010-01-21 18:01:32 UTC (rev 4224) +++ DART/trunk/ncep_obs/prep_bufr/lib/closmg.f 2010-01-22 23:24:16 UTC (rev 4225) @@ -59,6 +59,7 @@ C NUMBER IMMEDIATELY AFTER CALLING OPENBF FOR C THIS OUTPUT FILE IF THE INTENTION IS TO C NOT WRITE ANY EMPTY MESSAGES) +C DART $Id$ C C USAGE: CALL CLOSMG (LUNIN) C INPUT ARGUMENT LIST: Modified: DART/trunk/ncep_obs/prep_bufr/lib/cmpmsg.f =================================================================== --- DART/trunk/ncep_obs/prep_bufr/lib/cmpmsg.f 2010-01-21 18:01:32 UTC (rev 4224) +++ DART/trunk/ncep_obs/prep_bufr/lib/cmpmsg.f 2010-01-22 23:24:16 UTC (rev 4225) @@ -14,6 +14,7 @@ C C PROGRAM HISTORY LOG: C 2005-03-09 J. ATOR -- ORIGINAL AUTHOR +C DART $Id$ C C USAGE: CALL CMPMSG (CF) C INPUT ARGUMENT LIST: Modified: DART/trunk/ncep_obs/prep_bufr/lib/cmsgini.f =================================================================== --- DART/trunk/ncep_obs/prep_bufr/lib/cmsgini.f 2010-01-21 18:01:32 UTC (rev 4224) +++ DART/trunk/ncep_obs/prep_bufr/lib/cmsgini.f 2010-01-22 23:24:16 UTC (rev 4225) @@ -25,6 +25,7 @@ C MAXIMUM MESSAGE LENGTH INCREASED FROM C 20,000 TO 50,000 BYTES C 2005-11-29 J. ATOR -- CHANGED DEFAULT MASTER TABLE VERSION TO 12 +C DART $Id$ C C USAGE: CALL CMSGINI (LUN, MESG, SUBSET, IDATE, NSUB, NBYT) C INPUT ARGUMENT LIST: Modified: DART/trunk/ncep_obs/prep_bufr/lib/cnved4.f =================================================================== --- DART/trunk/ncep_obs/prep_bufr/lib/cnved4.f 2010-01-21 18:01:32 UTC (rev 4224) +++ DART/trunk/ncep_obs/prep_bufr/lib/cnved4.f 2010-01-22 23:24:16 UTC (rev 4225) @@ -13,6 +13,7 @@ C C PROGRAM HISTORY LOG: C 2005-11-29 J. ATOR -- ORIGINAL AUTHOR +C DART $Id$ C C USAGE: CALL STNDRD (MSGIN, LMSGOT, MSGOT) C INPUT ARGUMENT LIST: Modified: DART/trunk/ncep_obs/prep_bufr/lib/cobfl.c =================================================================== --- DART/trunk/ncep_obs/prep_bufr/lib/cobfl.c 2010-01-21 18:01:32 UTC (rev 4224) +++ DART/trunk/ncep_obs/prep_bufr/lib/cobfl.c 2010-01-22 23:24:16 UTC (rev 4225) @@ -14,6 +14,7 @@ C C PROGRAM HISTORY LOG: C 2005-11-29 J. ATOR -- ORIGINAL AUTHOR +C DART $Id$ C C USAGE: CALL COBFL( BFL, IO ) C INPUT ARGUMENT LIST: Modified: DART/trunk/ncep_obs/prep_bufr/lib/conwin.f =================================================================== --- DART/trunk/ncep_obs/prep_bufr/lib/conwin.f 2010-01-21 18:01:32 UTC (rev 4224) +++ DART/trunk/ncep_obs/prep_bufr/lib/conwin.f 2010-01-22 23:24:16 UTC (rev 4225) @@ -21,6 +21,7 @@ C VERIFICATION VERSION); UNIFIED/PORTABLE FOR C WRF; ADDED DOCUMENTATION (INCLUDING C HISTORY) (INCOMPLETE) +C DART $Id$ C C USAGE: CALL CONWIN (LUN, INC1, INC2, NBMP) C INPUT ARGUMENT LIST: Modified: DART/trunk/ncep_obs/prep_bufr/lib/copybf.f =================================================================== --- DART/trunk/ncep_obs/prep_bufr/lib/copybf.f 2010-01-21 18:01:32 UTC (rev 4224) +++ DART/trunk/ncep_obs/prep_bufr/lib/copybf.f 2010-01-22 23:24:16 UTC (rev 4225) @@ -24,6 +24,7 @@ C 2004-08-09 J. ATOR -- MAXIMUM MESSAGE LENGTH INCREASED FROM C 20,000 TO 50,000 BYTES C 2005-11-29 J. ATOR -- USE RDMSGW AND NMWRD +C DART $Id$ C C USAGE: CALL COPYBF (LUNIN, LUNOT) C INPUT ARGUMENT LIST: Modified: DART/trunk/ncep_obs/prep_bufr/lib/copymg.f =================================================================== --- DART/trunk/ncep_obs/prep_bufr/lib/copymg.f 2010-01-21 18:01:32 UTC (rev 4224) +++ DART/trunk/ncep_obs/prep_bufr/lib/copymg.f 2010-01-22 23:24:16 UTC (rev 4225) @@ -36,6 +36,7 @@ C 2004-08-09 J. ATOR -- MAXIMUM MESSAGE LENGTH INCREASED FROM C 20,000 TO 50,000 BYTES C 2005-11-29 J. ATOR -- USE IUPBS01 +C DART $Id$ C C USAGE: CALL COPYMG (LUNIN, LUNOT) C INPUT ARGUMENT LIST: Modified: DART/trunk/ncep_obs/prep_bufr/lib/copysb.f =================================================================== --- DART/trunk/ncep_obs/prep_bufr/lib/copysb.f 2010-01-21 18:01:32 UTC (rev 4224) +++ DART/trunk/ncep_obs/prep_bufr/lib/copysb.f 2010-01-22 23:24:16 UTC (rev 4225) @@ -47,6 +47,7 @@ C COULD ONLY WRITE OUT UNCOMPRESSED SUBSET/ C MESSAGE REGARDLESS OF COMPRESSION STATUS OF C INPUT SUBSET/MESSAGE) +C DART $Id$ C C USAGE: CALL COPYSB ( LUNIN, LUNOT, IRET ) C INPUT ARGUMENT LIST: Modified: DART/trunk/ncep_obs/prep_bufr/lib/cpbfdx.f =================================================================== --- DART/trunk/ncep_obs/prep_bufr/lib/cpbfdx.f 2010-01-21 18:01:32 UTC (rev 4224) +++ DART/trunk/ncep_obs/prep_bufr/lib/cpbfdx.f 2010-01-22 23:24:16 UTC (rev 4225) @@ -21,6 +21,7 @@ C INTERDEPENDENCIES C 2003-11-04 D. KEYSER -- UNIFIED/PORTABLE FOR WRF; ADDED C DOCUMENTATION (INCLUDING HISTORY) +C DART $Id$ C C USAGE: CALL CPBFDX (LUD, LUN) C INPUT ARGUMENT LIST: Modified: DART/trunk/ncep_obs/prep_bufr/lib/cpymem.f =================================================================== --- DART/trunk/ncep_obs/prep_bufr/lib/cpymem.f 2010-01-21 18:01:32 UTC (rev 4224) +++ DART/trunk/ncep_obs/prep_bufr/lib/cpymem.f 2010-01-22 23:24:16 UTC (rev 4225) @@ -52,6 +52,7 @@ C INTERNALLY) WAS INCREASED FROM 16 MBYTES TO C 50 MBYTES C 2005-11-29 J. ATOR -- USE IUPBS01 +C DART $Id$ C C USAGE: CALL CPYMEM (LUNOT) C INPUT ARGUMENT LIST: Modified: DART/trunk/ncep_obs/prep_bufr/lib/cpyupd.f =================================================================== --- DART/trunk/ncep_obs/prep_bufr/lib/cpyupd.f 2010-01-21 18:01:32 UTC (rev 4224) +++ DART/trunk/ncep_obs/prep_bufr/lib/cpyupd.f 2010-01-22 23:24:16 UTC (rev 4225) @@ -29,6 +29,7 @@ C TERMINATES ABNORMALLY C 2004-08-09 J. ATOR -- MAXIMUM MESSAGE LENGTH INCREASED FROM C 20,000 TO 50,000 BYTES +C DART $Id$ C C USAGE: CALL CPYUPD (LUNIT, LIN, LUN, IBYT) C INPUT ARGUMENT LIST: Modified: DART/trunk/ncep_obs/prep_bufr/lib/crbmg.c =================================================================== --- DART/trunk/ncep_obs/prep_bufr/lib/crbmg.c 2010-01-21 18:01:32 UTC (rev 4224) +++ DART/trunk/ncep_obs/prep_bufr/lib/crbmg.c 2010-01-22 23:24:16 UTC (rev 4225) @@ -10,6 +10,7 @@ C C PROGRAM HISTORY LOG: C 2005-11-29 J. ATOR -- ORIGINAL AUTHOR +C DART $Id$ C C USAGE: CALL CRBMG( BMG, MXMB, NMB, IRET ) C INPUT ARGUMENT LIST: Modified: DART/trunk/ncep_obs/prep_bufr/lib/cwbmg.c =================================================================== --- DART/trunk/ncep_obs/prep_bufr/lib/cwbmg.c 2010-01-21 18:01:32 UTC (rev 4224) +++ DART/trunk/ncep_obs/prep_bufr/lib/cwbmg.c 2010-01-22 23:24:16 UTC (rev 4225) @@ -9,6 +9,7 @@ C C PROGRAM HISTORY LOG: C 2005-11-29 J. ATOR -- ORIGINAL AUTHOR +C DART $Id$ C C USAGE: CALL CWBMG( BMG, NMB, IRET ) C INPUT ARGUMENT LIST: Modified: DART/trunk/ncep_obs/prep_bufr/lib/datebf.f =================================================================== --- DART/trunk/ncep_obs/prep_bufr/lib/datebf.f 2010-01-21 18:01:32 UTC (rev 4224) +++ DART/trunk/ncep_obs/prep_bufr/lib/datebf.f 2010-01-22 23:24:16 UTC (rev 4225) @@ -51,6 +51,7 @@ C BUT 2004-08-18 CHANGE CALLS OTHER ROUTINES C THAT DO REQUIRE IT C 2005-11-29 J. ATOR -- USE IGETDATE, IUPBS01 AND RDMSGW +C DART $Id$ C C USAGE: CALL DATEBF (LUNIT, MEAR, MMON, MDAY, MOUR, IDATE) C INPUT ARGUMENT LIST: Modified: DART/trunk/ncep_obs/prep_bufr/lib/datelen.f =================================================================== --- DART/trunk/ncep_obs/prep_bufr/lib/datelen.f 2010-01-21 18:01:32 UTC (rev 4224) +++ DART/trunk/ncep_obs/prep_bufr/lib/datelen.f 2010-01-22 23:24:16 UTC (rev 4225) @@ -27,6 +27,7 @@ C CALLED), THIS ROUTINE DOES NOT REQUIRE IT C BUT IT MAY SOMEDAY CALL OTHER ROUTINES THAT C DO REQUIRE IT +C DART $Id$ C C USAGE: CALL DATELEN (LEN) C INPUT ARGUMENT LIST: Modified: DART/trunk/ncep_obs/prep_bufr/lib/digit.f =================================================================== --- DART/trunk/ncep_obs/prep_bufr/lib/digit.f 2010-01-21 18:01:32 UTC (rev 4224) +++ DART/trunk/ncep_obs/prep_bufr/lib/digit.f 2010-01-22 23:24:16 UTC (rev 4225) @@ -15,6 +15,7 @@ C INTERDEPENDENCIES C 2003-11-04 D. KEYSER -- UNIFIED/PORTABLE FOR WRF; ADDED C DOCUMENTATION (INCLUDING HISTORY) +C DART $Id$ C C USAGE: DIGIT (STR) C INPUT ARGUMENT LIST: Modified: DART/trunk/ncep_obs/prep_bufr/lib/drfini.f =================================================================== --- DART/trunk/ncep_obs/prep_bufr/lib/drfini.f 2010-01-21 18:01:32 UTC (rev 4224) +++ DART/trunk/ncep_obs/prep_bufr/lib/drfini.f 2010-01-22 23:24:16 UTC (rev 4225) @@ -29,6 +29,7 @@ C HISTORY); OUTPUTS MORE COMPLETE DIAGNOSTIC C INFO WHEN ROUTINE TERMINATES ABNORMALLY C 2005-03-04 J. ATOR -- UPDATED DOCUMENTATION +C DART $Id$ C C USAGE: CALL DRFINI (LUNIT, MDRF, NDRF, DRFTAG) C INPUT ARGUMENT LIST: Modified: DART/trunk/ncep_obs/prep_bufr/lib/drstpl.f =================================================================== @@ Diff output truncated at 40000 characters. @@ From nancy at ucar.edu Wed Jan 27 09:33:09 2010 From: nancy at ucar.edu (nancy at ucar.edu) Date: Wed, 27 Jan 2010 09:33:09 -0700 Subject: [Dart-dev] [4230] DART/trunk/filter/filter.f90: the args to write() were backwards - the format and Message-ID: Revision: 4230 Author: nancy Date: 2010-01-27 09:33:09 -0700 (Wed, 27 Jan 2010) Log Message: ----------- the args to write() were backwards - the format and target string were reversed. Modified Paths: -------------- DART/trunk/filter/filter.f90 -------------- next part -------------- Modified: DART/trunk/filter/filter.f90 =================================================================== --- DART/trunk/filter/filter.f90 2010-01-26 00:19:44 UTC (rev 4229) +++ DART/trunk/filter/filter.f90 2010-01-27 16:33:09 UTC (rev 4230) @@ -954,7 +954,7 @@ ! Need 1 new qc field for the DART quality control qc_num_inc = 1 else - write(*, msgstring) 'input obs_seq file has ', tnum_qc, ' qc fields; must be < 2' + write(msgstring, *) 'input obs_seq file has ', tnum_qc, ' qc fields; must be < 2' call error_handler(E_ERR,'filter_setup_obs_sequence', msgstring, source, revision, revdate) endif From nancy at ucar.edu Wed Jan 27 14:07:15 2010 From: nancy at ucar.edu (nancy at ucar.edu) Date: Wed, 27 Jan 2010 14:07:15 -0700 Subject: [Dart-dev] [4231] DART/trunk/filter/filter.dopplerfold.f90: same fix as filter. f90 - the args to write() for an error Message-ID: Revision: 4231 Author: nancy Date: 2010-01-27 14:07:15 -0700 (Wed, 27 Jan 2010) Log Message: ----------- same fix as filter.f90 - the args to write() for an error message were reversed. Modified Paths: -------------- DART/trunk/filter/filter.dopplerfold.f90 -------------- next part -------------- Modified: DART/trunk/filter/filter.dopplerfold.f90 =================================================================== --- DART/trunk/filter/filter.dopplerfold.f90 2010-01-27 16:33:09 UTC (rev 4230) +++ DART/trunk/filter/filter.dopplerfold.f90 2010-01-27 21:07:15 UTC (rev 4231) @@ -959,7 +959,7 @@ ! Need 1 new qc field for the DART quality control qc_num_inc = 1 else - write(*, msgstring) 'input obs_seq file has ', tnum_qc, ' qc fields; must be < 2' + write(msgstring, *) 'input obs_seq file has ', tnum_qc, ' qc fields; must be < 2' call error_handler(E_ERR,'filter_setup_obs_sequence', msgstring, source, revision, revdate) endif From nancy at ucar.edu Thu Jan 28 12:31:54 2010 From: nancy at ucar.edu (nancy at ucar.edu) Date: Thu, 28 Jan 2010 12:31:54 -0700 Subject: [Dart-dev] [4232] DART/trunk/models/wrf: Full set of files to support the Radar experiment, including Message-ID: Revision: 4232 Author: nancy Date: 2010-01-28 12:31:54 -0700 (Thu, 28 Jan 2010) Log Message: ----------- Full set of files to support the Radar experiment, including the additive noise and initial conditions perturbation executables. Single line modification to the advance_model script - if the radar noise script is found, call it at the appropriate place. Modified Paths: -------------- DART/trunk/models/wrf/shell_scripts/advance_model.csh DART/trunk/models/wrf/work/input.nml Added Paths: ----------- DART/trunk/models/wrf/WRF_DART_utilities/add_pert_where_high_refl.f90 DART/trunk/models/wrf/WRF_DART_utilities/f2kcli.f90 DART/trunk/models/wrf/WRF_DART_utilities/grid_refl_obs.f90 DART/trunk/models/wrf/experiments/ DART/trunk/models/wrf/experiments/Radar/ DART/trunk/models/wrf/experiments/Radar/IC/ DART/trunk/models/wrf/experiments/Radar/IC/init_ideal.ncl DART/trunk/models/wrf/experiments/Radar/IC/namelist.wps.17May1981.2km DART/trunk/models/wrf/experiments/Radar/IC/prep_IC_pertsounding.csh DART/trunk/models/wrf/experiments/Radar/IC/sounding_perturbation/ DART/trunk/models/wrf/experiments/Radar/IC/sounding_perturbation/compile_pert_sounding.csh DART/trunk/models/wrf/experiments/Radar/IC/sounding_perturbation/input_sounding DART/trunk/models/wrf/experiments/Radar/IC/sounding_perturbation/pert_sounding.f90 DART/trunk/models/wrf/experiments/Radar/IC/sounding_perturbation/pert_sounding.input DART/trunk/models/wrf/experiments/Radar/IC/sounding_perturbation/pert_sounding_module.f90 DART/trunk/models/wrf/experiments/Radar/IC/sounding_perturbation/readme.altug DART/trunk/models/wrf/experiments/Radar/IC/sounding_perturbation/test_sounding.output DART/trunk/models/wrf/experiments/Radar/input.nml DART/trunk/models/wrf/experiments/Radar/namelist.input DART/trunk/models/wrf/experiments/Radar/obs/ DART/trunk/models/wrf/experiments/Radar/obs/README DART/trunk/models/wrf/experiments/Radar/start_over.csh DART/trunk/models/wrf/shell_scripts/add_noise.csh DART/trunk/models/wrf/work/mkmf_add_pert_where_high_refl DART/trunk/models/wrf/work/mkmf_grid_refl_obs DART/trunk/models/wrf/work/path_names_add_pert_where_high_refl DART/trunk/models/wrf/work/path_names_grid_refl_obs Removed Paths: ------------- DART/trunk/models/wrf/full_experiment/ -------------- next part -------------- Added: DART/trunk/models/wrf/WRF_DART_utilities/add_pert_where_high_refl.f90 =================================================================== --- DART/trunk/models/wrf/WRF_DART_utilities/add_pert_where_high_refl.f90 (rev 0) +++ DART/trunk/models/wrf/WRF_DART_utilities/add_pert_where_high_refl.f90 2010-01-28 19:31:54 UTC (rev 4232) @@ -0,0 +1,674 @@ +PROGRAM add_pert_where_high_refl + +! Add 3D random but smooth perturbations to WRF fields in/near where the observations +! indicate high reflectivity values. The technique is somewhat like that of +! Caya et al. 2005, Monthly Weather Review, 3081-3094. +! +! David Dowell 27 June 2007 +! +! input parameters from command line: +! (1) refl_ob_file -- name of text file containing WRF grid indices where observed reflectivity is high +! (2) wrf_file -- path name of WRF netcdf file +! (3) lh -- horizontal length scale (m) for perturbations +! (4) lv -- vertical length scale (m) for perturbations +! (5) u_sd -- std. dev. of u noise (m/s), before smoothing +! (6) v_sd -- std. dev. of v noise (m/s), before smoothing +! (7) w_sd -- std. dev. of w noise (m/s), before smoothing +! (8) t_sd -- std. dev. of potential temperature noise (K), before smoothing +! (9) td_sd -- std. dev. of dewpoint noise (K), before smoothing +! (10) qv_sd -- std. dev. of water vapor mixing ratio noise, before smoothing +! (input value is in g/kg, value after conversion is in kg/kg) +! +! output: + +use types_mod, only : r8, gravity, t_kelvin, ps0, gas_constant, gas_constant_v +use utilities_mod, only : error_handler, E_ERR, E_MSG, initialize_utilities, & + timestamp, register_module, logfileunit, file_exist +use random_nr_mod, only : random_seq_type, init_ran1 +use random_seq_mod, only : random_gaussian +use netcdf +use f2kcli + +implicit none + +! version controlled file description for error handling, do not edit +character(len=128), parameter :: & + source = "$URL$", & + revision = "$Revision$", & + revdate = "$Date$" + +! command-line parameters +character(len=129) :: refl_ob_file +character(len=129) :: wrf_file +real(r8) :: lh +real(r8) :: lv +real(r8) :: u_sd +real(r8) :: v_sd +real(r8) :: w_sd +real(r8) :: t_sd +real(r8) :: td_sd +real(r8) :: qv_sd + +! local variables +integer :: n_obs ! number of gridded reflectivity observations +integer, allocatable :: i_ob(:) ! grid indices of observations +integer, allocatable :: j_ob(:) ! " " +integer, allocatable :: k_ob(:) ! " " +real(r8), allocatable :: refl_ob(:) ! observed reflectivity (dBZ) + +real(r8), allocatable :: phb(:,:,:) ! base-state geopotential (m^2 s^-2) +real(r8), allocatable :: ht(:,:,:) ! height MSL of mass grid points (m) +real(r8), allocatable :: ht_u(:,:,:) ! height MSL of u grid points (m) +real(r8), allocatable :: ht_v(:,:,:) ! height MSL of v grid points (m) +real(r8), allocatable :: ht_w(:,:,:) ! height MSL of w grid points (m) +real(r8), allocatable :: f(:,:,:) ! WRF field +real(r8), allocatable :: f2(:,:,:) ! Extra WRF field +real(r8), allocatable :: sd(:,:,:) ! standard deviations of grid-point noise + +real(r8), allocatable :: dnw(:) ! d(eta) values between full (w) levels +real(r8), allocatable :: ph(:,:,:) ! perturbation geopotential (m^2 s^-2) +real(r8), allocatable :: qv(:,:,:) ! water vapor (kg/kg) +real(r8), allocatable :: t(:,:,:) ! perturbation potential temperature (K) +real(r8) :: rho ! density (kg m^-3) +real(r8), allocatable :: mu(:,:) ! perturbation dry air mass in column (Pa) +real(r8), allocatable :: mub(:,:) ! base state dry air mass in column (Pa) +real(r8) :: ph_e +real(r8) :: qvf1 +real(r8), PARAMETER :: ts0 = 300.0_r8 ! Base potential temperature for all levels. +real(r8), PARAMETER :: kappa = 2.0_r8/7.0_r8 ! gas_constant / cp +real(r8), PARAMETER :: rd_over_rv = gas_constant / gas_constant_v +real(r8), PARAMETER :: cpovcv = 1.4_r8 ! cp / (cp - gas_constant) +real(r8), allocatable :: p(:,:,:) ! pressure (mb) + + +character(len=8) :: crdate ! needed by F90 DATE_AND_TIME intrinsic +character(len=10) :: crtime ! needed by F90 DATE_AND_TIME intrinsic +character(len=5) :: crzone ! needed by F90 DATE_AND_TIME intrinsic +integer, dimension(8) :: values ! needed by F90 DATE_AND_TIME intrinsic +real(r8) :: dx, dy ! horizontal grid spacings (m) +integer :: bt, sn, we ! WRF grid dimensions +integer :: i, j, k, o + +! netcdf stuff +integer :: var_id, ncid, ierr +character(len=80) :: varname + +! f2kcli stuff +integer :: status, length +character(len=120) :: string + +! random number generator stuff +type (random_seq_type) :: rs + + + ! Get command-line parameters, using the F2KCLI interface. See f2kcli.f90 for details. + +if( COMMAND_ARGUMENT_COUNT() .ne. 10 ) then + print*, 'INCORRECT # OF ARGUMENTS ON COMMAND LINE: ', COMMAND_ARGUMENT_COUNT() + call exit(1) +else + + call GET_COMMAND_ARGUMENT(1,refl_ob_file,length,status) + if( status .ne. 0 ) then + print*, 'refl_ob_file NOT RETRIEVED FROM COMMAND LINE: ', status + call exit(1) + endif + + call GET_COMMAND_ARGUMENT(2,wrf_file,length,status) + if( status .ne. 0 ) then + print*, 'wrf_file NOT RETRIEVED FROM COMMAND LINE: ', status + call exit(1) + endif + + call GET_COMMAND_ARGUMENT(3,string,length,status) + if( status .ne. 0 ) then + print*, 'lh NOT RETRIEVED FROM COMMAND LINE: ', status + call exit(1) + else + read(string,*) lh + endif + + call GET_COMMAND_ARGUMENT(4,string,length,status) + if( status .ne. 0 ) then + print*, 'lv NOT RETRIEVED FROM COMMAND LINE: ', status + call exit(1) + else + read(string,*) lv + endif + + call GET_COMMAND_ARGUMENT(5,string,length,status) + if( status .ne. 0 ) then + print*, 'u_sd NOT RETRIEVED FROM COMMAND LINE: ', status + call exit(1) + else + read(string,*) u_sd + endif + + call GET_COMMAND_ARGUMENT(6,string,length,status) + if( status .ne. 0 ) then + print*, 'v_sd NOT RETRIEVED FROM COMMAND LINE: ', status + call exit(1) + else + read(string,*) v_sd + endif + + call GET_COMMAND_ARGUMENT(7,string,length,status) + if( status .ne. 0 ) then + print*, 'w_sd NOT RETRIEVED FROM COMMAND LINE: ', status + call exit(1) + else + read(string,*) w_sd + endif + + call GET_COMMAND_ARGUMENT(8,string,length,status) + if( status .ne. 0 ) then + print*, 't_sd NOT RETRIEVED FROM COMMAND LINE: ', status + call exit(1) + else + read(string,*) t_sd + endif + + call GET_COMMAND_ARGUMENT(9,string,length,status) + if( status .ne. 0 ) then + print*, 'td_sd NOT RETRIEVED FROM COMMAND LINE: ', status + call exit(1) + else + read(string,*) td_sd + endif + + call GET_COMMAND_ARGUMENT(10,string,length,status) + if( status .ne. 0 ) then + print*, 'qv_sd NOT RETRIEVED FROM COMMAND LINE: ', status + call exit(1) + else + read(string,*) qv_sd + endif + +endif + +qv_sd = 0.001_r8 * qv_sd ! convert g/kg to kg/kg + + +! Read locations where high reflectivity was observed. + +! first, count observations + +open(unit=11, file=refl_ob_file, status='old') +n_obs = 0 +998 read(11,*,end=999) + n_obs = n_obs + 1 +go to 998 +999 close(11) + +! now allocate storage and read the observations + +allocate(i_ob(n_obs)) +allocate(j_ob(n_obs)) +allocate(k_ob(n_obs)) +allocate(refl_ob(n_obs)) + +open(unit=11, file=refl_ob_file, status='old') +do o=1, n_obs + read(11,*) i_ob(o), j_ob(o), k_ob(o), refl_ob(o) +enddo +close(11) + + +! Open WRF file and obtain miscellaneous values. + +call check ( nf90_open(wrf_file, NF90_WRITE, ncid) ) + +call check ( nf90_inq_dimid(ncid, 'bottom_top', var_id) ) +call check ( nf90_inquire_dimension(ncid, var_id, varname, bt) ) + +call check ( nf90_inq_dimid(ncid, 'south_north', var_id) ) +call check ( nf90_inquire_dimension(ncid, var_id, varname, sn) ) + +call check ( nf90_inq_dimid(ncid, 'west_east', var_id) ) +call check ( nf90_inquire_dimension(ncid, var_id, varname, we) ) + +call check( nf90_get_att(ncid, nf90_global, 'DX', dx) ) +call check( nf90_get_att(ncid, nf90_global, 'DY', dy) ) + + +! Read WRF base-state geopotential height field and compute height (m MSL) +! of each grid point. + +allocate(phb(we,sn,bt+1)) +allocate(ht(we,sn,bt)) +allocate(ht_u(we+1,sn,bt)) +allocate(ht_v(we,sn+1,bt)) +allocate(ht_w(we,sn,bt+1)) + +call check ( nf90_inq_varid(ncid, 'PHB', var_id)) +call check ( nf90_get_var(ncid, var_id, phb, start = (/ 1, 1, 1, 1/))) + +do k=1, bt + do j=1, sn + do i=1, we + ht(i,j,k) = ( phb(i,j,k) + phb(i,j,k+1) ) / (2.0_r8*gravity) + enddo + enddo +enddo +do k=1, bt + do j=1, sn + do i=2, we + ht_u(i,j,k) = ( phb(i-1,j,k) + phb(i-1,j,k+1) + phb(i,j,k) + phb(i,j,k+1) ) / (4.0_r8*gravity) + enddo + ht_u(1,j,k) = ht_u(2,j,k) + ht_u(we+1,j,k) = ht_u(we,j,k) + enddo +enddo +do k=1, bt + do i=1, we + do j=2, sn + ht_v(i,j,k) = ( phb(i,j-1,k) + phb(i,j-1,k+1) + phb(i,j,k) + phb(i,j,k+1) ) / (4.0_r8*gravity) + enddo + ht_v(i,1,k) = ht_v(i,2,k) + ht_v(i,sn+1,k) = ht_v(i,sn,k) + enddo +enddo +do k=1, bt+1 + do j=1, sn + do i=1, we + ht_w(i,j,k) = phb(i,j,k) / gravity + enddo + enddo +enddo + + +! Initialize random number generator with a seed based on the milliseconds +! portion of the current time. + +call date_and_time(crdate,crtime,crzone,values) +call init_ran1(rs, -int(values(8))) + + +! Add perturbations. + +if (u_sd .gt. 0.0_r8) then + + allocate(f(we+1,sn,bt)) + call check ( nf90_inq_varid(ncid, 'U', var_id)) + call check ( nf90_get_var(ncid, var_id, f, start = (/ 1, 1, 1, 1/))) + allocate(sd(we+1,sn,bt)) + + sd(:,:,:) = 0.0_r8 + do o=1, n_obs + sd(i_ob(o), j_ob(o), k_ob(o)) = u_sd + sd(i_ob(o)+1, j_ob(o), k_ob(o)) = u_sd + enddo + + call add_smooth_perturbations(f, sd, we+1, sn, bt, lh, lv, dx, dy, ht_u) + + call check ( nf90_put_var(ncid, var_id, f, start = (/ 1, 1, 1, 1/))) + deallocate(f) + deallocate(sd) + +end if + + +if (v_sd .gt. 0.0_r8) then + + allocate(f(we,sn+1,bt)) + call check ( nf90_inq_varid(ncid, 'V', var_id)) + call check ( nf90_get_var(ncid, var_id, f, start = (/ 1, 1, 1, 1/))) + allocate(sd(we,sn+1,bt)) + + sd(:,:,:) = 0.0_r8 + do o=1, n_obs + sd(i_ob(o), j_ob(o), k_ob(o)) = v_sd + sd(i_ob(o), j_ob(o)+1, k_ob(o)) = v_sd + enddo + + call add_smooth_perturbations(f, sd, we, sn+1, bt, lh, lv, dx, dy, ht_v) + + call check ( nf90_put_var(ncid, var_id, f, start = (/ 1, 1, 1, 1/))) + deallocate(f) + deallocate(sd) + +end if + + +! note: Perturbing w is not advised currently because there is no enforcement +! that w perturbations should be small near the lower and upper boundaries. +if (w_sd .gt. 0.0_r8) then + + allocate(f(we,sn,bt+1)) + call check ( nf90_inq_varid(ncid, 'W', var_id)) + call check ( nf90_get_var(ncid, var_id, f, start = (/ 1, 1, 1, 1/))) + allocate(sd(we,sn,bt+1)) + + sd(:,:,:) = 0.0_r8 + do o=1, n_obs + sd(i_ob(o), j_ob(o), k_ob(o)) = w_sd + sd(i_ob(o), j_ob(o), k_ob(o)+1) = w_sd + enddo + + call add_smooth_perturbations(f, sd, we, sn, bt+1, lh, lv, dx, dy, ht_w) + + call check ( nf90_put_var(ncid, var_id, f, start = (/ 1, 1, 1, 1/))) + deallocate(f) + deallocate(sd) + +end if + + +if (t_sd .gt. 0.0_r8) then + + allocate(f(we,sn,bt)) + call check ( nf90_inq_varid(ncid, 'T', var_id)) + call check ( nf90_get_var(ncid, var_id, f, start = (/ 1, 1, 1, 1/))) + allocate(sd(we,sn,bt)) + + sd(:,:,:) = 0.0_r8 + do o=1, n_obs + sd(i_ob(o), j_ob(o), k_ob(o)) = t_sd + enddo + + call add_smooth_perturbations(f, sd, we, sn, bt, lh, lv, dx, dy, ht) + + call check ( nf90_put_var(ncid, var_id, f, start = (/ 1, 1, 1, 1/))) + deallocate(f) + deallocate(sd) + +end if + + +! note: Perturbing dewpoint can produce supersaturation. +if (td_sd .gt. 0.0_r8) then + + allocate(dnw(bt)) + allocate(ph(we,sn,bt+1)) + allocate(qv(we,sn,bt)) + allocate(t(we,sn,bt)) + allocate(mu(we,sn)) + allocate(mub(we,sn)) + allocate(p(we,sn,bt)) + call check ( nf90_inq_varid(ncid, 'DNW', var_id)) + call check ( nf90_get_var(ncid, var_id, dnw, start = (/ 1, 1/))) + call check ( nf90_inq_varid(ncid, 'PH', var_id)) + call check ( nf90_get_var(ncid, var_id, ph, start = (/ 1, 1, 1, 1/))) + call check ( nf90_inq_varid(ncid, 'QVAPOR', var_id)) + call check ( nf90_get_var(ncid, var_id, qv, start = (/ 1, 1, 1, 1/))) + call check ( nf90_inq_varid(ncid, 'T', var_id)) + call check ( nf90_get_var(ncid, var_id, t, start = (/ 1, 1, 1, 1/))) + call check ( nf90_inq_varid(ncid, 'MU', var_id)) + call check ( nf90_get_var(ncid, var_id, mu, start = (/ 1, 1, 1/))) + call check ( nf90_inq_varid(ncid, 'MUB', var_id)) + call check ( nf90_get_var(ncid, var_id, mub, start = (/ 1, 1, 1/))) + allocate(f(we,sn,bt)) + allocate(f2(we,sn,bt)) +! f2 is the sensible temperature array + allocate(sd(we,sn,bt)) + + ! compute pressure + ! see model_rho_t and model_pressure_t functions in model_mod.f90 + do k=1, bt + do j=1, sn + do i=1, we + ph_e = ( (ph(i,j,k+1) + phb(i,j,k+1)) - (ph(i,j,k) + phb(i,j,k)) ) / dnw(k) + rho = - ( mub(i,j)+mu(i,j) ) / ph_e + qvf1 = 1.0_r8 + qv(i,j,k) / rd_over_rv + p(i,j,k) = 0.01_r8 * ps0 * ( (gas_constant*(ts0+t(i,j,k))*qvf1) / (ps0/rho) )**cpovcv + f2(i,j,k) = (ts0 + t(i,j,k))*(100.0*p(i,j,k)/ps0)**kappa + enddo + enddo + enddo + + ! compute dewpoint + do k=1, bt + do j=1, sn + do i=1, we + call compute_td(f(i,j,k), p(i,j,k), qv(i,j,k)) + enddo + enddo + enddo + + ! perturb dewpoint + sd(:,:,:) = 0.0_r8 + do o=1, n_obs + sd(i_ob(o), j_ob(o), k_ob(o)) = td_sd + enddo + + + call add_smooth_perturbations(f, sd, we, sn, bt, lh, lv, dx, dy, ht) + +! check to make sure the perturbed dewpoint is <= temperature + 4 K + do k=1, bt + do j=1, sn + do i=1, we + if ( f(i,j,k) .gt. f2(i,j,k)+4.0 ) then +! write(*,*) 'supersaturation violation i,j,k ', i, j, k, f(i,j,k), f2(i,j,k) + f(i,j,k) = f2(i,j,k)+4.0 + end if + enddo + enddo + enddo + + ! compute qv + do k=1, bt + do j=1, sn + do i=1, we + call compute_qv(qv(i,j,k), p(i,j,k), f(i,j,k)) + enddo + enddo + enddo + + call check ( nf90_inq_varid(ncid, 'QVAPOR', var_id)) + call check ( nf90_put_var(ncid, var_id, qv, start = (/ 1, 1, 1, 1/))) + deallocate(dnw) + deallocate(ph) + deallocate(qv) + deallocate(t) + deallocate(mu) + deallocate(mub) + deallocate(p) + deallocate(f) + deallocate(f2) + deallocate(sd) + +end if + + +! note: Since negative qv values are set to 0 after the perturbations are added, +! the following procedure produces a net increase in qv in the domain. +if (qv_sd .gt. 0.0_r8) then + + allocate(f(we,sn,bt)) + call check ( nf90_inq_varid(ncid, 'QVAPOR', var_id)) + call check ( nf90_get_var(ncid, var_id, f, start = (/ 1, 1, 1, 1/))) + allocate(sd(we,sn,bt)) + + sd(:,:,:) = 0.0_r8 + do o=1, n_obs + sd(i_ob(o), j_ob(o), k_ob(o)) = qv_sd + enddo + + call add_smooth_perturbations(f, sd, we, sn, bt, lh, lv, dx, dy, ht) + + f(:,:,:) = max(0.0_r8, f(:,:,:)) ! require qv to be nonnegative + + call check ( nf90_put_var(ncid, var_id, f, start = (/ 1, 1, 1, 1/))) + deallocate(f) + deallocate(sd) + +end if + + +! Close file and deallocate arrays. + +ierr = NF90_close(ncid) + +deallocate(i_ob) +deallocate(j_ob) +deallocate(k_ob) +deallocate(refl_ob) +deallocate(phb) +deallocate(ht) +deallocate(ht_u) +deallocate(ht_v) +deallocate(ht_w) + + + +contains + + + ! Internal subroutine - checks error status after each netcdf, prints + ! text message each time an error code is returned. + subroutine check(istatus) + integer, intent ( in) :: istatus + if(istatus /= nf90_noerr) call error_handler(E_ERR,'add_pert_where_high_refl', & + trim(nf90_strerror(istatus)), source, revision, revdate) + end subroutine check + +!------------------------------------------------------------------------------------ + + ! Compute dewpoint (in Kelvin) from the specified values of pressure and water vapor mixing ratio. + ! Author: David Dowell + ! Date: July 9, 2007 + + subroutine compute_td(td, p, qv) + implicit none + +!-- returned parameter + real(r8), intent(out) :: td ! dewpoint (K) + +!-- passed parameters + real(r8), intent(in) :: p ! pressure (mb) + real(r8), intent(in) :: qv ! water vapor mixing ratio (kg/kg) + +!-- local variables + real(r8) :: e ! water vapor pressure (mb) + real(r8) :: qv_ckd ! checked mixing ratio + real(r8), PARAMETER :: e_min = 0.001_r8 ! threshold for minimum vapor pressure (mb), + ! to avoid problems near zero in Bolton's equation + real(r8), PARAMETER :: qv_min = 1.0e-12 ! threshold for minimum water vapor mixing ratio + real(r8), PARAMETER :: qv_max = 0.050 ! threshold for maximum water vapor mixing ratio + +! ensure qv is a reasonable number +! qv_ckd = max (qv, qv_min) +! qv_ckd = min (qv_ckd, qv_max) + qv_ckd = qv + e = qv_ckd * p / (0.622_r8 + qv_ckd) ! vapor pressure + e = max(e, e_min) ! avoid problems near zero + td = t_kelvin + (243.5_r8 / ((17.67_r8 / log(e/6.112_r8)) - 1.0_r8) ) ! Bolton's approximation + + end subroutine compute_td + +!------------------------------------------------------------------------------------ + + ! Compute water vapor mixing ratio (in kg/kg) from the specified values of pressure and dewpoint. + ! Author: David Dowell + ! Date: July 9, 2007 + + subroutine compute_qv(qv, p, td) + implicit none + +!-- returned parameter + real(r8), intent(out) :: qv ! water vapor mixing ratio (kg/kg) + +!-- passed parameters + real(r8), intent(in) :: p ! pressure (mb) + real(r8), intent(in) :: td ! dewpoint (K) + +!-- local variables + real(r8) :: tdc ! dewpoint (Celsius) + real(r8) :: e ! water vapor pressure (mb) + + tdc = td - t_kelvin + e = 6.112_r8 * exp(17.67_r8 * tdc / (tdc+243.5_r8) ) ! Bolton's approximation + qv = 0.622_r8 * e / (p-e) + + return + + end subroutine compute_qv + +!------------------------------------------------------------------------------------ + + ! Add smooth perturbations to an array. The technique is based on + ! Caya et al. 2005, Monthly Weather Review, 3081-3094. + ! Author: David Dowell + ! Date: July 9, 2007 + + subroutine add_smooth_perturbations(f, sd, nx, ny, nz, lh, lv, dx, dy, ht) + implicit none + +!-- passed parameters + integer, intent(in) :: nx, ny, nz ! grid dimensions + real(r8), intent(in) :: lh, lv ! horizontal and vertical length scales (m) + real(r8), intent(in) :: dx, dy ! horizontal grid spacings (m) + real(r8), intent(in) :: ht(nx,ny,nz) ! heights MSL of f and sd grid points (m) + real(r8), intent(in) :: sd(nx,ny,nz) ! standard deviation of grid-point noise + +!-- passed and returned variable + real(r8), intent(inout) :: f(nx,ny,nz) ! field to be perturbed + +!-- local variables + + real(r8) :: r(nx,ny,nz) ! realization of random, normally distributed noise + integer :: i, i0, j, j0, k, k0 ! grid indices + integer :: i1, i2, j1, j2, k1, k2 ! more grid indices + real(r8) :: rlh, rlv ! reciprocals of lh and lv + integer, parameter :: nl = 5 ! number of length scales for computing exponential weight + + + rlh = 1.0_r8 / lh + rlv = 1.0_r8 / lv + +! generate random, normally-distributed gridpoint noise + + r(:,:,:) = 0.0_r8 + do k0=1, nz + do j0=1, ny + do i0=1, nx + if (sd(i0,j0,k0) .ne. 0.0_r8) then + r(i0,j0,k0) = random_gaussian(rs, 0.0_r8, sd(i0,j0,k0)) + endif + enddo + enddo + enddo + +! smooth the perturbations with an inverse exponential function + + do k0=1, nz + do j0=1, ny + do i0=1, nx + + if (r(i0,j0,k0).ne.0.0_r8) then + + i1 = max(1, nint(i0-nl*lh/dx)) + i2 = min(nx, nint(i0+nl*lh/dx)) + j1 = max(1, nint(j0-nl*lh/dy)) + j2 = min(ny, nint(j0+nl*lh/dy)) + k1 = k0 + do while ( (k1.gt.1) .and. ( ht(i0,j0,k1) .gt. (ht(i0,j0,k0)-nl*lv) ) ) + k1 = k1 - 1 + enddo + k2 = k0 + do while ( (k2.lt.nz) .and. ( ht(i0,j0,k2) .lt. (ht(i0,j0,k0)+nl*lv) ) ) + k2 = k2 + 1 + enddo + + do k=k1, k2 + do j=j1, j2 + do i=i1, i2 + f(i,j,k) = f(i,j,k) & + + r(i0,j0,k0)*exp( -dx*abs(i0-i)*rlh & + -dy*abs(j0-j)*rlh & + -abs(ht(i0,j0,k0)-ht(i,j,k))*rlv ) + enddo + enddo + enddo + + endif + + enddo + enddo + enddo + + end subroutine add_smooth_perturbations + + +END PROGRAM add_pert_where_high_refl Property changes on: DART/trunk/models/wrf/WRF_DART_utilities/add_pert_where_high_refl.f90 ___________________________________________________________________ Added: svn:keywords + Date Revision Author HeadURL Id Added: DART/trunk/models/wrf/WRF_DART_utilities/f2kcli.f90 =================================================================== --- DART/trunk/models/wrf/WRF_DART_utilities/f2kcli.f90 (rev 0) +++ DART/trunk/models/wrf/WRF_DART_utilities/f2kcli.f90 2010-01-28 19:31:54 UTC (rev 4232) @@ -0,0 +1,187 @@ +! F2KCLI : Fortran 200x Command Line Interface +! copyright Interactive Software Services Ltd. 2002 +! For conditions of use see manual.txt +! +! Platform : Mac OS/X +! Compiler : Absoft Pro Fortran +! To compile : f95 -c f2kcli.f90 +! Implementer : Lawson B. Wakefield, I.S.S. Ltd. +! Date : June 2002 +! + MODULE F2KCLI +! + CONTAINS +! + SUBROUTINE GET_COMMAND(COMMAND,LENGTH,STATUS) +! +! Description. Returns the entire command by which the program was +! invoked. +! +! Class. Subroutine. +! +! Arguments. +! COMMAND (optional) shall be scalar and of type default character. +! It is an INTENT(OUT) argument. It is assigned the entire command +! by which the program was invoked. If the command cannot be +! determined, COMMAND is assigned all blanks. +! LENGTH (optional) shall be scalar and of type default integer. It is +! an INTENT(OUT) argument. It is assigned the significant length +! of the command by which the program was invoked. The significant +! length may include trailing blanks if the processor allows commands +! with significant trailing blanks. This length does not consider any +! possible truncation or padding in assigning the command to the +! COMMAND argument; in fact the COMMAND argument need not even be +! present. If the command length cannot be determined, a length of +! 0 is assigned. +! STATUS (optional) shall be scalar and of type default integer. It is +! an INTENT(OUT) argument. It is assigned the value 0 if the +! command retrieval is sucessful. It is assigned a processor-dependent +! non-zero value if the command retrieval fails. +! + CHARACTER(LEN=*), INTENT(OUT), OPTIONAL :: COMMAND + INTEGER , INTENT(OUT), OPTIONAL :: LENGTH + INTEGER , INTENT(OUT), OPTIONAL :: STATUS +! + INTEGER :: IARG,NARG,IPOS + INTEGER , SAVE :: LENARG + CHARACTER(LEN=2000), SAVE :: ARGSTR + LOGICAL , SAVE :: GETCMD = .TRUE. +! +! Reconstruct the command line from its constituent parts. +! This may not be the original command line. +! + IF (GETCMD) THEN + NARG = IARGC() + IF (NARG > 0) THEN + IPOS = 1 + DO IARG = 1,NARG + CALL GETARG(IARG,ARGSTR(IPOS:)) + LENARG = LEN_TRIM(ARGSTR) + IPOS = LENARG + 2 + IF (IPOS > LEN(ARGSTR)) EXIT + END DO + ELSE + ARGSTR = ' ' + LENARG = 0 + ENDIF + GETCMD = .FALSE. + ENDIF + IF (PRESENT(COMMAND)) COMMAND = ARGSTR + IF (PRESENT(LENGTH)) LENGTH = LENARG + IF (PRESENT(STATUS)) STATUS = 0 + RETURN + END SUBROUTINE GET_COMMAND +! + INTEGER FUNCTION COMMAND_ARGUMENT_COUNT() +! +! Description. Returns the number of command arguments. +! +! Class. Inquiry function +! +! Arguments. None. +! +! Result Characteristics. Scalar default integer. +! +! Result Value. The result value is equal to the number of command +! arguments available. If there are no command arguments available +! or if the processor does not support command arguments, then +! the result value is 0. If the processor has a concept of a command +! name, the command name does not count as one of the command +! arguments. +! + COMMAND_ARGUMENT_COUNT = IARGC() + RETURN + END FUNCTION COMMAND_ARGUMENT_COUNT +! + SUBROUTINE GET_COMMAND_ARGUMENT(NUMBER,VALUE,LENGTH,STATUS) +! +! Description. Returns a command argument. +! +! Class. Subroutine. +! +! Arguments. +! NUMBER shall be scalar and of type default integer. It is an +! INTENT(IN) argument. It specifies the number of the command +! argument that the other arguments give information about. Useful +! values of NUMBER are those between 0 and the argument count +! returned by the COMMAND_ARGUMENT_COUNT intrinsic. +! Other values are allowed, but will result in error status return +! (see below). Command argument 0 is defined to be the command +! name by which the program was invoked if the processor has such +! a concept. It is allowed to call the GET_COMMAND_ARGUMENT +! procedure for command argument number 0, even if the processor +! does not define command names or other command arguments. +! The remaining command arguments are numbered consecutively from +! 1 to the argument count in an order determined by the processor. +! VALUE (optional) shall be scalar and of type default character. +! It is an INTENT(OUT) argument. It is assigned the value of the +! command argument specified by NUMBER. If the command argument value +! cannot be determined, VALUE is assigned all blanks. +! LENGTH (optional) shall be scalar and of type default integer. +! It is an INTENT(OUT) argument. It is assigned the significant length +! of the command argument specified by NUMBER. The significant +! length may include trailing blanks if the processor allows command +! arguments with significant trailing blanks. This length does not +! consider any possible truncation or padding in assigning the +! command argument value to the VALUE argument; in fact the +! VALUE argument need not even be present. If the command +! argument length cannot be determined, a length of 0 is assigned. +! STATUS (optional) shall be scalar and of type default integer. +! It is an INTENT(OUT) argument. It is assigned the value 0 if +! the argument retrieval is sucessful. It is assigned a +! processor-dependent non-zero value if the argument retrieval fails. +! +! NOTE +! One possible reason for failure is that NUMBER is negative or +! greater than COMMAND_ARGUMENT_COUNT(). +! + INTEGER , INTENT(IN) :: NUMBER + CHARACTER(LEN=*), INTENT(OUT), OPTIONAL :: VALUE + INTEGER , INTENT(OUT), OPTIONAL :: LENGTH + INTEGER , INTENT(OUT), OPTIONAL :: STATUS +! +! A temporary variable for the rare case case where LENGTH is +! specified but VALUE is not. An arbitrary maximum argument length +! of 1000 characters should cover virtually all situations. +! + CHARACTER(LEN=1000) :: TMPVAL +! +! Possible error codes: +! 1 = Argument number is less than minimum +! 2 = Argument number exceeds maximum +! + IF (NUMBER < 0) THEN + IF (PRESENT(VALUE )) VALUE = ' ' + IF (PRESENT(LENGTH)) LENGTH = 0 + IF (PRESENT(STATUS)) STATUS = 1 + RETURN + ELSE IF (NUMBER > IARGC()) THEN + IF (PRESENT(VALUE )) VALUE = ' ' + IF (PRESENT(LENGTH)) LENGTH = 0 + IF (PRESENT(STATUS)) STATUS = 2 + RETURN + END IF +! +! Get the argument if VALUE is present +! + IF (PRESENT(VALUE)) CALL GETARG(NUMBER,VALUE) +! +! As under Unix, the LENGTH option is probably fairly pointless here, +! but LEN_TRIM is used to ensure at least some sort of meaningful result. +! + IF (PRESENT(LENGTH)) THEN + IF (PRESENT(VALUE)) THEN + LENGTH = LEN_TRIM(VALUE) + ELSE + CALL GETARG(NUMBER,TMPVAL) + LENGTH = LEN_TRIM(TMPVAL) + END IF + END IF +! +! Since GETARG does not return a result code, assume success +! + IF (PRESENT(STATUS)) STATUS = 0 + RETURN + END SUBROUTINE GET_COMMAND_ARGUMENT +! + END MODULE F2KCLI Property changes on: DART/trunk/models/wrf/WRF_DART_utilities/f2kcli.f90 ___________________________________________________________________ Added: svn:keywords + Date Revision Author HeadURL Id Added: DART/trunk/models/wrf/WRF_DART_utilities/grid_refl_obs.f90 =================================================================== --- DART/trunk/models/wrf/WRF_DART_utilities/grid_refl_obs.f90 (rev 0) +++ DART/trunk/models/wrf/WRF_DART_utilities/grid_refl_obs.f90 2010-01-28 19:31:54 UTC (rev 4232) @@ -0,0 +1,400 @@ +PROGRAM grid_refl_obs + +! Extract reflectivity obs from a DART obs_seq.out file and compute the coordinates of +! these observations on a WRF grid (mass grid points). +! +! David Dowell 26 June 2007 +! +! input parameters from command line: +! (1) obs_seq_file -- path name of DART obs_seq.out file +! (2) refl_min -- minimum reflectivity threshold for processing observation +! (3) days_begin -- start of time range to be processed +! (4) seconds_begin -- " " +! (5) days_end -- end of time range to be processed +! (6) seconds_end -- " " +! (7) wrf_file -- path name of WRF netcdf file +! +! output: +! (1) text file + +use types_mod, only : r8, missing_r8, gravity +use obs_sequence_mod, only : read_obs_seq, obs_type, obs_sequence_type, get_first_obs, & + get_obs_from_key, get_obs_def, get_copy_meta_data, & + get_obs_time_range, get_time_range_keys, get_num_obs, & + get_next_obs, get_num_times, get_obs_values, init_obs, & + get_num_copies, static_init_obs_sequence, & + get_qc, destroy_obs_sequence, read_obs_seq_header, & + get_last_obs, destroy_obs, get_num_qc, get_qc_meta_data +use obs_def_mod, only : obs_def_type, get_obs_def_error_variance, get_obs_def_time, & + get_obs_def_location, get_obs_kind, get_obs_name +use obs_kind_mod, only : RADAR_REFLECTIVITY +use map_utils, only : proj_info, map_init, map_set, latlon_to_ij, & + PROJ_LATLON, PROJ_MERC, PROJ_LC, PROJ_PS, & + ij_to_latlon, gridwind_to_truewind +use location_mod, only : location_type, get_location, set_location_missing, & + write_location, operator(/=), & + vert_is_undef, VERTISUNDEF, & + vert_is_surface, VERTISSURFACE, & + vert_is_level, VERTISLEVEL, & + vert_is_pressure, VERTISPRESSURE, & + vert_is_height, VERTISHEIGHT +use time_manager_mod, only : time_type, set_date, set_time, get_time, print_time, & + set_calendar_type, print_date, GREGORIAN, & + operator(*), operator(+), operator(-), & + operator(>), operator(<), operator(/), & + operator(/=), operator(<=) +use utilities_mod, only : error_handler, E_ERR, E_MSG, initialize_utilities, & + timestamp, register_module, logfileunit, file_exist +use netcdf +use f2kcli + +implicit none + +! version controlled file description for error handling, do not edit +character(len=128), parameter :: & + source = "$URL$", & + revision = "$Revision$", & + revdate = "$Date$" + +! command-line parameters +character(len=129) :: obs_seq_file +real(r8) :: refl_min +integer :: seconds_begin +integer :: days_begin +integer :: seconds_end +integer :: days_end +character(len=129) :: wrf_file + +! local variables +type(obs_sequence_type) :: seq +type(obs_def_type) :: obs_def +type(time_type) :: beg_time, end_time +type(obs_type) :: ob +type(location_type) :: ob_loc + +integer :: num_copies, num_qc, num_obs, max_num_obs, obs_seq_file_id +character(len=129) :: obs_seq_read_format +logical :: pre_I_format +logical :: is_there_one, out_of_range +integer :: key_bounds(2) +integer :: num_obs_in_time_period +integer :: num_refl_obs +integer :: num_refl_obs_in_domain +integer, allocatable :: keys(:) +integer :: obs_kind_ind +integer :: obs_index +real(r8) :: ob_value(1) + +real(r8), allocatable :: lat(:,:) ! latitude at mass grid points (deg) +real(r8), allocatable :: lon(:,:) ! longitude at mass grid points (deg) +real(r8), allocatable :: phb(:,:,:) ! base-state geopotential (m^2 s^-2) +real(r8), allocatable :: ht(:,:,:) ! height MSL of mass grid points (m) +type(proj_info) :: proj ! map projection info. +integer, parameter :: map_sphere = 0, map_lambert = 1, map_polar_stereo = 2, map_mercator = 3 +integer map_proj, proj_code +real(r8) :: dx +real(r8) :: stdlon,truelat1,truelat2 +real(r8) :: xyz_loc(3) +real(r8) :: iloc, jloc, kloc + +real(r8), allocatable :: refl_ob(:,:,:) ! gridded reflectivity observations (dBZ) + +integer :: bt, sn, we ! WRF grid dimensions + +character(len = 150) :: msgstring +integer :: i, j, k, o + + +! netcdf stuff +integer :: var_id, ncid, ierr +character(len=80) :: varname + +! f2kcli stuff +integer :: status, length +character(len=120) :: string + + + +! Get command-line parameters, using the F2KCLI interface. See f2kcli.f90 for details. + +if( COMMAND_ARGUMENT_COUNT() .ne. 7 ) then + print*, 'INCORRECT # OF ARGUMENTS ON COMMAND LINE: ', COMMAND_ARGUMENT_COUNT() + call exit(1) +else + + call GET_COMMAND_ARGUMENT(1,obs_seq_file,length,status) + if( status .ne. 0 ) then + print*, 'obs_seq_file NOT RETRIEVED FROM COMMAND LINE: ', status + call exit(1) + endif + + call GET_COMMAND_ARGUMENT(2,string,length,status) + if( status .ne. 0 ) then + print*, 'refl_min NOT RETRIEVED FROM COMMAND LINE: ', status + call exit(1) + else + read(string,*) refl_min + endif + + call GET_COMMAND_ARGUMENT(3,string,length,status) + if( status .ne. 0 ) then + print*, 'days_begin NOT RETRIEVED FROM COMMAND LINE: ', status + call exit(1) + else + read(string,*) days_begin + endif + + call GET_COMMAND_ARGUMENT(4,string,length,status) + if( status .ne. 0 ) then + print*, 'seconds_begin NOT RETRIEVED FROM COMMAND LINE: ', status + call exit(1) + else + read(string,*) seconds_begin + endif + + call GET_COMMAND_ARGUMENT(5,string,length,status) + if( status .ne. 0 ) then + print*, 'days_end NOT RETRIEVED FROM COMMAND LINE: ', status + call exit(1) + else + read(string,*) days_end + endif + + call GET_COMMAND_ARGUMENT(6,string,length,status) + if( status .ne. 0 ) then + print*, 'seconds_end NOT RETRIEVED FROM COMMAND LINE: ', status + call exit(1) + else + read(string,*) seconds_end + endif + + call GET_COMMAND_ARGUMENT(7,wrf_file,length,status) + if( status .ne. 0 ) then + print*, 'wrf_file NOT RETRIEVED FROM COMMAND LINE: ', status + call exit(1) + endif + +endif + + +! Read observations. + +call static_init_obs_sequence() ! Initialize the obs sequence module + +obs_seq_file = trim(adjustl(obs_seq_file)) +if ( file_exist(obs_seq_file) ) then + write(msgstring,*)'opening ', obs_seq_file + call error_handler(E_MSG,'grid_refl_obs',msgstring,source,revision,revdate) +else + write(msgstring,*)obs_seq_file,& + ' does not exist. Finishing up.' + call error_handler(E_MSG,'grid_refl_obs',msgstring,source,revision,revdate) + call exit(1) +endif + +call read_obs_seq_header(obs_seq_file, & + num_copies, num_qc, num_obs, max_num_obs, & + obs_seq_file_id, obs_seq_read_format, pre_I_format, & + close_the_file = .true.) + +print*, 'num_copies = ', num_copies +print*, 'num_qc = ', num_qc +print*, 'num_obs = ', num_obs +print*, 'max_num_obs = ', max_num_obs +print*, 'obs_seq_read_format = ', obs_seq_read_format +print*, 'pre_I_format = ', pre_I_format + +call read_obs_seq(obs_seq_file, 0, 0, 0, seq) + +MetaDataLoop : do i=1, get_num_copies(seq) + if(index(get_copy_meta_data(seq,i), 'observation') > 0) obs_index = i +enddo MetaDataLoop + + +! Open WRF file and obtain grid dimensions. + +call check ( nf90_open(wrf_file, NF90_NOWRITE, ncid) ) + +call check ( nf90_inq_dimid(ncid, 'bottom_top', var_id) ) +call check ( nf90_inquire_dimension(ncid, var_id, varname, bt) ) + +call check ( nf90_inq_dimid(ncid, 'south_north', var_id) ) +call check ( nf90_inquire_dimension(ncid, var_id, varname, sn) ) + +call check ( nf90_inq_dimid(ncid, 'west_east', var_id) ) +call check ( nf90_inquire_dimension(ncid, var_id, varname, we) ) + +call check( nf90_get_att(ncid, nf90_global, 'MAP_PROJ', map_proj) ) +call check( nf90_get_att(ncid, nf90_global, 'DX', dx) ) +call check( nf90_get_att(ncid, nf90_global, 'TRUELAT1', truelat1) ) +call check( nf90_get_att(ncid, nf90_global, 'TRUELAT2', truelat2) ) +call check( nf90_get_att(ncid, nf90_global, 'STAND_LON', stdlon) ) + +! Allocate arrays. + +allocate(lat(we,sn)) +allocate(lon(we,sn)) +allocate(phb(we,sn,bt+1)) +allocate(ht(we,sn,bt)) +allocate(refl_ob(we,sn,bt)) + +refl_ob(:,:,:) = missing_r8 + + +! Read WRF grid information. + +call check ( nf90_inq_varid(ncid, 'XLAT', var_id)) +call check ( nf90_get_var(ncid, var_id, lat, start = (/ 1, 1, 1/))) + +call check ( nf90_inq_varid(ncid, 'XLONG', var_id)) +call check ( nf90_get_var(ncid, var_id, lon, start = (/ 1, 1, 1/))) + +call check ( nf90_inq_varid(ncid, 'PHB', var_id)) +call check ( nf90_get_var(ncid, var_id, phb, start = (/ 1, 1, 1, 1/))) + +ierr = NF90_close(ncid) + + +! Set up map projection structure. + +call map_init(proj) +if(map_proj == map_sphere) then + proj_code = PROJ_LATLON +elseif(map_proj == map_lambert) then + proj_code = PROJ_LC +elseif(map_proj == map_polar_stereo) then + proj_code = PROJ_PS +elseif(map_proj == map_mercator) then + proj_code = PROJ_MERC +else + call error_handler(E_ERR,'grid_refl_obs', & + 'Map projection no supported.', source, revision, revdate) +endif +!call map_set(proj_code,lat(1,1),lon(1,1), & +! 1.0_r8,1.0_r8,dx,stdlon,truelat1,truelat2,proj) +call map_set(proj_code=proj_code, proj=proj, lat1=lat(1,1), lon1=lon(1,1), & + knowni=1.0_r8, knownj=1.0_r8, dx=dx, stdlon=stdlon, truelat1=truelat1, truelat2=truelat2) + +! Compute height (m MSL) of each grid point. + +do k=1, bt + do j=1, sn + do i=1, we + ht(i,j,k) = ( phb(i,j,k) + phb(i,j,k+1) ) / (2.0_r8*gravity) + enddo + enddo +enddo + +! Make sure longitudes are in the range from 0 to 360. + +do j=1, sn + do i=1, we + do while (lon(i,j) < 0.0_r8) + lon(i,j) = lon(i,j) + 360.0_r8 + end do + do while (lon(i,j) > 360.0_r8) + lon(i,j) = lon(i,j) - 360.0_r8 + end do + enddo +enddo + + +! Process observations, assigning to grid points any reflectivity observations that lie within +! the domain and specified time range. + +beg_time = set_time(seconds_begin, days_begin) @@ Diff output truncated at 40000 characters. @@ From nancy at ucar.edu Thu Jan 28 12:59:37 2010 From: nancy at ucar.edu (nancy at ucar.edu) Date: Thu, 28 Jan 2010 12:59:37 -0700 Subject: [Dart-dev] [4233] DART/trunk/models/wrf/work: Fix the copyright info. Message-ID: Revision: 4233 Author: nancy Date: 2010-01-28 12:59:37 -0700 (Thu, 28 Jan 2010) Log Message: ----------- Fix the copyright info. Modified Paths: -------------- DART/trunk/models/wrf/work/mkmf_add_pert_where_high_refl DART/trunk/models/wrf/work/mkmf_grid_refl_obs -------------- next part -------------- Modified: DART/trunk/models/wrf/work/mkmf_add_pert_where_high_refl =================================================================== --- DART/trunk/models/wrf/work/mkmf_add_pert_where_high_refl 2010-01-28 19:31:54 UTC (rev 4232) +++ DART/trunk/models/wrf/work/mkmf_add_pert_where_high_refl 2010-01-28 19:59:37 UTC (rev 4233) @@ -1,13 +1,11 @@ #!/bin/csh # -# Data Assimilation Research Testbed -- DART -# Copyright 2004, 2005, Data Assimilation Initiative, University Corporation for Atmospheric Research -# Licensed under the GPL -- www.gpl.org/licenses/gpl.html +# DART software - Copyright ? 2004 - 2010 UCAR. This open source software is +# provided by UCAR, "as is", without charge, subject to all terms of use at +# http://www.image.ucar.edu/DAReS/DART/DART_download # -# -# $Id: mkmf_obs_diag,v 1.2 2005/09/30 21:47:13 thoar Exp $ -# $Source: /home/thoar/CVS.REPOS/DART/models/wrf/work/mkmf_obs_diag,v $ -# $Name: $ +# $Id: $ # + ../../../mkmf/mkmf -p add_pert_where_high_refl -t ../../../mkmf/mkmf.template -c"-Duse_netCDF" \ -a "../../.." path_names_add_pert_where_high_refl Modified: DART/trunk/models/wrf/work/mkmf_grid_refl_obs =================================================================== --- DART/trunk/models/wrf/work/mkmf_grid_refl_obs 2010-01-28 19:31:54 UTC (rev 4232) +++ DART/trunk/models/wrf/work/mkmf_grid_refl_obs 2010-01-28 19:59:37 UTC (rev 4233) @@ -1,13 +1,11 @@ #!/bin/csh # -# Data Assimilation Research Testbed -- DART -# Copyright 2004, 2005, Data Assimilation Initiative, University Corporation for Atmospheric Research -# Licensed under the GPL -- www.gpl.org/licenses/gpl.html +# DART software - Copyright ? 2004 - 2010 UCAR. This open source software is +# provided by UCAR, "as is", without charge, subject to all terms of use at +# http://www.image.ucar.edu/DAReS/DART/DART_download # -# -# $Id: mkmf_obs_diag,v 1.2 2005/09/30 21:47:13 thoar Exp $ -# $Source: /home/thoar/CVS.REPOS/DART/models/wrf/work/mkmf_obs_diag,v $ -# $Name: $ +# $Id: $ # +# ../../../mkmf/mkmf -p grid_refl_obs -t ../../../mkmf/mkmf.template -c"-Duse_netCDF" \ -a "../../.." path_names_grid_refl_obs From nancy at ucar.edu Thu Jan 28 13:16:03 2010 From: nancy at ucar.edu (nancy at ucar.edu) Date: Thu, 28 Jan 2010 13:16:03 -0700 Subject: [Dart-dev] [4234] DART/trunk/models/wrf/WRF_DART_utilities: Put in the right dart copyright info. Message-ID: Revision: 4234 Author: nancy Date: 2010-01-28 13:16:03 -0700 (Thu, 28 Jan 2010) Log Message: ----------- Put in the right dart copyright info. Modified Paths: -------------- DART/trunk/models/wrf/WRF_DART_utilities/add_pert_where_high_refl.f90 DART/trunk/models/wrf/WRF_DART_utilities/grid_refl_obs.f90 -------------- next part -------------- Modified: DART/trunk/models/wrf/WRF_DART_utilities/add_pert_where_high_refl.f90 =================================================================== --- DART/trunk/models/wrf/WRF_DART_utilities/add_pert_where_high_refl.f90 2010-01-28 19:59:37 UTC (rev 4233) +++ DART/trunk/models/wrf/WRF_DART_utilities/add_pert_where_high_refl.f90 2010-01-28 20:16:03 UTC (rev 4234) @@ -1,3 +1,7 @@ +! DART software - Copyright ? 2004 - 2010 UCAR. This open source software is +! provided by UCAR, "as is", without charge, subject to all terms of use at +! http://www.image.ucar.edu/DAReS/DART/DART_download + PROGRAM add_pert_where_high_refl ! Add 3D random but smooth perturbations to WRF fields in/near where the observations Modified: DART/trunk/models/wrf/WRF_DART_utilities/grid_refl_obs.f90 =================================================================== --- DART/trunk/models/wrf/WRF_DART_utilities/grid_refl_obs.f90 2010-01-28 19:59:37 UTC (rev 4233) +++ DART/trunk/models/wrf/WRF_DART_utilities/grid_refl_obs.f90 2010-01-28 20:16:03 UTC (rev 4234) @@ -1,3 +1,7 @@ +! DART software - Copyright ? 2004 - 2010 UCAR. This open source software is +! provided by UCAR, "as is", without charge, subject to all terms of use at +! http://www.image.ucar.edu/DAReS/DART/DART_download + PROGRAM grid_refl_obs ! Extract reflectivity obs from a DART obs_seq.out file and compute the coordinates of From nancy at ucar.edu Thu Jan 28 13:28:04 2010 From: nancy at ucar.edu (nancy at ucar.edu) Date: Thu, 28 Jan 2010 13:28:04 -0700 Subject: [Dart-dev] [4235] DART/trunk/models/wrf/experiments/Radar: Fix the missing and outdated DART copyright tags/comments. Message-ID: Revision: 4235 Author: nancy Date: 2010-01-28 13:28:03 -0700 (Thu, 28 Jan 2010) Log Message: ----------- Fix the missing and outdated DART copyright tags/comments. Modified Paths: -------------- DART/trunk/models/wrf/experiments/Radar/IC/init_ideal.ncl DART/trunk/models/wrf/experiments/Radar/IC/prep_IC_pertsounding.csh DART/trunk/models/wrf/experiments/Radar/IC/sounding_perturbation/compile_pert_sounding.csh DART/trunk/models/wrf/experiments/Radar/IC/sounding_perturbation/pert_sounding.f90 DART/trunk/models/wrf/experiments/Radar/IC/sounding_perturbation/pert_sounding_module.f90 DART/trunk/models/wrf/experiments/Radar/IC/sounding_perturbation/readme.altug DART/trunk/models/wrf/experiments/Radar/obs/README DART/trunk/models/wrf/experiments/Radar/start_over.csh -------------- next part -------------- Modified: DART/trunk/models/wrf/experiments/Radar/IC/init_ideal.ncl =================================================================== --- DART/trunk/models/wrf/experiments/Radar/IC/init_ideal.ncl 2010-01-28 20:16:03 UTC (rev 4234) +++ DART/trunk/models/wrf/experiments/Radar/IC/init_ideal.ncl 2010-01-28 20:28:03 UTC (rev 4235) @@ -1,3 +1,9 @@ +; DART software - Copyright ? 2004 - 2010 UCAR. This open source software is +; provided by UCAR, "as is", without charge, subject to all terms of use at +; http://www.image.ucar.edu/DAReS/DART/DART_download +; +; DART $Id: $ + load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl" begin Modified: DART/trunk/models/wrf/experiments/Radar/IC/prep_IC_pertsounding.csh =================================================================== --- DART/trunk/models/wrf/experiments/Radar/IC/prep_IC_pertsounding.csh 2010-01-28 20:16:03 UTC (rev 4234) +++ DART/trunk/models/wrf/experiments/Radar/IC/prep_IC_pertsounding.csh 2010-01-28 20:28:03 UTC (rev 4235) @@ -1,8 +1,12 @@ #!/bin/csh # -# Data Assimilation Research Testbed -- DART -# Copyright 2004, Data Assimilation Initiative, University Corporation for Atmospheric Research -# Licensed under the GPL -- www.gpl.org/licenses/gpl.html +# DART software - Copyright ? 2004 - 2010 UCAR. This open source software is +# provided by UCAR, "as is", without charge, subject to all terms of use at +# http://www.image.ucar.edu/DAReS/DART/DART_download +# +# DART $Id$ +# + #--------------------------------------------------------------------------------------------------- # Script prepare_ideal_IC.csh # Original script by David Dowell Modified: DART/trunk/models/wrf/experiments/Radar/IC/sounding_perturbation/compile_pert_sounding.csh =================================================================== --- DART/trunk/models/wrf/experiments/Radar/IC/sounding_perturbation/compile_pert_sounding.csh 2010-01-28 20:16:03 UTC (rev 4234) +++ DART/trunk/models/wrf/experiments/Radar/IC/sounding_perturbation/compile_pert_sounding.csh 2010-01-28 20:28:03 UTC (rev 4235) @@ -1,5 +1,12 @@ #!/bin/csh # +# DART software - Copyright ? 2004 - 2010 UCAR. This open source software is +# provided by UCAR, "as is", without charge, subject to all terms of use at +# http://www.image.ucar.edu/DAReS/DART/DART_download +# +# DART $Id$ +# + # Compiles pert_sounding.f90 for ocotillo #ifort -c pert_sounding_module.f90 Modified: DART/trunk/models/wrf/experiments/Radar/IC/sounding_perturbation/pert_sounding.f90 =================================================================== --- DART/trunk/models/wrf/experiments/Radar/IC/sounding_perturbation/pert_sounding.f90 2010-01-28 20:16:03 UTC (rev 4234) +++ DART/trunk/models/wrf/experiments/Radar/IC/sounding_perturbation/pert_sounding.f90 2010-01-28 20:28:03 UTC (rev 4235) @@ -1,3 +1,10 @@ +! DART software - Copyright ? 2004 - 2010 UCAR. This open source software is +! provided by UCAR, "as is", without charge, subject to all terms of use at +! http://www.image.ucar.edu/DAReS/DART/DART_download +! +! DART $Id$ +! + program pert_sounding use pert_sounding_mod Modified: DART/trunk/models/wrf/experiments/Radar/IC/sounding_perturbation/pert_sounding_module.f90 =================================================================== --- DART/trunk/models/wrf/experiments/Radar/IC/sounding_perturbation/pert_sounding_module.f90 2010-01-28 20:16:03 UTC (rev 4234) +++ DART/trunk/models/wrf/experiments/Radar/IC/sounding_perturbation/pert_sounding_module.f90 2010-01-28 20:28:03 UTC (rev 4235) @@ -1,3 +1,10 @@ +! DART software - Copyright ? 2004 - 2010 UCAR. This open source software is +! provided by UCAR, "as is", without charge, subject to all terms of use at +! http://www.image.ucar.edu/DAReS/DART/DART_download +! +! DART $Id$ +! + module pert_sounding_mod ! This program adds perturbations to a sounding Modified: DART/trunk/models/wrf/experiments/Radar/IC/sounding_perturbation/readme.altug =================================================================== --- DART/trunk/models/wrf/experiments/Radar/IC/sounding_perturbation/readme.altug 2010-01-28 20:16:03 UTC (rev 4234) +++ DART/trunk/models/wrf/experiments/Radar/IC/sounding_perturbation/readme.altug 2010-01-28 20:28:03 UTC (rev 4235) @@ -1,3 +1,10 @@ +# DART software - Copyright ? 2004 - 2010 UCAR. This open source software is +# provided by UCAR, "as is", without charge, subject to all terms of use at +# http://www.image.ucar.edu/DAReS/DART/DART_download +# +# DART $Id: $ +# + November 13, 2006: Here's the procedure for using perturbed sounding data: Modified: DART/trunk/models/wrf/experiments/Radar/obs/README =================================================================== --- DART/trunk/models/wrf/experiments/Radar/obs/README 2010-01-28 20:16:03 UTC (rev 4234) +++ DART/trunk/models/wrf/experiments/Radar/obs/README 2010-01-28 20:28:03 UTC (rev 4235) @@ -1,5 +1,9 @@ +# DART software - Copyright ? 2004 - 2010 UCAR. This open source software is +# provided by UCAR, "as is", without charge, subject to all terms of use at +# http://www.image.ucar.edu/DAReS/DART/DART_download +# +# DART $Id: $ - There are 2 observation sequence files that need to be copied from a web site into this directory. Modified: DART/trunk/models/wrf/experiments/Radar/start_over.csh =================================================================== --- DART/trunk/models/wrf/experiments/Radar/start_over.csh 2010-01-28 20:16:03 UTC (rev 4234) +++ DART/trunk/models/wrf/experiments/Radar/start_over.csh 2010-01-28 20:28:03 UTC (rev 4235) @@ -1,5 +1,11 @@ #!/bin/csh +# DART software - Copyright ? 2004 - 2010 UCAR. This open source software is +# provided by UCAR, "as is", without charge, subject to all terms of use at +# http://www.image.ucar.edu/DAReS/DART/DART_download + +# DART $Id$ + \rm -r advance_temp* \rm assim_model_state* \rm filter_control* From nancy at ucar.edu Thu Jan 28 15:44:56 2010 From: nancy at ucar.edu (nancy at ucar.edu) Date: Thu, 28 Jan 2010 15:44:56 -0700 Subject: [Dart-dev] [4236] DART/trunk/models/wrf/matlab: new terms of use - no other changes Message-ID: Revision: 4236 Author: thoar Date: 2010-01-28 15:44:56 -0700 (Thu, 28 Jan 2010) Log Message: ----------- new terms of use - no other changes Modified Paths: -------------- DART/trunk/models/wrf/matlab/compute_density.m DART/trunk/models/wrf/matlab/compute_height.m DART/trunk/models/wrf/matlab/compute_pressure.m DART/trunk/models/wrf/matlab/compute_reflectivity.m DART/trunk/models/wrf/matlab/compute_temperature.m DART/trunk/models/wrf/matlab/correl.m DART/trunk/models/wrf/matlab/get_aux_fields_for_p.m DART/trunk/models/wrf/matlab/get_aux_fields_for_ref.m DART/trunk/models/wrf/matlab/get_constants.m DART/trunk/models/wrf/matlab/interp_to_height.m DART/trunk/models/wrf/matlab/interp_to_pressure.m DART/trunk/models/wrf/matlab/link_obs.m DART/trunk/models/wrf/matlab/map_wrf.m DART/trunk/models/wrf/matlab/map_wrf_diff.m DART/trunk/models/wrf/matlab/map_wrf_diff_time.m DART/trunk/models/wrf/matlab/map_wrf_diff_time_vect.m DART/trunk/models/wrf/matlab/map_wrf_spread_time.m DART/trunk/models/wrf/matlab/map_wrf_vect.m DART/trunk/models/wrf/matlab/psfc_map.m DART/trunk/models/wrf/matlab/psfc_movie.m DART/trunk/models/wrf/matlab/psfc_series.m DART/trunk/models/wrf/matlab/rms_cross_time.m DART/trunk/models/wrf/matlab/stats_wrf_prof.m DART/trunk/models/wrf/matlab/stats_wrf_prof_mem.m DART/trunk/models/wrf/matlab/stats_wrf_prof_vect.m DART/trunk/models/wrf/matlab/stats_wrf_time.m DART/trunk/models/wrf/matlab/stats_wrf_time_bd.m DART/trunk/models/wrf/matlab/stats_wrf_time_vect.m DART/trunk/models/wrf/matlab/stats_wrf_time_vect_point.m DART/trunk/models/wrf/matlab/w2_wrf.m -------------- next part -------------- Modified: DART/trunk/models/wrf/matlab/compute_density.m =================================================================== --- DART/trunk/models/wrf/matlab/compute_density.m 2010-01-28 20:28:03 UTC (rev 4235) +++ DART/trunk/models/wrf/matlab/compute_density.m 2010-01-28 22:44:56 UTC (rev 4236) @@ -11,10 +11,9 @@ % % See wrf subroutine calc_p_rho_phi. -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2007, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Modified: DART/trunk/models/wrf/matlab/compute_height.m =================================================================== --- DART/trunk/models/wrf/matlab/compute_height.m 2010-01-28 20:28:03 UTC (rev 4235) +++ DART/trunk/models/wrf/matlab/compute_height.m 2010-01-28 22:44:56 UTC (rev 4236) @@ -7,10 +7,9 @@ % height = height, at mass pts % -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2007, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Modified: DART/trunk/models/wrf/matlab/compute_pressure.m =================================================================== --- DART/trunk/models/wrf/matlab/compute_pressure.m 2010-01-28 20:28:03 UTC (rev 4235) +++ DART/trunk/models/wrf/matlab/compute_pressure.m 2010-01-28 22:44:56 UTC (rev 4236) @@ -20,10 +20,9 @@ % % See wrf subroutine calc_p_rho_phi. -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2007, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Modified: DART/trunk/models/wrf/matlab/compute_reflectivity.m =================================================================== --- DART/trunk/models/wrf/matlab/compute_reflectivity.m 2010-01-28 20:28:03 UTC (rev 4235) +++ DART/trunk/models/wrf/matlab/compute_reflectivity.m 2010-01-28 22:44:56 UTC (rev 4236) @@ -10,10 +10,9 @@ % Output: % ref = reflectivity, at mass pts -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2007, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Modified: DART/trunk/models/wrf/matlab/compute_temperature.m =================================================================== --- DART/trunk/models/wrf/matlab/compute_temperature.m 2010-01-28 20:28:03 UTC (rev 4235) +++ DART/trunk/models/wrf/matlab/compute_temperature.m 2010-01-28 22:44:56 UTC (rev 4236) @@ -8,10 +8,9 @@ % Output: % temp = temperature, at mass pts -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2007, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Modified: DART/trunk/models/wrf/matlab/correl.m =================================================================== --- DART/trunk/models/wrf/matlab/correl.m 2010-01-28 20:28:03 UTC (rev 4235) +++ DART/trunk/models/wrf/matlab/correl.m 2010-01-28 22:44:56 UTC (rev 4236) @@ -1,7 +1,8 @@ -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2007, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +% correl + +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Modified: DART/trunk/models/wrf/matlab/get_aux_fields_for_p.m =================================================================== --- DART/trunk/models/wrf/matlab/get_aux_fields_for_p.m 2010-01-28 20:28:03 UTC (rev 4235) +++ DART/trunk/models/wrf/matlab/get_aux_fields_for_p.m 2010-01-28 22:44:56 UTC (rev 4236) @@ -1,6 +1,5 @@ function [ mu, dnw, phi, theta, qv ] = ... get_aux_fields_for_p( filename, T0, varargin ) -% % Retrieves various 2d and 3d fields needed to calculate pressure % from the netcdf file "filename". % @@ -14,10 +13,9 @@ % theta = full theta (3d) % qv = water-vapor mixing ratio (3d) -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2007, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Modified: DART/trunk/models/wrf/matlab/get_aux_fields_for_ref.m =================================================================== --- DART/trunk/models/wrf/matlab/get_aux_fields_for_ref.m 2010-01-28 20:28:03 UTC (rev 4235) +++ DART/trunk/models/wrf/matlab/get_aux_fields_for_ref.m 2010-01-28 22:44:56 UTC (rev 4236) @@ -1,5 +1,4 @@ function [ qr, qg, qs ] = get_aux_fields_for_ref( filename, varargin ) -% % [ qr, qg, qs ] = get_aux_fields_for_ref( filename, varargin ) % % Retrieves various 3d fields needed to calculate reflectivity @@ -12,10 +11,9 @@ % qg = graupel mixing ratio (3d) % qs = snow mixing ratio (3d) -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2007, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Modified: DART/trunk/models/wrf/matlab/get_constants.m =================================================================== --- DART/trunk/models/wrf/matlab/get_constants.m 2010-01-28 20:28:03 UTC (rev 4235) +++ DART/trunk/models/wrf/matlab/get_constants.m 2010-01-28 22:44:56 UTC (rev 4236) @@ -1,13 +1,11 @@ function [ Cp, Rd, gamma, Rv, L_c, g, T0, p0] = get_constants() -% % Ideally, this would take netcdf filename as input, and % read required constants from file. At present, just a % repository for hardwired constants. -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2007, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Modified: DART/trunk/models/wrf/matlab/interp_to_height.m =================================================================== --- DART/trunk/models/wrf/matlab/interp_to_height.m 2010-01-28 20:28:03 UTC (rev 4235) +++ DART/trunk/models/wrf/matlab/interp_to_height.m 2010-01-28 22:44:56 UTC (rev 4236) @@ -7,10 +7,9 @@ % in heights(:,:,:). Interpolation is linear in height. % Set var_interp to NaN where level is beneath (<) heights(1,:,:). -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2007, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Modified: DART/trunk/models/wrf/matlab/interp_to_pressure.m =================================================================== --- DART/trunk/models/wrf/matlab/interp_to_pressure.m 2010-01-28 20:28:03 UTC (rev 4235) +++ DART/trunk/models/wrf/matlab/interp_to_pressure.m 2010-01-28 22:44:56 UTC (rev 4236) @@ -3,10 +3,9 @@ % in pressures(:,:,:). Interpolation is linear in log pressure. % Set var_interp to NaN where p_level is beneath (>) pressure(1,:,:). -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2007, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Modified: DART/trunk/models/wrf/matlab/link_obs.m =================================================================== --- DART/trunk/models/wrf/matlab/link_obs.m 2010-01-28 20:28:03 UTC (rev 4235) +++ DART/trunk/models/wrf/matlab/link_obs.m 2010-01-28 22:44:56 UTC (rev 4236) @@ -9,10 +9,9 @@ % EXAMPLE 3: % link_obs('obs_sequence_003.nc','RADIOSONDE_TEMPERATURE') -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2009, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Modified: DART/trunk/models/wrf/matlab/map_wrf.m =================================================================== --- DART/trunk/models/wrf/matlab/map_wrf.m 2010-01-28 20:28:03 UTC (rev 4235) +++ DART/trunk/models/wrf/matlab/map_wrf.m 2010-01-28 22:44:56 UTC (rev 4236) @@ -10,6 +10,16 @@ % Example: % map_wrf(fname, varname, copystring, levelindx, timeindx ) +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download +% +% +% $URL$ +% $Id$ +% $Revision$ +% $Date$ + if ( nargin == 3 ) levelindx = 1; timeindx = 1; @@ -19,17 +29,6 @@ error('Wrong number of arguments ... must have 3,4, or 5') end -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2007, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html -% -% -% $URL$ -% $Id$ -% $Revision$ -% $Date$ - if (exist(fname,'file') ~= 2) error('%s does not exist',fname) end Modified: DART/trunk/models/wrf/matlab/map_wrf_diff.m =================================================================== --- DART/trunk/models/wrf/matlab/map_wrf_diff.m 2010-01-28 20:28:03 UTC (rev 4235) +++ DART/trunk/models/wrf/matlab/map_wrf_diff.m 2010-01-28 22:44:56 UTC (rev 4236) @@ -1,7 +1,8 @@ -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2007, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +% map_wrf_diff + +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Modified: DART/trunk/models/wrf/matlab/map_wrf_diff_time.m =================================================================== --- DART/trunk/models/wrf/matlab/map_wrf_diff_time.m 2010-01-28 20:28:03 UTC (rev 4235) +++ DART/trunk/models/wrf/matlab/map_wrf_diff_time.m 2010-01-28 22:44:56 UTC (rev 4236) @@ -1,7 +1,8 @@ -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2007, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +% map_wrf_diff_time + +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Modified: DART/trunk/models/wrf/matlab/map_wrf_diff_time_vect.m =================================================================== --- DART/trunk/models/wrf/matlab/map_wrf_diff_time_vect.m 2010-01-28 20:28:03 UTC (rev 4235) +++ DART/trunk/models/wrf/matlab/map_wrf_diff_time_vect.m 2010-01-28 22:44:56 UTC (rev 4236) @@ -1,7 +1,8 @@ -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2007, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%map_wrf_diff_time_vect + +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Modified: DART/trunk/models/wrf/matlab/map_wrf_spread_time.m =================================================================== --- DART/trunk/models/wrf/matlab/map_wrf_spread_time.m 2010-01-28 20:28:03 UTC (rev 4235) +++ DART/trunk/models/wrf/matlab/map_wrf_spread_time.m 2010-01-28 22:44:56 UTC (rev 4236) @@ -1,7 +1,8 @@ -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2007, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +% map_wrf_spread_time + +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Modified: DART/trunk/models/wrf/matlab/map_wrf_vect.m =================================================================== --- DART/trunk/models/wrf/matlab/map_wrf_vect.m 2010-01-28 20:28:03 UTC (rev 4235) +++ DART/trunk/models/wrf/matlab/map_wrf_vect.m 2010-01-28 22:44:56 UTC (rev 4236) @@ -1,7 +1,8 @@ -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2007, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +% map_wrf_vect + +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ @@ -11,7 +12,7 @@ % Select field to plot (U, V, W, GZ, T, MU, QV, QC, QR) - field_num = input('Input field type, 1=U, 2=V, 3=W, 4=GZ, 5=T, 6=MU, 7=QV, 8=QC, 9=QR: '); +field_num = input('Input field type, 1=U, 2=V, 3=W, 4=GZ, 5=T, 6=MU, 7=QV, 8=QC, 9=QR: '); % Get file name of true state file fname = 'True_State'; Modified: DART/trunk/models/wrf/matlab/psfc_map.m =================================================================== --- DART/trunk/models/wrf/matlab/psfc_map.m 2010-01-28 20:28:03 UTC (rev 4235) +++ DART/trunk/models/wrf/matlab/psfc_map.m 2010-01-28 22:44:56 UTC (rev 4236) @@ -1,11 +1,8 @@ % psfc_map -% -% -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2007, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Modified: DART/trunk/models/wrf/matlab/psfc_movie.m =================================================================== --- DART/trunk/models/wrf/matlab/psfc_movie.m 2010-01-28 20:28:03 UTC (rev 4235) +++ DART/trunk/models/wrf/matlab/psfc_movie.m 2010-01-28 22:44:56 UTC (rev 4236) @@ -1,10 +1,8 @@ % psfc_movie -% -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2007, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Modified: DART/trunk/models/wrf/matlab/psfc_series.m =================================================================== --- DART/trunk/models/wrf/matlab/psfc_series.m 2010-01-28 20:28:03 UTC (rev 4235) +++ DART/trunk/models/wrf/matlab/psfc_series.m 2010-01-28 22:44:56 UTC (rev 4236) @@ -1,10 +1,8 @@ % psfc_series -% -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2007, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Modified: DART/trunk/models/wrf/matlab/rms_cross_time.m =================================================================== --- DART/trunk/models/wrf/matlab/rms_cross_time.m 2010-01-28 20:28:03 UTC (rev 4235) +++ DART/trunk/models/wrf/matlab/rms_cross_time.m 2010-01-28 22:44:56 UTC (rev 4236) @@ -1,7 +1,8 @@ -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2007, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +% rms_cross_time + +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Modified: DART/trunk/models/wrf/matlab/stats_wrf_prof.m =================================================================== --- DART/trunk/models/wrf/matlab/stats_wrf_prof.m 2010-01-28 20:28:03 UTC (rev 4235) +++ DART/trunk/models/wrf/matlab/stats_wrf_prof.m 2010-01-28 22:44:56 UTC (rev 4236) @@ -1,7 +1,8 @@ -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2007, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +% stats_wrf_prof + +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Modified: DART/trunk/models/wrf/matlab/stats_wrf_prof_mem.m =================================================================== --- DART/trunk/models/wrf/matlab/stats_wrf_prof_mem.m 2010-01-28 20:28:03 UTC (rev 4235) +++ DART/trunk/models/wrf/matlab/stats_wrf_prof_mem.m 2010-01-28 22:44:56 UTC (rev 4236) @@ -1,7 +1,8 @@ -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2007, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +% stats_wrf_prof_mem + +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Modified: DART/trunk/models/wrf/matlab/stats_wrf_prof_vect.m =================================================================== --- DART/trunk/models/wrf/matlab/stats_wrf_prof_vect.m 2010-01-28 20:28:03 UTC (rev 4235) +++ DART/trunk/models/wrf/matlab/stats_wrf_prof_vect.m 2010-01-28 22:44:56 UTC (rev 4236) @@ -1,7 +1,8 @@ -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2007, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +% stats_wrf_prof_vect + +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Modified: DART/trunk/models/wrf/matlab/stats_wrf_time.m =================================================================== --- DART/trunk/models/wrf/matlab/stats_wrf_time.m 2010-01-28 20:28:03 UTC (rev 4235) +++ DART/trunk/models/wrf/matlab/stats_wrf_time.m 2010-01-28 22:44:56 UTC (rev 4236) @@ -1,7 +1,8 @@ -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2007, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +% stats_wrf_time + +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Modified: DART/trunk/models/wrf/matlab/stats_wrf_time_bd.m =================================================================== --- DART/trunk/models/wrf/matlab/stats_wrf_time_bd.m 2010-01-28 20:28:03 UTC (rev 4235) +++ DART/trunk/models/wrf/matlab/stats_wrf_time_bd.m 2010-01-28 22:44:56 UTC (rev 4236) @@ -1,7 +1,8 @@ -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2007, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +% stats_wrf_time_bd + +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Modified: DART/trunk/models/wrf/matlab/stats_wrf_time_vect.m =================================================================== --- DART/trunk/models/wrf/matlab/stats_wrf_time_vect.m 2010-01-28 20:28:03 UTC (rev 4235) +++ DART/trunk/models/wrf/matlab/stats_wrf_time_vect.m 2010-01-28 22:44:56 UTC (rev 4236) @@ -1,7 +1,8 @@ -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2007, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +% stats_wrf_time_vect + +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Modified: DART/trunk/models/wrf/matlab/stats_wrf_time_vect_point.m =================================================================== --- DART/trunk/models/wrf/matlab/stats_wrf_time_vect_point.m 2010-01-28 20:28:03 UTC (rev 4235) +++ DART/trunk/models/wrf/matlab/stats_wrf_time_vect_point.m 2010-01-28 22:44:56 UTC (rev 4236) @@ -1,7 +1,8 @@ -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2007, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +% stats_wrf_time_vect_point + +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Modified: DART/trunk/models/wrf/matlab/w2_wrf.m =================================================================== --- DART/trunk/models/wrf/matlab/w2_wrf.m 2010-01-28 20:28:03 UTC (rev 4235) +++ DART/trunk/models/wrf/matlab/w2_wrf.m 2010-01-28 22:44:56 UTC (rev 4236) @@ -1,7 +1,8 @@ -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2007, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +% w2_wrf + +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ From nancy at ucar.edu Thu Jan 28 15:54:26 2010 From: nancy at ucar.edu (nancy at ucar.edu) Date: Thu, 28 Jan 2010 15:54:26 -0700 Subject: [Dart-dev] [4237] DART/trunk/observations/utilities/threed_sphere: new terms of use - no other changes Message-ID: Revision: 4237 Author: thoar Date: 2010-01-28 15:54:26 -0700 (Thu, 28 Jan 2010) Log Message: ----------- new terms of use - no other changes Modified Paths: -------------- DART/trunk/observations/utilities/threed_sphere/linked_observations.m DART/trunk/observations/utilities/threed_sphere/plot_obs_netcdf.m DART/trunk/observations/utilities/threed_sphere/plot_obs_netcdf_diffs.m DART/trunk/observations/utilities/threed_sphere/read_obs_netcdf.m Property Changed: ---------------- DART/trunk/observations/utilities/threed_sphere/linked_observations.m DART/trunk/observations/utilities/threed_sphere/plot_obs_netcdf.m -------------- next part -------------- Modified: DART/trunk/observations/utilities/threed_sphere/linked_observations.m =================================================================== --- DART/trunk/observations/utilities/threed_sphere/linked_observations.m 2010-01-28 22:44:56 UTC (rev 4236) +++ DART/trunk/observations/utilities/threed_sphere/linked_observations.m 2010-01-28 22:54:26 UTC (rev 4237) @@ -9,10 +9,9 @@ % obs.obs observation values % obs.qc observation DART QC code -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2009, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Property changes on: DART/trunk/observations/utilities/threed_sphere/linked_observations.m ___________________________________________________________________ Modified: svn:keywords - Date Rev Author URL Id + Date Revision Author HeadURL Id Modified: DART/trunk/observations/utilities/threed_sphere/plot_obs_netcdf.m =================================================================== --- DART/trunk/observations/utilities/threed_sphere/plot_obs_netcdf.m 2010-01-28 22:44:56 UTC (rev 4236) +++ DART/trunk/observations/utilities/threed_sphere/plot_obs_netcdf.m 2010-01-28 22:54:26 UTC (rev 4237) @@ -32,11 +32,10 @@ % verbose = 1; % anything > 0 == 'true' % % bob = plot_obs_netcdf(fname, ObsTypeString, region, CopyString, QCString, maxgoodQC, verbose); - -%% Data Assimilation Research Testbed -- DART -% Copyright 2004-2007, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html + +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Property changes on: DART/trunk/observations/utilities/threed_sphere/plot_obs_netcdf.m ___________________________________________________________________ Modified: svn:keywords - Date Rev Author URL Id + Date Revision Author HeadURL Id Modified: DART/trunk/observations/utilities/threed_sphere/plot_obs_netcdf_diffs.m =================================================================== --- DART/trunk/observations/utilities/threed_sphere/plot_obs_netcdf_diffs.m 2010-01-28 22:44:56 UTC (rev 4236) +++ DART/trunk/observations/utilities/threed_sphere/plot_obs_netcdf_diffs.m 2010-01-28 22:54:26 UTC (rev 4237) @@ -15,10 +15,9 @@ % record the user input -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2007, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Modified: DART/trunk/observations/utilities/threed_sphere/read_obs_netcdf.m =================================================================== --- DART/trunk/observations/utilities/threed_sphere/read_obs_netcdf.m 2010-01-28 22:44:56 UTC (rev 4236) +++ DART/trunk/observations/utilities/threed_sphere/read_obs_netcdf.m 2010-01-28 22:54:26 UTC (rev 4237) @@ -32,10 +32,9 @@ % qc: [2343x1 double] % badobs: [1x1 struct] -%% Data Assimilation Research Testbed -- DART -% Copyright 2004-2007, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ From nancy at ucar.edu Thu Jan 28 16:22:39 2010 From: nancy at ucar.edu (nancy at ucar.edu) Date: Thu, 28 Jan 2010 16:22:39 -0700 Subject: [Dart-dev] [4238] DART/trunk/DART_LAB/matlab: new terms of use - function names match file names Message-ID: Revision: 4238 Author: thoar Date: 2010-01-28 16:22:39 -0700 (Thu, 28 Jan 2010) Log Message: ----------- new terms of use - function names match file names Modified Paths: -------------- DART/trunk/DART_LAB/matlab/advance_oned.m DART/trunk/DART_LAB/matlab/comp_cov_factor.m DART/trunk/DART_LAB/matlab/g_prod_plot.m DART/trunk/DART_LAB/matlab/gaussian_product.m DART/trunk/DART_LAB/matlab/get_ens_rank.m DART/trunk/DART_LAB/matlab/get_state_increments.m DART/trunk/DART_LAB/matlab/lorenz_63_adv_1step.m DART/trunk/DART_LAB/matlab/lorenz_63_static_init_model.m DART/trunk/DART_LAB/matlab/lorenz_96_adv_1step.m DART/trunk/DART_LAB/matlab/lorenz_96_static_init_model.m DART/trunk/DART_LAB/matlab/obs_increment_eakf.m DART/trunk/DART_LAB/matlab/obs_increment_enkf.m DART/trunk/DART_LAB/matlab/obs_increment_rhf.m DART/trunk/DART_LAB/matlab/oned_ensemble.m DART/trunk/DART_LAB/matlab/oned_model.m DART/trunk/DART_LAB/matlab/plot_gaussian.m DART/trunk/DART_LAB/matlab/plot_polar.m DART/trunk/DART_LAB/matlab/product_of_gaussians.m DART/trunk/DART_LAB/matlab/run_lorenz_63.m DART/trunk/DART_LAB/matlab/run_lorenz_96.m DART/trunk/DART_LAB/matlab/run_template.m DART/trunk/DART_LAB/matlab/twod_ensemble.m Property Changed: ---------------- DART/trunk/DART_LAB/matlab/advance_oned.m DART/trunk/DART_LAB/matlab/comp_cov_factor.m DART/trunk/DART_LAB/matlab/g_prod_plot.m DART/trunk/DART_LAB/matlab/gaussian_product.m DART/trunk/DART_LAB/matlab/get_ens_rank.m DART/trunk/DART_LAB/matlab/get_state_increments.m DART/trunk/DART_LAB/matlab/lorenz_63_adv_1step.m DART/trunk/DART_LAB/matlab/lorenz_63_static_init_model.m DART/trunk/DART_LAB/matlab/lorenz_96_adv_1step.m DART/trunk/DART_LAB/matlab/lorenz_96_static_init_model.m DART/trunk/DART_LAB/matlab/obs_increment_eakf.m DART/trunk/DART_LAB/matlab/obs_increment_enkf.m DART/trunk/DART_LAB/matlab/obs_increment_rhf.m DART/trunk/DART_LAB/matlab/oned_ensemble.m DART/trunk/DART_LAB/matlab/oned_model.m DART/trunk/DART_LAB/matlab/plot_gaussian.m DART/trunk/DART_LAB/matlab/plot_polar.m DART/trunk/DART_LAB/matlab/product_of_gaussians.m DART/trunk/DART_LAB/matlab/run_lorenz_63.m DART/trunk/DART_LAB/matlab/run_lorenz_96.m DART/trunk/DART_LAB/matlab/run_template.m DART/trunk/DART_LAB/matlab/twod_ensemble.m -------------- next part -------------- Modified: DART/trunk/DART_LAB/matlab/advance_oned.m =================================================================== --- DART/trunk/DART_LAB/matlab/advance_oned.m 2010-01-28 22:54:26 UTC (rev 4237) +++ DART/trunk/DART_LAB/matlab/advance_oned.m 2010-01-28 23:22:39 UTC (rev 4238) @@ -1,9 +1,9 @@ function x_new = advance_oned(x, alpha, model_bias) +% advance_oned(x, alpha, model_bias) -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2009, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Property changes on: DART/trunk/DART_LAB/matlab/advance_oned.m ___________________________________________________________________ Modified: svn:keywords - Date Rev Author URL Id + Date Revision Author HeadURL Id Modified: DART/trunk/DART_LAB/matlab/comp_cov_factor.m =================================================================== --- DART/trunk/DART_LAB/matlab/comp_cov_factor.m 2010-01-28 22:54:26 UTC (rev 4237) +++ DART/trunk/DART_LAB/matlab/comp_cov_factor.m 2010-01-28 23:22:39 UTC (rev 4238) @@ -1,10 +1,9 @@ function cov_factor = comp_cov_factor(z_in, c) -% Gaspari Cohn cutoff, z_in is the distance while c is the cutoff +% comp_cov_factor Gaspari Cohn cutoff, z_in is the distance while c is the cutoff -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2009, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Property changes on: DART/trunk/DART_LAB/matlab/comp_cov_factor.m ___________________________________________________________________ Modified: svn:keywords - Date Rev Author URL Id + Date Revision Author HeadURL Id Modified: DART/trunk/DART_LAB/matlab/g_prod_plot.m =================================================================== --- DART/trunk/DART_LAB/matlab/g_prod_plot.m 2010-01-28 22:54:26 UTC (rev 4237) +++ DART/trunk/DART_LAB/matlab/g_prod_plot.m 2010-01-28 23:22:39 UTC (rev 4238) @@ -1,10 +1,9 @@ function [prior_mean, prior_sd, obs_mean, obs_err_sd, is_err] = g_prod_plot(h) -% Updates the plot of the prior and observation gaussians +% g_prod_plot Updates the plot of the prior and observation gaussians -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2009, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Property changes on: DART/trunk/DART_LAB/matlab/g_prod_plot.m ___________________________________________________________________ Modified: svn:keywords - Date Rev Author URL Id + Date Revision Author HeadURL Id Modified: DART/trunk/DART_LAB/matlab/gaussian_product.m =================================================================== --- DART/trunk/DART_LAB/matlab/gaussian_product.m 2010-01-28 22:54:26 UTC (rev 4237) +++ DART/trunk/DART_LAB/matlab/gaussian_product.m 2010-01-28 23:22:39 UTC (rev 4238) @@ -13,10 +13,9 @@ % See also: oned_model, oned_ensemble, twod_ensemble, run_lorenz_63, % run_lorenz_96 -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2009, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ @@ -24,8 +23,6 @@ % $Revision$ % $Date$ -% Last Modified by GUIDE v2.5 21-Mar-2009 22:11:31 - % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... Property changes on: DART/trunk/DART_LAB/matlab/gaussian_product.m ___________________________________________________________________ Modified: svn:keywords - Date Rev Author URL Id + Date Revision Author HeadURL Id Modified: DART/trunk/DART_LAB/matlab/get_ens_rank.m =================================================================== --- DART/trunk/DART_LAB/matlab/get_ens_rank.m 2010-01-28 22:54:26 UTC (rev 4237) +++ DART/trunk/DART_LAB/matlab/get_ens_rank.m 2010-01-28 23:22:39 UTC (rev 4238) @@ -1,9 +1,9 @@ function [rank] = get_ens_rank(ens, x) +% get_ens_rank -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2009, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Property changes on: DART/trunk/DART_LAB/matlab/get_ens_rank.m ___________________________________________________________________ Modified: svn:keywords - Date Rev Author URL Id + Date Revision Author HeadURL Id Modified: DART/trunk/DART_LAB/matlab/get_state_increments.m =================================================================== --- DART/trunk/DART_LAB/matlab/get_state_increments.m 2010-01-28 22:54:26 UTC (rev 4237) +++ DART/trunk/DART_LAB/matlab/get_state_increments.m 2010-01-28 23:22:39 UTC (rev 4238) @@ -1,11 +1,10 @@ function [state_incs] = get_state_increments(state_ens, obs_ens, obs_incs) -% Computes state increments given observation increments and +% get_state_increments Computes state increments given observation increments and % the state and obs prior ensembles -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2009, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Property changes on: DART/trunk/DART_LAB/matlab/get_state_increments.m ___________________________________________________________________ Modified: svn:keywords - Date Rev Author URL Id + Date Revision Author HeadURL Id Modified: DART/trunk/DART_LAB/matlab/lorenz_63_adv_1step.m =================================================================== --- DART/trunk/DART_LAB/matlab/lorenz_63_adv_1step.m 2010-01-28 22:54:26 UTC (rev 4237) +++ DART/trunk/DART_LAB/matlab/lorenz_63_adv_1step.m 2010-01-28 23:22:39 UTC (rev 4238) @@ -1,13 +1,12 @@ function[x_new, time_new] = lorenz_63_adv_1step(x, time) -% Does a single time step advance for lorenz convective 3 variable model -% using two step runge-kutta time step +% lorenz_63)adv_1step advances the lorenz convective 3 variable model +% for a single two step runge-kutta time step % % x is the 3-vector state, time is the 2-vector days and seconds time -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2007, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Property changes on: DART/trunk/DART_LAB/matlab/lorenz_63_adv_1step.m ___________________________________________________________________ Modified: svn:keywords - Date Rev Author URL Id + Date Revision Author HeadURL Id Modified: DART/trunk/DART_LAB/matlab/lorenz_63_static_init_model.m =================================================================== --- DART/trunk/DART_LAB/matlab/lorenz_63_static_init_model.m 2010-01-28 22:54:26 UTC (rev 4237) +++ DART/trunk/DART_LAB/matlab/lorenz_63_static_init_model.m 2010-01-28 23:22:39 UTC (rev 4238) @@ -1,10 +1,9 @@ -% Initializes class data for L63, sets up global storage +% lorenz_63_static_init_model Initializes class data for L63, sets up global storage % and reads in control data from input file -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2009, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Property changes on: DART/trunk/DART_LAB/matlab/lorenz_63_static_init_model.m ___________________________________________________________________ Modified: svn:keywords - Date Rev Author URL Id + Date Revision Author HeadURL Id Modified: DART/trunk/DART_LAB/matlab/lorenz_96_adv_1step.m =================================================================== --- DART/trunk/DART_LAB/matlab/lorenz_96_adv_1step.m 2010-01-28 22:54:26 UTC (rev 4237) +++ DART/trunk/DART_LAB/matlab/lorenz_96_adv_1step.m 2010-01-28 23:22:39 UTC (rev 4238) @@ -1,12 +1,11 @@ function[x_new, time_new] = lorenz_96_adv_1step(x, time) -% Does a single time step advance for lorenz_96 40-variable model using four step runge-kutta time step +% lorenz_96_adv_1step Does a single time step advance for lorenz_96 40-variable model using four step runge-kutta time step % % x is the 40-vector state, time is the 2-vector days and seconds time -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2009, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Property changes on: DART/trunk/DART_LAB/matlab/lorenz_96_adv_1step.m ___________________________________________________________________ Modified: svn:keywords - Date Rev Author URL Id + Date Revision Author HeadURL Id Modified: DART/trunk/DART_LAB/matlab/lorenz_96_static_init_model.m =================================================================== --- DART/trunk/DART_LAB/matlab/lorenz_96_static_init_model.m 2010-01-28 22:54:26 UTC (rev 4237) +++ DART/trunk/DART_LAB/matlab/lorenz_96_static_init_model.m 2010-01-28 23:22:39 UTC (rev 4238) @@ -1,10 +1,9 @@ -% Initializes class data for L96, sets up global storage +% lorenz_96_static_init_model Initializes class data for L96, sets up global storage % and reads in control data from input file -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2009, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Property changes on: DART/trunk/DART_LAB/matlab/lorenz_96_static_init_model.m ___________________________________________________________________ Modified: svn:keywords - Date Rev Author URL Id + Date Revision Author HeadURL Id Modified: DART/trunk/DART_LAB/matlab/obs_increment_eakf.m =================================================================== --- DART/trunk/DART_LAB/matlab/obs_increment_eakf.m 2010-01-28 22:54:26 UTC (rev 4237) +++ DART/trunk/DART_LAB/matlab/obs_increment_eakf.m 2010-01-28 23:22:39 UTC (rev 4238) @@ -1,10 +1,9 @@ function [obs_increments, err] = obs_increment_eakf(ensemble, observation, obs_error_var) -% Computes increments for an ensemble adjustment filter +% obs_increment_eakf Computes increments for an ensemble adjustment filter -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2009, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Property changes on: DART/trunk/DART_LAB/matlab/obs_increment_eakf.m ___________________________________________________________________ Modified: svn:keywords - Date Rev Author URL Id + Date Revision Author HeadURL Id Modified: DART/trunk/DART_LAB/matlab/obs_increment_enkf.m =================================================================== --- DART/trunk/DART_LAB/matlab/obs_increment_enkf.m 2010-01-28 22:54:26 UTC (rev 4237) +++ DART/trunk/DART_LAB/matlab/obs_increment_enkf.m 2010-01-28 23:22:39 UTC (rev 4238) @@ -1,10 +1,9 @@ -function [obs_increments, err] = obs_increment_eakf(ensemble, observation, obs_error_var) -% Computes increments for an ensemble Kalman filter with perturbed obs mean correction. +function [obs_increments, err] = obs_increment_enkf(ensemble, observation, obs_error_var) +% obs_increment_enkf Computes increments for an ensemble Kalman filter with perturbed obs mean correction. -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2009, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Property changes on: DART/trunk/DART_LAB/matlab/obs_increment_enkf.m ___________________________________________________________________ Modified: svn:keywords - Date Rev Author URL Id + Date Revision Author HeadURL Id Modified: DART/trunk/DART_LAB/matlab/obs_increment_rhf.m =================================================================== --- DART/trunk/DART_LAB/matlab/obs_increment_rhf.m 2010-01-28 22:54:26 UTC (rev 4237) +++ DART/trunk/DART_LAB/matlab/obs_increment_rhf.m 2010-01-28 23:22:39 UTC (rev 4238) @@ -1,12 +1,11 @@ -function [obs_increments, err] = obs_increment_eakf(ensemble, observation, obs_error_var) -% Computes increments for a rank histogram filter +function [obs_increments, err] = obs_increment_rhf(ensemble, observation, obs_error_var) +% obs_increment_rhf Computes increments for a rank histogram filter % Need to discuss the available options eventually % For now this implements the default options -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2009, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Property changes on: DART/trunk/DART_LAB/matlab/obs_increment_rhf.m ___________________________________________________________________ Modified: svn:keywords - Date Rev Author URL Id + Date Revision Author HeadURL Id Modified: DART/trunk/DART_LAB/matlab/oned_ensemble.m =================================================================== --- DART/trunk/DART_LAB/matlab/oned_ensemble.m 2010-01-28 22:54:26 UTC (rev 4237) +++ DART/trunk/DART_LAB/matlab/oned_ensemble.m 2010-01-28 23:22:39 UTC (rev 4238) @@ -32,10 +32,9 @@ % See also: gaussian_product, oned_model, twod_ensemble, run_lorenz_63, % run_lorenz_96 -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2009, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Property changes on: DART/trunk/DART_LAB/matlab/oned_ensemble.m ___________________________________________________________________ Modified: svn:keywords - Date Rev Author URL Id + Date Revision Author HeadURL Id Modified: DART/trunk/DART_LAB/matlab/oned_model.m =================================================================== --- DART/trunk/DART_LAB/matlab/oned_model.m 2010-01-28 22:54:26 UTC (rev 4237) +++ DART/trunk/DART_LAB/matlab/oned_model.m 2010-01-28 23:22:39 UTC (rev 4238) @@ -38,10 +38,9 @@ % See also: gaussian_product, oned_ensemble, twod_ensemble, run_lorenz_63, % run_lorenz_96 -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2009, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Property changes on: DART/trunk/DART_LAB/matlab/oned_model.m ___________________________________________________________________ Modified: svn:keywords - Date Rev Author URL Id + Date Revision Author HeadURL Id Modified: DART/trunk/DART_LAB/matlab/plot_gaussian.m =================================================================== --- DART/trunk/DART_LAB/matlab/plot_gaussian.m 2010-01-28 22:54:26 UTC (rev 4237) +++ DART/trunk/DART_LAB/matlab/plot_gaussian.m 2010-01-28 23:22:39 UTC (rev 4238) @@ -1,10 +1,9 @@ function[plot_handle] = plot_gaussian(mean, sd, weight) -% Plot gaussian over 5 standard deviations +% plot_gaussian Plot gaussian over 5 standard deviations -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2009, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Property changes on: DART/trunk/DART_LAB/matlab/plot_gaussian.m ___________________________________________________________________ Modified: svn:keywords - Date Rev Author URL Id + Date Revision Author HeadURL Id Modified: DART/trunk/DART_LAB/matlab/plot_polar.m =================================================================== --- DART/trunk/DART_LAB/matlab/plot_polar.m 2010-01-28 22:54:26 UTC (rev 4237) +++ DART/trunk/DART_LAB/matlab/plot_polar.m 2010-01-28 23:22:39 UTC (rev 4238) @@ -1,10 +1,9 @@ function h = plot_polar(y, x, mean_dist, string, model_size) -% +% plot_polar -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2009, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Property changes on: DART/trunk/DART_LAB/matlab/plot_polar.m ___________________________________________________________________ Modified: svn:keywords - Date Rev Author URL Id + Date Revision Author HeadURL Id Modified: DART/trunk/DART_LAB/matlab/product_of_gaussians.m =================================================================== --- DART/trunk/DART_LAB/matlab/product_of_gaussians.m 2010-01-28 22:54:26 UTC (rev 4237) +++ DART/trunk/DART_LAB/matlab/product_of_gaussians.m 2010-01-28 23:22:39 UTC (rev 4238) @@ -1,11 +1,10 @@ -function [post_mean post_sd weight] =... +function [post_mean post_sd weight] = ... product_of_gaussians(prior_mean, prior_sd, obs, obs_err_sd) -% Computes mean, variance and weight of the product of two unit gaussians given the mean and standard deviation of each. +% product_of_gaussians Computes mean, variance and weight of the product of two unit gaussians given the mean and standard deviation of each. -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2009, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Property changes on: DART/trunk/DART_LAB/matlab/product_of_gaussians.m ___________________________________________________________________ Modified: svn:keywords - Date Rev Author URL Id + Date Revision Author HeadURL Id Modified: DART/trunk/DART_LAB/matlab/run_lorenz_63.m =================================================================== --- DART/trunk/DART_LAB/matlab/run_lorenz_63.m 2010-01-28 22:54:26 UTC (rev 4237) +++ DART/trunk/DART_LAB/matlab/run_lorenz_63.m 2010-01-28 23:22:39 UTC (rev 4238) @@ -33,10 +33,9 @@ % See also: gaussian_product, oned_model, oned_ensemble, twod_ensemble, % run_lorenz_96 -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2009, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ @@ -44,8 +43,6 @@ % $Revision$ % $Date$ -% Last Modified by GUIDE v2.5 02-Jun-2009 14:20:57 - % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... Property changes on: DART/trunk/DART_LAB/matlab/run_lorenz_63.m ___________________________________________________________________ Modified: svn:keywords - Date Rev Author URL Id + Date Revision Author HeadURL Id Modified: DART/trunk/DART_LAB/matlab/run_lorenz_96.m =================================================================== --- DART/trunk/DART_LAB/matlab/run_lorenz_96.m 2010-01-28 22:54:26 UTC (rev 4237) +++ DART/trunk/DART_LAB/matlab/run_lorenz_96.m 2010-01-28 23:22:39 UTC (rev 4238) @@ -24,10 +24,9 @@ % See also: gaussian_product, oned_model, oned_ensemble, twod_ensemble, % run_lorenz_63 -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2009, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ @@ -35,8 +34,6 @@ % $Revision$ % $Date$ -% Last Modified by GUIDE v2.5 31-Aug-2009 11:38:57 - % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... Property changes on: DART/trunk/DART_LAB/matlab/run_lorenz_96.m ___________________________________________________________________ Modified: svn:keywords - Date Rev Author URL Id + Date Revision Author HeadURL Id Modified: DART/trunk/DART_LAB/matlab/run_template.m =================================================================== --- DART/trunk/DART_LAB/matlab/run_template.m 2010-01-28 22:54:26 UTC (rev 4237) +++ DART/trunk/DART_LAB/matlab/run_template.m 2010-01-28 23:22:39 UTC (rev 4238) @@ -22,10 +22,9 @@ % Edit the above text to modify the response to help run_template -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2009, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ @@ -33,8 +32,6 @@ % $Revision$ % $Date$ -% Last Modified by GUIDE v2.5 01-Jun-2009 09:36:07 - % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... Property changes on: DART/trunk/DART_LAB/matlab/run_template.m ___________________________________________________________________ Modified: svn:keywords - Date Rev Author URL Id + Date Revision Author HeadURL Id Modified: DART/trunk/DART_LAB/matlab/twod_ensemble.m =================================================================== --- DART/trunk/DART_LAB/matlab/twod_ensemble.m 2010-01-28 22:54:26 UTC (rev 4237) +++ DART/trunk/DART_LAB/matlab/twod_ensemble.m 2010-01-28 23:22:39 UTC (rev 4238) @@ -22,10 +22,9 @@ % See also: gaussian_product, oned_model, oned_ensemble, run_lorenz_63, % run_lorenz_96 -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2009, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ @@ -33,8 +32,6 @@ % $Revision$ % $Date$ -% Last Modified by GUIDE v2.5 28-Mar-2009 21:43:27 - % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... Property changes on: DART/trunk/DART_LAB/matlab/twod_ensemble.m ___________________________________________________________________ Modified: svn:keywords - Date Rev Author URL Id + Date Revision Author HeadURL Id From nancy at ucar.edu Thu Jan 28 16:41:56 2010 From: nancy at ucar.edu (nancy at ucar.edu) Date: Thu, 28 Jan 2010 16:41:56 -0700 Subject: [Dart-dev] [4239] DART/trunk/matlab: new terms of use - no other changes Message-ID: Revision: 4239 Author: thoar Date: 2010-01-28 16:41:56 -0700 (Thu, 28 Jan 2010) Log Message: ----------- new terms of use - no other changes Modified Paths: -------------- DART/trunk/matlab/CheckModel.m DART/trunk/matlab/CheckModelCompatibility.m DART/trunk/matlab/ChecknetCDFuse.m DART/trunk/matlab/CombineStructs.m DART/trunk/matlab/DART.m DART/trunk/matlab/DiffnetCDFstate.m DART/trunk/matlab/GetBgridInfo.m DART/trunk/matlab/GetCalendarDate.m DART/trunk/matlab/GetCamInfo.m DART/trunk/matlab/GetNCindices.m DART/trunk/matlab/GetPe2lyrInfo.m DART/trunk/matlab/ParseAlphaNumerics.m DART/trunk/matlab/PlotBins.m DART/trunk/matlab/PlotCEnsErrSpread.m DART/trunk/matlab/PlotCorrel.m DART/trunk/matlab/PlotEnsErrSpread.m DART/trunk/matlab/PlotEnsMeanTimeSeries.m DART/trunk/matlab/PlotEnsTimeSeries.m DART/trunk/matlab/PlotJeffCorrel.m DART/trunk/matlab/PlotPhaseSpace.m DART/trunk/matlab/PlotRegFactor.m DART/trunk/matlab/PlotSawtooth.m DART/trunk/matlab/PlotTotalErr.m DART/trunk/matlab/PlotVarVarCorrel.m DART/trunk/matlab/Plot_network.m DART/trunk/matlab/Plot_obs.m DART/trunk/matlab/ReadASCIIObsSeq.m DART/trunk/matlab/ReadBinaryObsSeq.m DART/trunk/matlab/ReadObsSeq.m DART/trunk/matlab/SetCopyID.m DART/trunk/matlab/SetCopyID2.m DART/trunk/matlab/SetVariableID.m DART/trunk/matlab/SimpleMap.m DART/trunk/matlab/StatObsSeq.m DART/trunk/matlab/dbz_colors.m DART/trunk/matlab/ens_correl.m DART/trunk/matlab/ens_plot.m DART/trunk/matlab/get_copy_index.m DART/trunk/matlab/get_ens_series.m DART/trunk/matlab/get_qc_index.m DART/trunk/matlab/get_state_copy.m DART/trunk/matlab/get_var_series.m DART/trunk/matlab/jeff_correl.m DART/trunk/matlab/locations_in_region.m DART/trunk/matlab/plot_bins.m DART/trunk/matlab/plot_correl.m DART/trunk/matlab/plot_ens_err_spread.m DART/trunk/matlab/plot_ens_mean_time_series.m DART/trunk/matlab/plot_ens_time_series.m DART/trunk/matlab/plot_jeff_correl.m DART/trunk/matlab/plot_phase_space.m DART/trunk/matlab/plot_reg_factor.m DART/trunk/matlab/plot_sawtooth.m DART/trunk/matlab/plot_smoother_err.m DART/trunk/matlab/plot_total_err.m DART/trunk/matlab/plot_var_var_correl.m DART/trunk/matlab/rank_hist.m DART/trunk/matlab/read_state.m DART/trunk/matlab/scalebar.m DART/trunk/matlab/startup.m DART/trunk/matlab/state_diag.m DART/trunk/matlab/total_err.m DART/trunk/matlab/worldmap.m Property Changed: ---------------- DART/trunk/matlab/DART.m DART/trunk/matlab/GetCalendarDate.m DART/trunk/matlab/get_qc_index.m DART/trunk/matlab/locations_in_region.m -------------- next part -------------- Modified: DART/trunk/matlab/CheckModel.m =================================================================== --- DART/trunk/matlab/CheckModel.m 2010-01-28 23:22:39 UTC (rev 4238) +++ DART/trunk/matlab/CheckModel.m 2010-01-28 23:41:56 UTC (rev 4239) @@ -7,10 +7,9 @@ % fname = 'Prior_Diag.nc'; % vars = CheckModel(fname) -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2009, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Modified: DART/trunk/matlab/CheckModelCompatibility.m =================================================================== --- DART/trunk/matlab/CheckModelCompatibility.m 2010-01-28 23:22:39 UTC (rev 4238) +++ DART/trunk/matlab/CheckModelCompatibility.m 2010-01-28 23:41:56 UTC (rev 4239) @@ -8,10 +8,9 @@ % [start,count] indices for each array (indexing starts at 1,N). % It is an error situation if there is no overlap ([-1,-1] for both). -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2009, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Modified: DART/trunk/matlab/ChecknetCDFuse.m =================================================================== --- DART/trunk/matlab/ChecknetCDFuse.m 2010-01-28 23:22:39 UTC (rev 4238) +++ DART/trunk/matlab/ChecknetCDFuse.m 2010-01-28 23:41:56 UTC (rev 4239) @@ -11,10 +11,9 @@ % nonzero == bad, matlab netcdf not available. % -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2009, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Modified: DART/trunk/matlab/CombineStructs.m =================================================================== --- DART/trunk/matlab/CombineStructs.m 2010-01-28 23:22:39 UTC (rev 4238) +++ DART/trunk/matlab/CombineStructs.m 2010-01-28 23:41:56 UTC (rev 4239) @@ -5,10 +5,9 @@ % % -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2009, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Modified: DART/trunk/matlab/DART.m =================================================================== --- DART/trunk/matlab/DART.m 2010-01-28 23:22:39 UTC (rev 4238) +++ DART/trunk/matlab/DART.m 2010-01-28 23:41:56 UTC (rev 4239) @@ -33,7 +33,7 @@ % is perilous ... % % -% DART/observations/utilities/threed_sphere These functions require processing +% DART/diagnostics/matlab These functions require processing % observation sequences into netCDF files with % "obs_seq_to_netcdf" - which currently does not preserve % all of the observation sequence metadata for some of the @@ -41,10 +41,21 @@ % read_obs_netcdf.m Reads a netCDF observation sequence and returns a structure. % plot_obs_netcdf.m creates a 2D or 3D plot of the observation locations % and values - and rejected observations. -% plot_obs_netcdf_diffs.m Same thing, only for the difference of two observation copies +% plot_obs_netcdf_diffs.m ditto, only for the difference of two observation copies % - the observation and the ensemble mean, for example. % % % DART/models//matlab Each model has an optional matlab directory where % the model developers are free to supply whatever functions % or scripts they deem useful. + + +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download +% +% +% $URL$ +% $Id$ +% $Revision$ +% $Date$ Property changes on: DART/trunk/matlab/DART.m ___________________________________________________________________ Modified: svn:keywords - Date Rev Author URL Id + Date Revision Author HeadURL Id Modified: DART/trunk/matlab/DiffnetCDFstate.m =================================================================== --- DART/trunk/matlab/DiffnetCDFstate.m 2010-01-28 23:22:39 UTC (rev 4238) +++ DART/trunk/matlab/DiffnetCDFstate.m 2010-01-28 23:41:56 UTC (rev 4239) @@ -16,10 +16,9 @@ % outfile = 'test1_2.diff'; % DiffnetCDFstate(file1,file2,outfile) -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2009, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Modified: DART/trunk/matlab/GetBgridInfo.m =================================================================== --- DART/trunk/matlab/GetBgridInfo.m 2010-01-28 23:22:39 UTC (rev 4238) +++ DART/trunk/matlab/GetBgridInfo.m 2010-01-28 23:41:56 UTC (rev 4239) @@ -8,10 +8,9 @@ % fname Name of the DART netcdf file % routine name of subsequent plot routine. -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2009, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Modified: DART/trunk/matlab/GetCalendarDate.m =================================================================== --- DART/trunk/matlab/GetCalendarDate.m 2010-01-28 23:22:39 UTC (rev 4238) +++ DART/trunk/matlab/GetCalendarDate.m 2010-01-28 23:41:56 UTC (rev 4239) @@ -8,15 +8,12 @@ % % mydate = GetCalendarDate(82761,148520); -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2009, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % -% $URL: -% http://subversion.ucar.edu/DAReS/DART/trunk/diagnostics/matlab/fit_ens_mean_time.m -% $ +% $URL$ % $Id$ % $Revision$ % $Date$ Property changes on: DART/trunk/matlab/GetCalendarDate.m ___________________________________________________________________ Modified: svn:keywords - Date Rev Author URL Id + Date Revision Author HeadURL Id Modified: DART/trunk/matlab/GetCamInfo.m =================================================================== --- DART/trunk/matlab/GetCamInfo.m 2010-01-28 23:22:39 UTC (rev 4238) +++ DART/trunk/matlab/GetCamInfo.m 2010-01-28 23:41:56 UTC (rev 4239) @@ -7,10 +7,9 @@ % fname Name of the DART netcdf file % routine name of subsequent plot routine. -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2009, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Modified: DART/trunk/matlab/GetNCindices.m =================================================================== --- DART/trunk/matlab/GetNCindices.m 2010-01-28 23:22:39 UTC (rev 4238) +++ DART/trunk/matlab/GetNCindices.m 2010-01-28 23:41:56 UTC (rev 4239) @@ -22,10 +22,9 @@ % varname is the netcdf variable being extracted. % -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2009, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Modified: DART/trunk/matlab/GetPe2lyrInfo.m =================================================================== --- DART/trunk/matlab/GetPe2lyrInfo.m 2010-01-28 23:22:39 UTC (rev 4238) +++ DART/trunk/matlab/GetPe2lyrInfo.m 2010-01-28 23:41:56 UTC (rev 4239) @@ -8,10 +8,9 @@ % fname Name of the DART netcdf file % routine name of subsequent plot routine. -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2009, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Modified: DART/trunk/matlab/ParseAlphaNumerics.m =================================================================== --- DART/trunk/matlab/ParseAlphaNumerics.m 2010-01-28 23:22:39 UTC (rev 4238) +++ DART/trunk/matlab/ParseAlphaNumerics.m 2010-01-28 23:41:56 UTC (rev 4239) @@ -5,10 +5,9 @@ % alpha = 'X' % numerics = [1 3 4 89]; -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2009, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Modified: DART/trunk/matlab/PlotBins.m =================================================================== --- DART/trunk/matlab/PlotBins.m 2010-01-28 23:22:39 UTC (rev 4238) +++ DART/trunk/matlab/PlotBins.m 2010-01-28 23:41:56 UTC (rev 4239) @@ -29,10 +29,9 @@ % pinfo.longitude = 45.67; % PlotBins( pinfo ); -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2009, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Modified: DART/trunk/matlab/PlotCEnsErrSpread.m =================================================================== --- DART/trunk/matlab/PlotCEnsErrSpread.m 2010-01-28 23:22:39 UTC (rev 4238) +++ DART/trunk/matlab/PlotCEnsErrSpread.m 2010-01-28 23:41:56 UTC (rev 4239) @@ -1,10 +1,9 @@ function PlotCEnsErrSpread( pinfo ) % -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2009, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Modified: DART/trunk/matlab/PlotCorrel.m =================================================================== --- DART/trunk/matlab/PlotCorrel.m 2010-01-28 23:22:39 UTC (rev 4238) +++ DART/trunk/matlab/PlotCorrel.m 2010-01-28 23:41:56 UTC (rev 4239) @@ -22,10 +22,9 @@ % pinfo.base_time = 238; % ditto % PlotCorrel(pinfo) % generates a plot -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2009, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Modified: DART/trunk/matlab/PlotEnsErrSpread.m =================================================================== --- DART/trunk/matlab/PlotEnsErrSpread.m 2010-01-28 23:22:39 UTC (rev 4238) +++ DART/trunk/matlab/PlotEnsErrSpread.m 2010-01-28 23:41:56 UTC (rev 4239) @@ -48,10 +48,9 @@ % pinfo.longitude = 45.67; % PlotEnsErrSpread(pinfo) -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2009, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Modified: DART/trunk/matlab/PlotEnsMeanTimeSeries.m =================================================================== --- DART/trunk/matlab/PlotEnsMeanTimeSeries.m 2010-01-28 23:22:39 UTC (rev 4238) +++ DART/trunk/matlab/PlotEnsMeanTimeSeries.m 2010-01-28 23:41:56 UTC (rev 4239) @@ -36,10 +36,9 @@ % pinfo.longitude = 45.67; % PlotEnsMeanTimeSeries( pinfo ) -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2009, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Modified: DART/trunk/matlab/PlotEnsTimeSeries.m =================================================================== --- DART/trunk/matlab/PlotEnsTimeSeries.m 2010-01-28 23:22:39 UTC (rev 4238) +++ DART/trunk/matlab/PlotEnsTimeSeries.m 2010-01-28 23:41:56 UTC (rev 4239) @@ -35,10 +35,9 @@ % pinfo.longitude = 45.67; % PlotEnsTimeSeries( pinfo ) -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2009, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Modified: DART/trunk/matlab/PlotJeffCorrel.m =================================================================== --- DART/trunk/matlab/PlotJeffCorrel.m 2010-01-28 23:22:39 UTC (rev 4238) +++ DART/trunk/matlab/PlotJeffCorrel.m 2010-01-28 23:41:56 UTC (rev 4239) @@ -25,10 +25,9 @@ % pinfo.state_var_index = 1; % PlotVarVarCorrel( pinfo ) -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2009, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Modified: DART/trunk/matlab/PlotPhaseSpace.m =================================================================== --- DART/trunk/matlab/PlotPhaseSpace.m 2010-01-28 23:22:39 UTC (rev 4238) +++ DART/trunk/matlab/PlotPhaseSpace.m 2010-01-28 23:41:56 UTC (rev 4239) @@ -42,10 +42,9 @@ % % note the legend has both lines annotated. -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2009, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Modified: DART/trunk/matlab/PlotRegFactor.m =================================================================== --- DART/trunk/matlab/PlotRegFactor.m 2010-01-28 23:22:39 UTC (rev 4238) +++ DART/trunk/matlab/PlotRegFactor.m 2010-01-28 23:41:56 UTC (rev 4239) @@ -9,10 +9,9 @@ % obsnum = 20; % PlotRegFactor(fname, obsnum); -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2009, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Modified: DART/trunk/matlab/PlotSawtooth.m =================================================================== --- DART/trunk/matlab/PlotSawtooth.m 2010-01-28 23:22:39 UTC (rev 4238) +++ DART/trunk/matlab/PlotSawtooth.m 2010-01-28 23:41:56 UTC (rev 4239) @@ -40,10 +40,9 @@ % pinfo.longitude = 45.67; % PlotSawtooth( pinfo ) -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2009, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Modified: DART/trunk/matlab/PlotTotalErr.m =================================================================== --- DART/trunk/matlab/PlotTotalErr.m 2010-01-28 23:22:39 UTC (rev 4238) +++ DART/trunk/matlab/PlotTotalErr.m 2010-01-28 23:41:56 UTC (rev 4239) @@ -22,10 +22,9 @@ % pinfo.diagn_file = 'Posterior_Diag.nc'; % PlotTotalErr( pinfo ) -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2009, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Modified: DART/trunk/matlab/PlotVarVarCorrel.m =================================================================== --- DART/trunk/matlab/PlotVarVarCorrel.m 2010-01-28 23:22:39 UTC (rev 4238) +++ DART/trunk/matlab/PlotVarVarCorrel.m 2010-01-28 23:41:56 UTC (rev 4239) @@ -23,10 +23,9 @@ % pinfo.state_var_index = 1; % PlotVarVarCorrel( pinfo ) -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2009, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Modified: DART/trunk/matlab/Plot_network.m =================================================================== --- DART/trunk/matlab/Plot_network.m 2010-01-28 23:22:39 UTC (rev 4238) +++ DART/trunk/matlab/Plot_network.m 2010-01-28 23:41:56 UTC (rev 4239) @@ -1,10 +1,9 @@ % Plot_network % -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2009, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Modified: DART/trunk/matlab/Plot_obs.m =================================================================== --- DART/trunk/matlab/Plot_obs.m 2010-01-28 23:22:39 UTC (rev 4238) +++ DART/trunk/matlab/Plot_obs.m 2010-01-28 23:41:56 UTC (rev 4239) @@ -2,10 +2,9 @@ % % -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2009, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Modified: DART/trunk/matlab/ReadASCIIObsSeq.m =================================================================== --- DART/trunk/matlab/ReadASCIIObsSeq.m 2010-01-28 23:22:39 UTC (rev 4238) +++ DART/trunk/matlab/ReadASCIIObsSeq.m 2010-01-28 23:41:56 UTC (rev 4239) @@ -10,10 +10,9 @@ % The file contains a linked list which we are reading sequentially. % The resulting sequence "a.obs" is NOT guaranteed to be in a temporally ascending order. -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2009, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Modified: DART/trunk/matlab/ReadBinaryObsSeq.m =================================================================== --- DART/trunk/matlab/ReadBinaryObsSeq.m 2010-01-28 23:22:39 UTC (rev 4238) +++ DART/trunk/matlab/ReadBinaryObsSeq.m 2010-01-28 23:41:56 UTC (rev 4239) @@ -20,10 +20,9 @@ % 'ieee-be.l64' or 's' - IEEE floating point with big-endian byte % ordering and 64 bit long data type. -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2009, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Modified: DART/trunk/matlab/ReadObsSeq.m =================================================================== --- DART/trunk/matlab/ReadObsSeq.m 2010-01-28 23:22:39 UTC (rev 4238) +++ DART/trunk/matlab/ReadObsSeq.m 2010-01-28 23:41:56 UTC (rev 4239) @@ -30,10 +30,9 @@ % % Uses ReadASCIIObsSeq.m and ReadBINARYObsSeq.m -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2009, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Modified: DART/trunk/matlab/SetCopyID.m =================================================================== --- DART/trunk/matlab/SetCopyID.m 2010-01-28 23:22:39 UTC (rev 4238) +++ DART/trunk/matlab/SetCopyID.m 2010-01-28 23:41:56 UTC (rev 4239) @@ -1,10 +1,9 @@ function varid = SetCopyID(fname); % SetCopyID queries for the copy index for a set of ensemble members of a specific netCDF file. -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2009, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Modified: DART/trunk/matlab/SetCopyID2.m =================================================================== --- DART/trunk/matlab/SetCopyID2.m 2010-01-28 23:22:39 UTC (rev 4238) +++ DART/trunk/matlab/SetCopyID2.m 2010-01-28 23:41:56 UTC (rev 4239) @@ -1,10 +1,9 @@ function varid = SetCopyID2(fname); % SetCopyID queries for the copy index for a set of ensemble members of a specific netCDF file. -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2009, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Modified: DART/trunk/matlab/SetVariableID.m =================================================================== --- DART/trunk/matlab/SetVariableID.m 2010-01-28 23:22:39 UTC (rev 4238) +++ DART/trunk/matlab/SetVariableID.m 2010-01-28 23:41:56 UTC (rev 4239) @@ -12,10 +12,9 @@ % vars.def_state_vars = [2 4 5]; % varid = SetVariableID(vars) -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2009, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Modified: DART/trunk/matlab/SimpleMap.m =================================================================== --- DART/trunk/matlab/SimpleMap.m 2010-01-28 23:22:39 UTC (rev 4238) +++ DART/trunk/matlab/SimpleMap.m 2010-01-28 23:41:56 UTC (rev 4239) @@ -22,10 +22,9 @@ % level = 1; % index into level array % h = SimpleMap(fname,varname,time,copy,level); -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2009, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Modified: DART/trunk/matlab/StatObsSeq.m =================================================================== --- DART/trunk/matlab/StatObsSeq.m 2010-01-28 23:22:39 UTC (rev 4238) +++ DART/trunk/matlab/StatObsSeq.m 2010-01-28 23:41:56 UTC (rev 4239) @@ -2,10 +2,9 @@ % % -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2009, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Modified: DART/trunk/matlab/dbz_colors.m =================================================================== --- DART/trunk/matlab/dbz_colors.m 2010-01-28 23:22:39 UTC (rev 4238) +++ DART/trunk/matlab/dbz_colors.m 2010-01-28 23:41:56 UTC (rev 4239) @@ -1,9 +1,8 @@ % dbz_colors.m Color scale from CIDD http://www.rap.ucar.edu/colorscales/dbz_40.colors -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2009, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Modified: DART/trunk/matlab/ens_correl.m =================================================================== --- DART/trunk/matlab/ens_correl.m 2010-01-28 23:22:39 UTC (rev 4238) +++ DART/trunk/matlab/ens_correl.m 2010-01-28 23:41:56 UTC (rev 4239) @@ -2,10 +2,9 @@ % ens_correl Computes correlation of a variable at a time to a time series of % another variable (could be the same one) -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2009, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Modified: DART/trunk/matlab/ens_plot.m =================================================================== --- DART/trunk/matlab/ens_plot.m 2010-01-28 23:22:39 UTC (rev 4238) +++ DART/trunk/matlab/ens_plot.m 2010-01-28 23:41:56 UTC (rev 4239) @@ -1,9 +1,8 @@ % Do some demo plots -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2009, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Modified: DART/trunk/matlab/get_copy_index.m =================================================================== --- DART/trunk/matlab/get_copy_index.m 2010-01-28 23:22:39 UTC (rev 4238) +++ DART/trunk/matlab/get_copy_index.m 2010-01-28 23:41:56 UTC (rev 4239) @@ -8,10 +8,9 @@ % copystring = 'ensemble member 5'; % copy_index = get_copy_index(fname, copystring); -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2009, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Modified: DART/trunk/matlab/get_ens_series.m =================================================================== --- DART/trunk/matlab/get_ens_series.m 2010-01-28 23:22:39 UTC (rev 4238) +++ DART/trunk/matlab/get_ens_series.m 2010-01-28 23:41:56 UTC (rev 4239) @@ -9,10 +9,9 @@ % state_var_index = 3; % ens = get_ens_series(fname,varname,state_var_index); -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2009, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Modified: DART/trunk/matlab/get_qc_index.m =================================================================== --- DART/trunk/matlab/get_qc_index.m 2010-01-28 23:22:39 UTC (rev 4238) +++ DART/trunk/matlab/get_qc_index.m 2010-01-28 23:41:56 UTC (rev 4239) @@ -8,10 +8,9 @@ % copystring = 'ensemble member 5'; % copy_index = get_qc_index(fname, copystring); -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2009, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Property changes on: DART/trunk/matlab/get_qc_index.m ___________________________________________________________________ Modified: svn:keywords - Date Rev Author URL Id + Date Revision Author HeadURL Id Modified: DART/trunk/matlab/get_state_copy.m =================================================================== --- DART/trunk/matlab/get_state_copy.m 2010-01-28 23:22:39 UTC (rev 4238) +++ DART/trunk/matlab/get_state_copy.m 2010-01-28 23:41:56 UTC (rev 4239) @@ -3,10 +3,9 @@ % Retrieves a particular copy of a state vector from a file whose % full or relative path is specified in the file argument. -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2009, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Modified: DART/trunk/matlab/get_var_series.m =================================================================== --- DART/trunk/matlab/get_var_series.m 2010-01-28 23:22:39 UTC (rev 4238) +++ DART/trunk/matlab/get_var_series.m 2010-01-28 23:41:56 UTC (rev 4239) @@ -11,10 +11,9 @@ % state_var = 3; % state variable index % var_vec = get_var_series(fname, varname, copyindex, state_var); -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2009, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Modified: DART/trunk/matlab/jeff_correl.m =================================================================== --- DART/trunk/matlab/jeff_correl.m 2010-01-28 23:22:39 UTC (rev 4238) +++ DART/trunk/matlab/jeff_correl.m 2010-01-28 23:41:56 UTC (rev 4239) @@ -2,10 +2,9 @@ % ens_correl Computes correlation of a variable at a time to a time series of % another variable (could be the same one) -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2009, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Modified: DART/trunk/matlab/locations_in_region.m =================================================================== --- DART/trunk/matlab/locations_in_region.m 2010-01-28 23:22:39 UTC (rev 4238) +++ DART/trunk/matlab/locations_in_region.m 2010-01-28 23:41:56 UTC (rev 4239) @@ -19,10 +19,9 @@ % EXAMPLE: vertical subsetting % inds = locations_in_region(locations,[0 360 -90 90 0 1000]); % Everything between 0,1000 -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2009, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Property changes on: DART/trunk/matlab/locations_in_region.m ___________________________________________________________________ Modified: svn:keywords - Date Rev Author URL Id + Date Revision Author HeadURL Id Modified: DART/trunk/matlab/plot_bins.m =================================================================== --- DART/trunk/matlab/plot_bins.m 2010-01-28 23:22:39 UTC (rev 4238) +++ DART/trunk/matlab/plot_bins.m 2010-01-28 23:41:56 UTC (rev 4239) @@ -14,10 +14,9 @@ % diagn_file = 'Prior_Diag.nc'; % plot_bins -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2009, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Modified: DART/trunk/matlab/plot_correl.m =================================================================== --- DART/trunk/matlab/plot_correl.m 2010-01-28 23:22:39 UTC (rev 4238) +++ DART/trunk/matlab/plot_correl.m 2010-01-28 23:41:56 UTC (rev 4239) @@ -8,10 +8,9 @@ % of information ... the model types are determined and % additional user input may be queried. -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2009, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at @@ Diff output truncated at 40000 characters. @@ From nancy at ucar.edu Thu Jan 28 16:47:25 2010 From: nancy at ucar.edu (nancy at ucar.edu) Date: Thu, 28 Jan 2010 16:47:25 -0700 Subject: [Dart-dev] [4240] DART/trunk/diagnostics/matlab: new terms of use - no other changes Message-ID: Revision: 4240 Author: thoar Date: 2010-01-28 16:47:24 -0700 (Thu, 28 Jan 2010) Log Message: ----------- new terms of use - no other changes Modified Paths: -------------- DART/trunk/diagnostics/matlab/PlotObsLocs.m DART/trunk/diagnostics/matlab/PlotWindObs.m DART/trunk/diagnostics/matlab/get_varnames.m DART/trunk/diagnostics/matlab/get_varsNdims.m DART/trunk/diagnostics/matlab/nc_var_dims.m DART/trunk/diagnostics/matlab/obs_num_time.m DART/trunk/diagnostics/matlab/plot_bias_xxx_profile.m DART/trunk/diagnostics/matlab/plot_evolution.m DART/trunk/diagnostics/matlab/plot_observation_locations.m DART/trunk/diagnostics/matlab/plot_profile.m DART/trunk/diagnostics/matlab/plot_rmse_xxx_evolution.m DART/trunk/diagnostics/matlab/plot_rmse_xxx_profile.m DART/trunk/diagnostics/matlab/plot_wind_vectors.m Added Paths: ----------- DART/trunk/diagnostics/matlab/linked_observations.m DART/trunk/diagnostics/matlab/plot_obs_netcdf.m DART/trunk/diagnostics/matlab/plot_obs_netcdf_diffs.m DART/trunk/diagnostics/matlab/read_obs_netcdf.m Property Changed: ---------------- DART/trunk/diagnostics/matlab/PlotWindObs.m DART/trunk/diagnostics/matlab/plot_wind_vectors.m -------------- next part -------------- Modified: DART/trunk/diagnostics/matlab/PlotObsLocs.m =================================================================== --- DART/trunk/diagnostics/matlab/PlotObsLocs.m 2010-01-28 23:41:56 UTC (rev 4239) +++ DART/trunk/diagnostics/matlab/PlotObsLocs.m 2010-01-28 23:47:24 UTC (rev 4240) @@ -96,10 +96,9 @@ % subsequent plots will overwrite earlier ones, so this input % can be used to customize the name. -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2007, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Modified: DART/trunk/diagnostics/matlab/PlotWindObs.m =================================================================== --- DART/trunk/diagnostics/matlab/PlotWindObs.m 2010-01-28 23:41:56 UTC (rev 4239) +++ DART/trunk/diagnostics/matlab/PlotWindObs.m 2010-01-28 23:47:24 UTC (rev 4240) @@ -1,9 +1,8 @@ -% +% PlotWindObs ... a function in progress ... not for general use. -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2007, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Property changes on: DART/trunk/diagnostics/matlab/PlotWindObs.m ___________________________________________________________________ Modified: svn:keywords - Date Rev Author URL Id + Date Revision Author HeadURL Id Modified: DART/trunk/diagnostics/matlab/get_varnames.m =================================================================== --- DART/trunk/diagnostics/matlab/get_varnames.m 2010-01-28 23:41:56 UTC (rev 4239) +++ DART/trunk/diagnostics/matlab/get_varnames.m 2010-01-28 23:47:24 UTC (rev 4240) @@ -10,10 +10,9 @@ % nvars = length(varnames); % disp(sprintf('first atmospheric variable (of %d) is %s',nvars,varnames{1})) -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2007, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Modified: DART/trunk/diagnostics/matlab/get_varsNdims.m =================================================================== --- DART/trunk/diagnostics/matlab/get_varsNdims.m 2010-01-28 23:41:56 UTC (rev 4239) +++ DART/trunk/diagnostics/matlab/get_varsNdims.m 2010-01-28 23:47:24 UTC (rev 4240) @@ -19,10 +19,9 @@ % >> plotdat.allvardims{20} % region plevel copy time -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2007, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Copied: DART/trunk/diagnostics/matlab/linked_observations.m (from rev 4237, DART/trunk/observations/utilities/threed_sphere/linked_observations.m) =================================================================== --- DART/trunk/diagnostics/matlab/linked_observations.m (rev 0) +++ DART/trunk/diagnostics/matlab/linked_observations.m 2010-01-28 23:47:24 UTC (rev 4240) @@ -0,0 +1,162 @@ +function linked_observations(obsmat,obs) +% linked_observations(obs) +% +% obs is a structure with the following required components +% +% obs.lons longitudes of the observations +% obs.lats latitudes of the observations +% obs.z vertical level (depth) of the observations +% obs.obs observation values +% obs.qc observation DART QC code + +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download +% +% +% $URL$ +% $Id$ +% $Revision$ +% $Date$ + +% Create figure +%figure1 = figure('XVisual',... +% '0x24 (TrueColor, depth 24, RGB mask 0xff0000 0xff00 0x00ff)',... +% 'Renderer','OpenGL'); +figure1 = figure(1); clf(figure1);; + +%% Create axes for 3D plot +axes0 = axes('Parent',figure1,'OuterPosition',[0 0 1 0.90],'FontSize',12); +view(axes0,[-37.5 30]); +grid(axes0,'on'); +hold(axes0,'all'); + +xstring = sprintf('obsmat(:,%d)',obs.lonindex); +ystring = sprintf('obsmat(:,%d)',obs.latindex); +zstring = sprintf('obsmat(:,%d)',obs.zindex ); + +h0 = scatter3(obsmat(:,obs.lonindex), obsmat(:,obs.latindex), obsmat(:,obs.zindex), ... + 'Parent',axes0,'DisplayName','observation locations', ... + 'XDataSource',xstring, ... + 'YDataSource',ystring, ... + 'ZDataSource',zstring); + +worldmap('light'); +xlabel('longitude'); +ylabel('latitude'); +zlabel('depth'); +h = title({obs.ObsTypeString, ... + sprintf('%s ---> %s',obs.timestring(1,:),obs.timestring(2,:)) }); +set(h,'Interpreter','none') +linkdata on + +%% Create figure for ancillary plots + +figure2 = figure(2); clf(figure2); orient tall; wysiwyg + +%% Create axes for time VS. QC +axes4 = axes('Parent',figure2,'OuterPosition',[0 0.80 1 0.175]); +set(axes4,'XAxisLocation','top') +box(axes4,'on'); +hold(axes4,'all'); + +xstring = sprintf('obsmat(:,%d)',obs.timeindex); +ystring = sprintf('obsmat(:,%d)',obs.qcindex); +h4 = scatter(obsmat(:,obs.timeindex),obsmat(:,obs.qcindex),'Parent',axes4, ... + 'DisplayName','time vs qc', ... + 'XDataSource',xstring, ... + 'YDataSource',ystring); +datetick(axes4,'x',6); +ylabel(obs.QCString); + +%% Create axes for observation index VS. time +axes3 = axes('Parent',figure2,'OuterPosition',[0 0.575 1 0.175]); +box(axes3,'on'); +hold(axes3,'all'); + +xstring = sprintf('obsmat(:,%d)',obs.timeindex); +ystring = sprintf('obsmat(:,%d)',obs.indindex); +h3 = scatter(obsmat(:,obs.timeindex),obsmat(:,obs.indindex),'Parent',axes3, ... + 'DisplayName','time vs key', ... + 'XDataSource',xstring, ... + 'YDataSource',ystring); +ylabel('obs count'); +datetick(axes3,'x',6); + +%% Create axes for observation index VS. linked list key +axes2 = axes('Parent',figure2,'OuterPosition',[0.0 0.400 1 0.15]); +box(axes2,'on'); +hold(axes2,'all'); + +xstring = sprintf('obsmat(:,%d)',obs.indindex); +ystring = sprintf('obsmat(:,%d)',obs.keyindex); +h2 = scatter(obsmat(:,obs.indindex),obsmat(:,obs.keyindex),'Parent',axes2, ... + 'DisplayName','count vs key', ... + 'XDataSource',xstring, ... + 'YDataSource',ystring); +xlabel('obs count'); +ylabel('key'); + +%% Create axes for QC vs. ObsVal scatterplot +axes1 = axes('Parent',figure2,'Position',[0.05 0.05 0.6 0.25]); +box(axes1,'on'); +hold(axes1,'all'); + +xstring = sprintf('obsmat(:,%d)',obs.obsindex); +ystring = sprintf('obsmat(:,%d)',obs.qcindex); +h1 = scatter(obsmat(:,obs.obsindex),obsmat(:,obs.qcindex),'Parent',axes1, ... + 'DisplayName','obs vs qc', ... + 'XDataSource',xstring, ... + 'YDataSource',ystring); +xlabel(obs.CopyString); +title(obs.QCString); + + +LabelQC(obs.QCString, obs.qc) + + +refreshdata +linkdata on + + +function LabelQC(QCString, qcarray) +%% Create legend for (DART) QC values. +% +% 0 observation assimilated +% 1 observation evaluated only +% --- everything above this means the prior and posterior are OK +% 2 assimilated, but the posterior forward operator failed +% 3 Evaluated only, but the posterior forward operator failed +% --- everything above this means only the prior is OK +% 4 prior forward operator failed +% 5 not used +% 6 prior QC rejected +% 7 outlier rejected + +dartqc_strings = { 'assimilated', ... + 'observation evaluated only', ... + 'assimilated, post fwd op failed', ... + 'eval only, post fwd op failed', ... + 'prior forward operator failed', ... + 'not used', ... + 'prior QC rejected', ... + 'outlier rejected', ... + 'reserved'}; + +switch lower(strtrim(QCString)) + case 'dart quality control', + + qcvals = unique(qcarray); + qccount = zeros(size(qcvals)); + for i = 1:length(qcvals) + qccount(i) = sum(qcarray == qcvals(i)); + s{i} = sprintf('%d - %s %d obs',qcvals(i), dartqc_strings{qcvals(i)+1}, qccount(i)); + end + + set(gca,'YTick',qcvals,'YAxisLocation','right') + set(gca,'YTickLabel',char(s)) + + otherwise, + str = sprintf('no way to interpret values of %s',strtrim(QCString)); + text(0.0, 0.0, str) +end Modified: DART/trunk/diagnostics/matlab/nc_var_dims.m =================================================================== --- DART/trunk/diagnostics/matlab/nc_var_dims.m 2010-01-28 23:41:56 UTC (rev 4239) +++ DART/trunk/diagnostics/matlab/nc_var_dims.m 2010-01-28 23:47:24 UTC (rev 4240) @@ -17,10 +17,9 @@ % disp(sprintf('variable %s dimension %d is %s',varname,i,vdims{i})) % end -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2009, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Modified: DART/trunk/diagnostics/matlab/obs_num_time.m =================================================================== --- DART/trunk/diagnostics/matlab/obs_num_time.m 2010-01-28 23:41:56 UTC (rev 4239) +++ DART/trunk/diagnostics/matlab/obs_num_time.m 2010-01-28 23:47:24 UTC (rev 4240) @@ -17,11 +17,9 @@ % % obs_num_time - -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2007, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Modified: DART/trunk/diagnostics/matlab/plot_bias_xxx_profile.m =================================================================== --- DART/trunk/diagnostics/matlab/plot_bias_xxx_profile.m 2010-01-28 23:41:56 UTC (rev 4239) +++ DART/trunk/diagnostics/matlab/plot_bias_xxx_profile.m 2010-01-28 23:47:24 UTC (rev 4240) @@ -18,11 +18,9 @@ % copystring = 'totalspread'; % 'copy' string == quantity of interest % plotdat = plot_bias_xxx_profile(fname,copystring); - -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2007, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL: Modified: DART/trunk/diagnostics/matlab/plot_evolution.m =================================================================== --- DART/trunk/diagnostics/matlab/plot_evolution.m 2010-01-28 23:41:56 UTC (rev 4239) +++ DART/trunk/diagnostics/matlab/plot_evolution.m 2010-01-28 23:47:24 UTC (rev 4240) @@ -18,10 +18,9 @@ % copystring = 'bias'; % 'copy' string == quantity of interest % plotdat = plot_evolution(fname,copystring); -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2007, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Copied: DART/trunk/diagnostics/matlab/plot_obs_netcdf.m (from rev 4237, DART/trunk/observations/utilities/threed_sphere/plot_obs_netcdf.m) =================================================================== --- DART/trunk/diagnostics/matlab/plot_obs_netcdf.m (rev 0) +++ DART/trunk/diagnostics/matlab/plot_obs_netcdf.m 2010-01-28 23:47:24 UTC (rev 4240) @@ -0,0 +1,350 @@ +function obsstruct = plot_obs_netcdf(fname, ObsTypeString, region, CopyString, ... + QCString, maxQC, verbose) +%% plot_obs_netcdf will plot the locations and values of the observations in a DART netcdf file. +% any observations with a QC value greater than 'maxgoodQC' will get +% plotted on a separate figure ... color-coded to its QC value, not the +% observation value. +% +%-------------------------------------------------- +% EXAMPLE 1: plotting just one type of observation +%-------------------------------------------------- +% fname = 'obs_sequence_001.nc'; +% ObsTypeString = 'RADIOSONDE_U_WIND_COMPONENT'; +% region = [0 360 -90 90 -Inf Inf]; +% CopyString = 'NCEP BUFR observation'; +% QCString = 'DART quality control'; +% maxgoodQC = 2; +% verbose = 1; % anything > 0 == 'true' +% +% bob = plot_obs_netcdf(fname, ObsTypeString, region, CopyString, QCString, maxgoodQC, verbose); +% +% view(0,90); % for a traditional '2D' plot +% +%-------------------------------------------------- +% EXAMPLE 2: plotting all the observation types +%-------------------------------------------------- +% fname = 'obs_sequence_001.nc'; +% ObsTypeString = 'ALL'; +% region = [0 360 -90 90 -Inf Inf]; +% CopyString = 'WOD observation'; +% QCString = 'WOD QC'; +% maxgoodQC = 0; +% verbose = 1; % anything > 0 == 'true' +% +% bob = plot_obs_netcdf(fname, ObsTypeString, region, CopyString, QCString, maxgoodQC, verbose); + +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download +% +% +% $URL$ +% $Id$ +% $Revision$ +% $Date$ + +if (exist(fname,'file') ~= 2) + error('%s does not exist.',fname) +end + +%% Read the observation sequence + +obsstruct = read_obs_netcdf(fname, ObsTypeString, region, ... + CopyString, QCString, maxQC, verbose); + +%% Create graphic with area-weighted symbols for the good observations. +% It has happened that there have been zero good observations in a file. + +xmin = min(region(1:2)); +xmax = max(region(1:2)); +ymin = min(region(3:4)); +ymax = max(region(3:4)); +zmin = min(obsstruct.z); +zmax = max(obsstruct.z); + +pstruct.colorbarstring = obsstruct.ObsTypeString; +pstruct.region = region; +pstruct.str3 = sprintf('%s - %s',obsstruct.timestring(1,:),obsstruct.timestring(2,:)); + +if ( length(obsstruct.obs) < 1 ) + fprintf('There are no ''good'' observations to plot\n') +else + + figure(gcf+1); clf + + % choose a symbol size based on the number of obs to plot. + + if (length(obsstruct.obs) < 1000) + pstruct.scalearray = scaleme(obsstruct.obs, 36); + else + pstruct.scalearray = 50.0 * ones(size(obsstruct.obs)); + end + pstruct.clim = [min(obsstruct.obs) max(obsstruct.obs)]; + pstruct.str2 = sprintf('%s (%d locations)',obsstruct.CopyString,length(obsstruct.obs)); + + % If all the observations live on the same level ... make a 2D plot. + + if ( zmin ~= zmax ) + + pstruct.axis = [xmin xmax ymin ymax zmin zmax]; + pstruct.str1 = sprintf('%s level (%.2f - %.2f)',obsstruct.ObsTypeString,zmin,zmax); + + plot_3D(obsstruct, pstruct) + + else + + pstruct.axis = [xmin xmax ymin ymax]; + pstruct.str1 = sprintf('%s',obsstruct.ObsTypeString); + + plot_2D(obsstruct, pstruct) + + end +end + +%% Create graphic of spatial distribution of 'bad' observations & their QC value. +% +% 0 observation assimilated +% 1 observation evaluated only +% --- everything above this means the prior and posterior are OK +% 2 assimilated, but the posterior forward operator failed +% 3 Evaluated only, but the posterior forward operator failed +% --- everything above this means only the prior is OK +% 4 prior forward operator failed +% 5 not used +% 6 prior QC rejected +% 7 outlier rejected + +dartqc_strings = { ... + '''observation evaluated only''', ... + '''assimilated, but the posterior forward operator failed''', ... + '''evaluated only, but the posterior forward operator failed''',... + '''prior forward operator failed''',... + '''not used''',... + '''prior QC rejected''',... + '''outlier rejected''',... + '''reserved for future use'''}; + +if (obsstruct.numbadqc > 0 ) % if there are bad observation to plot ... carry on. + + figure(gcf+1); clf + + subplot('position',[0.1 0.20 0.8 0.65]) + + zmin = min(obsstruct.badobs.z); + zmax = max(obsstruct.badobs.z); + + pstruct.scalearray = 128 * ones(size(obsstruct.badobs.obs)); + pstruct.colorbarstring = QCString; + pstruct.clim = [min(obsstruct.badobs.qc) max(obsstruct.badobs.qc)]; + pstruct.str1 = sprintf('%s level (%.2f - %.2f)',obsstruct.ObsTypeString,zmin,zmax); + pstruct.str2 = sprintf('%s (%d bad observations)', ... + obsstruct.CopyString, ... + length(obsstruct.badobs.obs)); + + obsstruct.badobs.obs = obsstruct.badobs.qc; % plot QC values, not obs values + if ( zmin ~= zmax ) + + pstruct.axis = [xmin xmax ymin ymax zmin zmax]; + + plot_3D(obsstruct.badobs, pstruct) + + else + + pstruct.axis = [xmin xmax ymin ymax]; + + plot_2D(obsstruct.badobs, pstruct) + + end + + subplot('position',[0.1 0.05 0.8 0.10]) + axis off + + %% If the QC is a DART QC, we know how to interpret them. + + switch lower(strtrim(QCString)) + case 'dart quality control', + + qcvals = unique(obsstruct.badobs.qc); + qccount = zeros(size(qcvals)); + for i = 1:length(qcvals) + qccount(i) = sum(obsstruct.badobs.qc == qcvals(i)); + s{i} = sprintf('%d obs with qc == %d %s',qccount(i),qcvals(i), ... + dartqc_strings{qcvals(i)}); + end + + dy = 1.0/length(s); + for i = 1:length(s) + text(0.0, (i-1)*dy ,s{i}) + end + + otherwise, + str = sprintf('no way to interpret values of %s',strtrim(QCString)); + text(0.0, 0.0, str) + end +end + + + +function h = myworldmap + +%%-------------------------------------------------------------------------- +% GET THE ELEVATION DATA AND SET UP THE ASSOCIATED COORDINATE DATA +%--------------------------------------------------------------------------- + +load topo; % GET Matlab-native [180x360] ELEVATION DATASET +lats = -89.5:89.5; % CREATE LAT ARRAY FOR TOPO MATRIX +lons = 0.5:359.5; % CREATE LON ARRAY FOR TOPO MATRIX +nlon = length(lons); +nlat = length(lats); + +%%-------------------------------------------------------------------------- +% IF WE NEED TO SWAP HEMISPHERES, DO SO NOW. +% If we didn't explicitly tell it, make a guess. +%--------------------------------------------------------------------------- + +ax = axis; + +if (ax(1) < -2) + lons = lons - 180.0; + topo = [ topo(:,nlon/2+1:nlon) topo(:,1:nlon/2) ]; +end + +%%-------------------------------------------------------------------------- +% We need to determine the geographic subset of the elevation matrix. +%--------------------------------------------------------------------------- + +lon_ind1 = min(find(ax(1) <= lons)); +lon_ind2 = min(find(ax(2) <= lons)); +lat_ind1 = min(find(ax(3) <= lats)); +lat_ind2 = min(find(ax(4) <= lats)); + +if (isempty(lon_ind1)), lon_ind1 = 1; end; +if (isempty(lon_ind2)), lon_ind2 = nlon; end; +if (isempty(lat_ind1)), lat_ind1 = 1; end; +if (isempty(lat_ind2)), lat_ind2 = nlat; end; + +elev = topo(lat_ind1:lat_ind2,lon_ind1:lon_ind2); +x = lons(lon_ind1:lon_ind2); +y = lats(lat_ind1:lat_ind2); + +%%-------------------------------------------------------------------------- +% Contour the "subset" +% There are differences between 6.5 and 7.0 that make changing the colors +% of the filled contours a real pain. +%--------------------------------------------------------------------------- + +orgholdstate = ishold; +hold on; + +switch get(gca,'ZDir') + case 'reverse' + zlevel = max(ax(5:6)); + otherwise + zlevel = min(ax(5:6)); +end + +fcolor = [0.7 0.7 0.7]; % light grey + +[c,h] = contourf(x,y,elev,[0.0 0.0],'k-'); + +h_patch = get(h, 'Children'); + +for i = 1:numel(h_patch) + y = get(h_patch(i), 'YData'); + s = size(y); + set(h_patch(i), 'ZData', zlevel*ones(s),'FaceColor',fcolor); +end + +if (orgholdstate == 0), hold off; end; + + + + +function s = scaleme(x,minsize) +% scaleme returns a uniformly scaled array the same size as the input +% array where the maximum is 10 times the minimum +maxsize = 10*minsize; +minx = min(x); +maxx = max(x); +slope = (maxsize-minsize)/(maxx-minx); +b = minsize - slope*minx; + +s = x*slope + b; + + + +function plot_3D(obsstruct, pstruct) + +if (pstruct.clim(1) == pstruct.clim(2)) + % If all the observations have the same value, setting the + % colorbar limits is a real pain. Fundamentally, I am + % forcing the plot symbols to be the lowest color of the + % colormap and setting the colorbar to have some more + % colors 'on top' - that are never used. + cmap = colormap; + h = plot3(obsstruct.lons, obsstruct.lats, obsstruct.z, 'bo'); + set(h,'MarkerFaceColor',cmap(1,:),'MarkerEdgeColor',cmap(1,:)) + set(gca,'Clim',[pstruct.clim(1) pstruct.clim(2)+1]) + set(gca,'XGrid','on','YGrid','on','ZGrid','on') + +else + scatter3(obsstruct.lons, obsstruct.lats, obsstruct.z, ... + pstruct.scalearray, obsstruct.obs, 'd', 'filled'); +end + +clim = get(gca,'CLim'); + +axis(pstruct.axis) + +title( {pstruct.str1, pstruct.str3, pstruct.str2}, 'Interpreter','none','FontSize',16); +xlabel('longitude') +ylabel('latitude') + +if (obsstruct.Ztyp(1) == -2) % VERTISUNDEF = -2 + zlabel('unspecified') +elseif (obsstruct.Ztyp(1) == -1) % VERTISSURFACE = -1 + zlabel('surface') +elseif (obsstruct.Ztyp(1) == 1) % VERTISLEVEL = 1 + zlabel('level') +elseif (obsstruct.Ztyp(1) == 2) % VERTISPRESSURE = 2 + set(gca,'ZDir','reverse') + zlabel('pressure') +elseif (obsstruct.Ztyp(1) == 3) % VERTISHEIGHT = 3 + zlabel('height') +end + +myworldmap; +set(gca,'CLim',clim) +h = colorbar; +set(get(h,'YLabel'),'String',pstruct.colorbarstring,'Interpreter','none') + + + + +function plot_2D(obsstruct, pstruct) + +axis(pstruct.axis); hold on; worldmap('light'); + +if (pstruct.clim(1) == pstruct.clim(2)) + cmap = colormap; + h = plot(obsstruct.lons, obsstruct.lats, 'bo'); + set(h,'MarkerFaceColor',cmap(1,:),'MarkerEdgeColor',cmap(1,:)) + set(gca,'Clim',[pstruct.clim(1) pstruct.clim(2)+1]) + set(gca,'XGrid','on','YGrid','on') + +else + + scatter(obsstruct.lons, obsstruct.lats, ... + pstruct.scalearray, obsstruct.obs, 'd', 'filled'); +end + +clim = get(gca,'CLim'); + +title( {pstruct.str1, pstruct.str3, pstruct.str2}, 'Interpreter','none','FontSize',16); +xlabel('longitude') +ylabel('latitude') + +set(gca,'CLim',clim) +h = colorbar; +set(get(h,'YLabel'),'String',pstruct.colorbarstring,'Interpreter','none') +hold off Copied: DART/trunk/diagnostics/matlab/plot_obs_netcdf_diffs.m (from rev 4237, DART/trunk/observations/utilities/threed_sphere/plot_obs_netcdf_diffs.m) =================================================================== --- DART/trunk/diagnostics/matlab/plot_obs_netcdf_diffs.m (rev 0) +++ DART/trunk/diagnostics/matlab/plot_obs_netcdf_diffs.m 2010-01-28 23:47:24 UTC (rev 4240) @@ -0,0 +1,345 @@ +function obsstruct = plot_obs_netcdf_diffs(fname, ObsTypeString, region, ... + CopyString1, CopyString2, QCString, maxQC, verbose) +% +% fname = 'obs_sequence_001.nc'; +% ObsTypeString = 'RADIOSONDE_U_WIND_COMPONENT'; +% region = [0 360 -90 90 -Inf Inf]; +% CopyString1 = 'NCEP BUFR observation'; +% CopyString2 = 'prior ensemble mean'; +% QCString = 'DART quality control'; +% maxQC = 1; +% verbose = 1; % anything > 0 == 'true' +% +% bob = plot_obs_netcdf_diffs(fname, ObsTypeString, region, CopyString1, CopyString2, ... +% QCString, maxQC, verbose); + +% record the user input + +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download +% +% +% $URL$ +% $Id$ +% $Revision$ +% $Date$ + +obsstruct.fname = fname; +obsstruct.ObsTypeString = ObsTypeString; +obsstruct.region = region; +obsstruct.CopyString1 = CopyString1; +obsstruct.CopyString2 = CopyString2; +obsstruct.QCString = QCString; +obsstruct.maxQC = maxQC; +obsstruct.verbose = verbose; + +% get going + +ObsTypes = nc_varget(fname,'ObsTypes'); +ObsTypeStrings = nc_varget(fname,'ObsTypesMetaData'); +CopyStrings = nc_varget(fname,'CopyMetaData'); +QCStrings = nc_varget(fname,'QCMetaData'); + +t = nc_varget(fname,'time'); +obs_type = nc_varget(fname,'obs_type'); +z_type = nc_varget(fname,'which_vert'); + +loc = nc_varget(fname,'location'); +obs = nc_varget(fname,'observations'); +qc = nc_varget(fname,'qc'); + +my_types = unique(obs_type); % only ones in the file, actually. +timeunits = nc_attget(fname,'time','units'); +timerange = nc_attget(fname,'time','valid_range'); +calendar = nc_attget(fname,'time','calendar'); +timebase = sscanf(timeunits,'%*s%*s%d%*c%d%*c%d'); % YYYY MM DD +timeorigin = datenum(timebase(1),timebase(2),timebase(3)); +timestring = datestr(timerange + timeorigin); + +% Echo summary if requested + +if ( verbose > 0 ) + for i = 1:length(my_types) + obtype = my_types(i); + inds = find(obs_type == obtype); + myz = loc(inds,3); + + disp(sprintf('N = %6d %s obs (type %3d) between levels %.2f and %.2f', ... + length(inds), ObsTypeStrings(obtype,:), obtype, ... + unique(min(myz)), unique(max(myz)))) + end + +% uniquelevels = unique(loc(:,3)); + +% for i = 1:length(uniquelevels) +% mylevel = uniquelevels(i); +% inds = find(loc(:,3) == mylevel); +% disp(sprintf('level %2d %f has %d observations',i,mylevel,length(inds))) +% end + +end + +% Find observations of the correct types. + +myind = strmatch(ObsTypeString,ObsTypeStrings); + +if ( isempty(myind) ) + error('no %s observations ... stopping',obsstruct.ObsTypeString) +end + +mytype1 = get_copy_index(fname, CopyString1); +mytype2 = get_copy_index(fname, CopyString2); +inds = find(obs_type == myind); +mylocs = loc(inds,:); +myobs1 = obs(inds,mytype1); +myobs2 = obs(inds,mytype2); +myobs = myobs2 - myobs1; + +if ~ isempty(QCString) + myQCind = get_qc_index(fname, QCString); + myqc = qc(inds,myQCind); +else + myqc = []; +end + +clear myobs1 myobs2 obs loc qc + +% geographic subset if needed + +inds = locations_in_region(mylocs,region); + +obsstruct.lons = mylocs(inds,1); +obsstruct.lats = mylocs(inds,2); +obsstruct.z = mylocs(inds,3); +obsstruct.obs = myobs(inds); +obsstruct.Ztyp = z_type(inds); +obsstruct.numbadqc = 0; + +if (isempty(myqc)) + obsstruct.qc = []; +else + obsstruct.qc = myqc(inds); +end + +% subset based on qc value + +if ( (~ isempty(myqc)) & (~ isempty(maxQC)) ) + + inds = find(obsstruct.qc > maxQC); + + obsstruct.numbadqc = length(inds); + + if (~isempty(inds)) + badobs.lons = obsstruct.lons(inds); + badobs.lats = obsstruct.lats(inds); + badobs.Ztyp = obsstruct.Ztyp(inds); + badobs.z = obsstruct.z( inds); + badobs.obs = obsstruct.obs(inds); + badobs.qc = obsstruct.qc(inds); + end + + disp(sprintf('Removing %d obs with a %s value greater than %f', ... + length(inds),QCString,maxQC)) + + inds = find(obsstruct.qc <= maxQC); + + bob = obsstruct.lons(inds); obsstruct.lons = bob; + bob = obsstruct.lats(inds); obsstruct.lats = bob; + bob = obsstruct.Ztyp(inds); obsstruct.Ztyp = bob; + bob = obsstruct.z( inds); obsstruct.z = bob; + bob = obsstruct.obs( inds); obsstruct.obs = bob; + bob = obsstruct.qc( inds); obsstruct.qc = bob; + +end + +%------------------------------------------------------------------------------- +% Create graphic with area-weighted symbols for the good observations. +%------------------------------------------------------------------------------- + +figure(1); clf + +xmin = min(region(1:2)); +xmax = max(region(1:2)); +ymin = min(region(3:4)); +ymax = max(region(3:4)); +zmin = min(obsstruct.z); +zmax = max(obsstruct.z); + +scalearray = scaleme(obsstruct.obs,36); +scalearray = 128 * ones(size(obsstruct.obs)); + +scatter3(obsstruct.lons, obsstruct.lats, obsstruct.z, ... + scalearray, obsstruct.obs,'d','filled'); + +axis([xmin xmax ymin ymax zmin zmax]) + +str1 = sprintf('%s level (%.2f - %.2f)',ObsTypeString,zmin,zmax); +str2 = sprintf('%s - %s (%d locations)',CopyString2,CopyString1,length(obsstruct.obs)); +str3 = sprintf('%s - %s',timestring(1,:),timestring(2,:)); + +title( {str1, str3, str2}, 'Interpreter','none','FontSize',16); +xlabel('longitude') +ylabel('latitude') + +if (obsstruct.Ztyp(1) == -2) % VERTISUNDEF = -2 + zlabel('curious ... undefined') +elseif (obsstruct.Ztyp(1) == -1) % VERTISSURFACE = -1 + zlabel('surface') +elseif (obsstruct.Ztyp(1) == 1) % VERTISLEVEL = 1 + zlabel('level') +elseif (obsstruct.Ztyp(1) == 2) % VERTISPRESSURE = 2 + set(gca,'ZDir','reverse') + zlabel('pressure') +elseif (obsstruct.Ztyp(1) == 3) % VERTISHEIGHT = 3 + zlabel('height') +end + +myworldmap; +set(gca,'CLim',[min(obsstruct.obs) max(obsstruct.obs)]) +h = colorbar; +set(get(h,'YLabel'),'String',ObsTypeString,'Interpreter','none') + +%------------------------------------------------------------------------------- +% Create graphic of spatial distribution of 'bad' observations & their QC value. +%------------------------------------------------------------------------------- + +if (obsstruct.numbadqc > 0 ) + + figure(2); clf + + subplot('position',[0.1 0.20 0.8 0.65]) + scalearray = 128 * ones(size(badobs.obs)); + + zmin = min(badobs.z); + zmax = max(badobs.z); + + scatter3(badobs.lons, badobs.lats, badobs.z, scalearray, badobs.qc,'filled') + + title( {str1, str3, 'Bad Observations'}, 'Interpreter','none','FontSize',16); + xlabel('longitude') + ylabel('latitude') + + if (badobs.Ztyp(1) == -2) % VERTISUNDEF = -2 + zlabel('curious ... undefined') + elseif (badobs.Ztyp(1) == -1) % VERTISSURFACE = -1 + zlabel('surface') + elseif (badobs.Ztyp(1) == 1) % VERTISLEVEL = 1 + zlabel('level') + elseif (badobs.Ztyp(1) == 2) % VERTISPRESSURE = 2 + set(gca,'ZDir','reverse') + zlabel('pressure') + elseif (badobs.Ztyp(1) == 3) % VERTISHEIGHT = 3 + zlabel('height') + end + + axis([region(1) region(2) ymin ymax zmin zmax]) + + myworldmap; + set(gca,'CLim',[min(badobs.qc) max(badobs.qc)]) + h = colorbar; + set(get(h,'YLabel'),'String',QCString,'Interpreter','none') + + subplot('position',[0.1 0.05 0.8 0.10]) + axis off + + qcvals = unique(badobs.qc); + qccount = zeros(size(qcvals)); + for i = 1:length(qcvals) + qccount(i) = sum(badobs.qc == qcvals(i)); + s{i} = sprintf('%d obs with qc == %d',qccount(i),qcvals(i)); + end + + dy = 1.0/length(s); + for i = 1:length(s) + text(0.0, (i-1)*dy ,s{i}) + end + +end + +function h = myworldmap + +%--------------------------------------------------------------------------- +% GET THE ELEVATION DATA AND SET UP THE ASSOCIATED COORDINATE DATA +%--------------------------------------------------------------------------- + +load topo; % GET Matlab-native [180x360] ELEVATION DATASET +lats = [-89.5:89.5]; % CREATE LAT ARRAY FOR TOPO MATRIX +lons = [0.5:359.5]; % CREATE LON ARRAY FOR TOPO MATRIX +nlon = length(lons); +nlat = length(lats); + +%--------------------------------------------------------------------------- +% IF WE NEED TO SWAP HEMISPHERES, DO SO NOW. +% If we didn't explicitly tell it, make a guess. +%--------------------------------------------------------------------------- + +ax = axis; + +if (ax(1) < -2) + lons = lons - 180.0; + topo = [ topo(:,nlon/2+1:nlon) topo(:,1:nlon/2) ]; +end + +%--------------------------------------------------------------------------- +% We need to determine the geographic subset of the elevation matrix. +%--------------------------------------------------------------------------- + +lon_ind1 = min(find(ax(1) <= lons)); +lon_ind2 = min(find(ax(2) <= lons)); +lat_ind1 = min(find(ax(3) <= lats)); +lat_ind2 = min(find(ax(4) <= lats)); + +if (isempty(lon_ind1)) lon_ind1 = 1; end; +if (isempty(lon_ind2)) lon_ind2 = nlon; end; +if (isempty(lat_ind1)) lat_ind1 = 1; end; +if (isempty(lat_ind2)) lat_ind2 = nlat; end; + +elev = topo(lat_ind1:lat_ind2,lon_ind1:lon_ind2); +x = lons(lon_ind1:lon_ind2); +y = lats(lat_ind1:lat_ind2); + +%--------------------------------------------------------------------------- +% Contour the "subset" +% There are differences between 6.5 and 7.0 that make changing the colors +% of the filled contours a real pain. Providing both solutions. +%--------------------------------------------------------------------------- + +orgholdstate = ishold; +hold on; + +switch get(gca,'ZDir') + case 'reverse' + zlevel = max(ax(5:6)); + otherwise + zlevel = min(ax(5:6)); +end + +fcolor = [0.7 0.7 0.7]; % light grey + +[c,h] = contourf(x,y,elev,[0.0 0.0],'k-'); + +new_level = 1000; + +h_patch = get(h, 'Children'); + +for i = 1:numel(h_patch) + y = get(h_patch(i), 'YData'); + s = size(y); + set(h_patch(i), 'ZData', zlevel*ones(s),'FaceColor',fcolor); +end + +if (orgholdstate == 0) hold off; end; + + +function s = scaleme(x,minsize) +% scaleme returns a uniformly scaled array the same size as the input +% array where the maximum is 10 times the minimum +maxsize = 10*minsize; +minx = min(x); +maxx = max(x); +slope = (maxsize-minsize)/(maxx-minx); +b = minsize - slope*minx; + +s = x*slope + b; + Modified: DART/trunk/diagnostics/matlab/plot_observation_locations.m =================================================================== --- DART/trunk/diagnostics/matlab/plot_observation_locations.m 2010-01-28 23:41:56 UTC (rev 4239) +++ DART/trunk/diagnostics/matlab/plot_observation_locations.m 2010-01-28 23:47:24 UTC (rev 4240) @@ -11,10 +11,9 @@ % See the documentation for PlotObsLocs() -- it has a lot of arguments in the % calling sequence. -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2007, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Modified: DART/trunk/diagnostics/matlab/plot_profile.m =================================================================== --- DART/trunk/diagnostics/matlab/plot_profile.m 2010-01-28 23:41:56 UTC (rev 4239) +++ DART/trunk/diagnostics/matlab/plot_profile.m 2010-01-28 23:47:24 UTC (rev 4240) @@ -19,10 +19,9 @@ % plotdat = plot_profile(fname,copystring); -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2007, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL: Modified: DART/trunk/diagnostics/matlab/plot_rmse_xxx_evolution.m =================================================================== --- DART/trunk/diagnostics/matlab/plot_rmse_xxx_evolution.m 2010-01-28 23:41:56 UTC (rev 4239) +++ DART/trunk/diagnostics/matlab/plot_rmse_xxx_evolution.m 2010-01-28 23:47:24 UTC (rev 4240) @@ -18,10 +18,9 @@ % copystring = 'totalspread'; % 'copy' string == quantity of interest % plotdat = plot_rmse_xxx_evolution(fname,copystring); -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2007, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL: Modified: DART/trunk/diagnostics/matlab/plot_rmse_xxx_profile.m =================================================================== --- DART/trunk/diagnostics/matlab/plot_rmse_xxx_profile.m 2010-01-28 23:41:56 UTC (rev 4239) +++ DART/trunk/diagnostics/matlab/plot_rmse_xxx_profile.m 2010-01-28 23:47:24 UTC (rev 4240) @@ -18,11 +18,9 @@ % copystring = 'totalspread'; % 'copy' string == quantity of interest % plotdat = plot_rmse_xxx_profile(fname,copystring); - -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2007, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL: Modified: DART/trunk/diagnostics/matlab/plot_wind_vectors.m =================================================================== --- DART/trunk/diagnostics/matlab/plot_wind_vectors.m 2010-01-28 23:41:56 UTC (rev 4239) +++ DART/trunk/diagnostics/matlab/plot_wind_vectors.m 2010-01-28 23:47:24 UTC (rev 4240) @@ -27,10 +27,9 @@ % 'levels', levels, 'region', region, 'scalefactor', scalefactor); % -% Data Assimilation Research Testbed -- DART -% Copyright 2004-2007, Data Assimilation Research Section -% University Corporation for Atmospheric Research -% Licensed under the GPL -- www.gpl.org/licenses/gpl.html +%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is +% provided by UCAR, "as is", without charge, subject to all terms of use at +% http://www.image.ucar.edu/DAReS/DART/DART_download % % % $URL$ Property changes on: DART/trunk/diagnostics/matlab/plot_wind_vectors.m ___________________________________________________________________ Modified: svn:keywords - Date Rev Author URL Id + Date Revision Author HeadURL Id Copied: DART/trunk/diagnostics/matlab/read_obs_netcdf.m (from rev 4237, DART/trunk/observations/utilities/threed_sphere/read_obs_netcdf.m) =================================================================== @@ Diff output truncated at 40000 characters. @@ From nancy at ucar.edu Thu Jan 28 16:48:52 2010 From: nancy at ucar.edu (nancy at ucar.edu) Date: Thu, 28 Jan 2010 16:48:52 -0700 Subject: [Dart-dev] [4241] DART/trunk/observations/utilities/threed_sphere: Renamed these files into DART/diagnostics/matlab/ Message-ID: Revision: 4241 Author: thoar Date: 2010-01-28 16:48:52 -0700 (Thu, 28 Jan 2010) Log Message: ----------- Renamed these files into DART/diagnostics/matlab/ Removed Paths: ------------- DART/trunk/observations/utilities/threed_sphere/linked_observations.m DART/trunk/observations/utilities/threed_sphere/plot_obs_netcdf.m DART/trunk/observations/utilities/threed_sphere/plot_obs_netcdf_diffs.m DART/trunk/observations/utilities/threed_sphere/read_obs_netcdf.m -------------- next part -------------- Deleted: DART/trunk/observations/utilities/threed_sphere/linked_observations.m =================================================================== --- DART/trunk/observations/utilities/threed_sphere/linked_observations.m 2010-01-28 23:47:24 UTC (rev 4240) +++ DART/trunk/observations/utilities/threed_sphere/linked_observations.m 2010-01-28 23:48:52 UTC (rev 4241) @@ -1,162 +0,0 @@ -function linked_observations(obsmat,obs) -% linked_observations(obs) -% -% obs is a structure with the following required components -% -% obs.lons longitudes of the observations -% obs.lats latitudes of the observations -% obs.z vertical level (depth) of the observations -% obs.obs observation values -% obs.qc observation DART QC code - -% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is -% provided by UCAR, "as is", without charge, subject to all terms of use at -% http://www.image.ucar.edu/DAReS/DART/DART_download -% -% -% $URL$ -% $Id$ -% $Revision$ -% $Date$ - -% Create figure -%figure1 = figure('XVisual',... -% '0x24 (TrueColor, depth 24, RGB mask 0xff0000 0xff00 0x00ff)',... -% 'Renderer','OpenGL'); -figure1 = figure(1); clf(figure1);; - -%% Create axes for 3D plot -axes0 = axes('Parent',figure1,'OuterPosition',[0 0 1 0.90],'FontSize',12); -view(axes0,[-37.5 30]); -grid(axes0,'on'); -hold(axes0,'all'); - -xstring = sprintf('obsmat(:,%d)',obs.lonindex); -ystring = sprintf('obsmat(:,%d)',obs.latindex); -zstring = sprintf('obsmat(:,%d)',obs.zindex ); - -h0 = scatter3(obsmat(:,obs.lonindex), obsmat(:,obs.latindex), obsmat(:,obs.zindex), ... - 'Parent',axes0,'DisplayName','observation locations', ... - 'XDataSource',xstring, ... - 'YDataSource',ystring, ... - 'ZDataSource',zstring); - -worldmap('light'); -xlabel('longitude'); -ylabel('latitude'); -zlabel('depth'); -h = title({obs.ObsTypeString, ... - sprintf('%s ---> %s',obs.timestring(1,:),obs.timestring(2,:)) }); -set(h,'Interpreter','none') -linkdata on - -%% Create figure for ancillary plots - -figure2 = figure(2); clf(figure2); orient tall; wysiwyg - -%% Create axes for time VS. QC -axes4 = axes('Parent',figure2,'OuterPosition',[0 0.80 1 0.175]); -set(axes4,'XAxisLocation','top') -box(axes4,'on'); -hold(axes4,'all'); - -xstring = sprintf('obsmat(:,%d)',obs.timeindex); -ystring = sprintf('obsmat(:,%d)',obs.qcindex); -h4 = scatter(obsmat(:,obs.timeindex),obsmat(:,obs.qcindex),'Parent',axes4, ... - 'DisplayName','time vs qc', ... - 'XDataSource',xstring, ... - 'YDataSource',ystring); -datetick(axes4,'x',6); -ylabel(obs.QCString); - -%% Create axes for observation index VS. time -axes3 = axes('Parent',figure2,'OuterPosition',[0 0.575 1 0.175]); -box(axes3,'on'); -hold(axes3,'all'); - -xstring = sprintf('obsmat(:,%d)',obs.timeindex); -ystring = sprintf('obsmat(:,%d)',obs.indindex); -h3 = scatter(obsmat(:,obs.timeindex),obsmat(:,obs.indindex),'Parent',axes3, ... - 'DisplayName','time vs key', ... - 'XDataSource',xstring, ... - 'YDataSource',ystring); -ylabel('obs count'); -datetick(axes3,'x',6); - -%% Create axes for observation index VS. linked list key -axes2 = axes('Parent',figure2,'OuterPosition',[0.0 0.400 1 0.15]); -box(axes2,'on'); -hold(axes2,'all'); - -xstring = sprintf('obsmat(:,%d)',obs.indindex); -ystring = sprintf('obsmat(:,%d)',obs.keyindex); -h2 = scatter(obsmat(:,obs.indindex),obsmat(:,obs.keyindex),'Parent',axes2, ... - 'DisplayName','count vs key', ... - 'XDataSource',xstring, ... - 'YDataSource',ystring); -xlabel('obs count'); -ylabel('key'); - -%% Create axes for QC vs. ObsVal scatterplot -axes1 = axes('Parent',figure2,'Position',[0.05 0.05 0.6 0.25]); -box(axes1,'on'); -hold(axes1,'all'); - -xstring = sprintf('obsmat(:,%d)',obs.obsindex); -ystring = sprintf('obsmat(:,%d)',obs.qcindex); -h1 = scatter(obsmat(:,obs.obsindex),obsmat(:,obs.qcindex),'Parent',axes1, ... - 'DisplayName','obs vs qc', ... - 'XDataSource',xstring, ... - 'YDataSource',ystring); -xlabel(obs.CopyString); -title(obs.QCString); - - -LabelQC(obs.QCString, obs.qc) - - -refreshdata -linkdata on - - -function LabelQC(QCString, qcarray) -%% Create legend for (DART) QC values. -% -% 0 observation assimilated -% 1 observation evaluated only -% --- everything above this means the prior and posterior are OK -% 2 assimilated, but the posterior forward operator failed -% 3 Evaluated only, but the posterior forward operator failed -% --- everything above this means only the prior is OK -% 4 prior forward operator failed -% 5 not used -% 6 prior QC rejected -% 7 outlier rejected - -dartqc_strings = { 'assimilated', ... - 'observation evaluated only', ... - 'assimilated, post fwd op failed', ... - 'eval only, post fwd op failed', ... - 'prior forward operator failed', ... - 'not used', ... - 'prior QC rejected', ... - 'outlier rejected', ... - 'reserved'}; - -switch lower(strtrim(QCString)) - case 'dart quality control', - - qcvals = unique(qcarray); - qccount = zeros(size(qcvals)); - for i = 1:length(qcvals) - qccount(i) = sum(qcarray == qcvals(i)); - s{i} = sprintf('%d - %s %d obs',qcvals(i), dartqc_strings{qcvals(i)+1}, qccount(i)); - end - - set(gca,'YTick',qcvals,'YAxisLocation','right') - set(gca,'YTickLabel',char(s)) - - otherwise, - str = sprintf('no way to interpret values of %s',strtrim(QCString)); - text(0.0, 0.0, str) -end Deleted: DART/trunk/observations/utilities/threed_sphere/plot_obs_netcdf.m =================================================================== --- DART/trunk/observations/utilities/threed_sphere/plot_obs_netcdf.m 2010-01-28 23:47:24 UTC (rev 4240) +++ DART/trunk/observations/utilities/threed_sphere/plot_obs_netcdf.m 2010-01-28 23:48:52 UTC (rev 4241) @@ -1,350 +0,0 @@ -function obsstruct = plot_obs_netcdf(fname, ObsTypeString, region, CopyString, ... - QCString, maxQC, verbose) -%% plot_obs_netcdf will plot the locations and values of the observations in a DART netcdf file. -% any observations with a QC value greater than 'maxgoodQC' will get -% plotted on a separate figure ... color-coded to its QC value, not the -% observation value. -% -%-------------------------------------------------- -% EXAMPLE 1: plotting just one type of observation -%-------------------------------------------------- -% fname = 'obs_sequence_001.nc'; -% ObsTypeString = 'RADIOSONDE_U_WIND_COMPONENT'; -% region = [0 360 -90 90 -Inf Inf]; -% CopyString = 'NCEP BUFR observation'; -% QCString = 'DART quality control'; -% maxgoodQC = 2; -% verbose = 1; % anything > 0 == 'true' -% -% bob = plot_obs_netcdf(fname, ObsTypeString, region, CopyString, QCString, maxgoodQC, verbose); -% -% view(0,90); % for a traditional '2D' plot -% -%-------------------------------------------------- -% EXAMPLE 2: plotting all the observation types -%-------------------------------------------------- -% fname = 'obs_sequence_001.nc'; -% ObsTypeString = 'ALL'; -% region = [0 360 -90 90 -Inf Inf]; -% CopyString = 'WOD observation'; -% QCString = 'WOD QC'; -% maxgoodQC = 0; -% verbose = 1; % anything > 0 == 'true' -% -% bob = plot_obs_netcdf(fname, ObsTypeString, region, CopyString, QCString, maxgoodQC, verbose); - -%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is -% provided by UCAR, "as is", without charge, subject to all terms of use at -% http://www.image.ucar.edu/DAReS/DART/DART_download -% -% -% $URL$ -% $Id$ -% $Revision$ -% $Date$ - -if (exist(fname,'file') ~= 2) - error('%s does not exist.',fname) -end - -%% Read the observation sequence - -obsstruct = read_obs_netcdf(fname, ObsTypeString, region, ... - CopyString, QCString, maxQC, verbose); - -%% Create graphic with area-weighted symbols for the good observations. -% It has happened that there have been zero good observations in a file. - -xmin = min(region(1:2)); -xmax = max(region(1:2)); -ymin = min(region(3:4)); -ymax = max(region(3:4)); -zmin = min(obsstruct.z); -zmax = max(obsstruct.z); - -pstruct.colorbarstring = obsstruct.ObsTypeString; -pstruct.region = region; -pstruct.str3 = sprintf('%s - %s',obsstruct.timestring(1,:),obsstruct.timestring(2,:)); - -if ( length(obsstruct.obs) < 1 ) - fprintf('There are no ''good'' observations to plot\n') -else - - figure(gcf+1); clf - - % choose a symbol size based on the number of obs to plot. - - if (length(obsstruct.obs) < 1000) - pstruct.scalearray = scaleme(obsstruct.obs, 36); - else - pstruct.scalearray = 50.0 * ones(size(obsstruct.obs)); - end - pstruct.clim = [min(obsstruct.obs) max(obsstruct.obs)]; - pstruct.str2 = sprintf('%s (%d locations)',obsstruct.CopyString,length(obsstruct.obs)); - - % If all the observations live on the same level ... make a 2D plot. - - if ( zmin ~= zmax ) - - pstruct.axis = [xmin xmax ymin ymax zmin zmax]; - pstruct.str1 = sprintf('%s level (%.2f - %.2f)',obsstruct.ObsTypeString,zmin,zmax); - - plot_3D(obsstruct, pstruct) - - else - - pstruct.axis = [xmin xmax ymin ymax]; - pstruct.str1 = sprintf('%s',obsstruct.ObsTypeString); - - plot_2D(obsstruct, pstruct) - - end -end - -%% Create graphic of spatial distribution of 'bad' observations & their QC value. -% -% 0 observation assimilated -% 1 observation evaluated only -% --- everything above this means the prior and posterior are OK -% 2 assimilated, but the posterior forward operator failed -% 3 Evaluated only, but the posterior forward operator failed -% --- everything above this means only the prior is OK -% 4 prior forward operator failed -% 5 not used -% 6 prior QC rejected -% 7 outlier rejected - -dartqc_strings = { ... - '''observation evaluated only''', ... - '''assimilated, but the posterior forward operator failed''', ... - '''evaluated only, but the posterior forward operator failed''',... - '''prior forward operator failed''',... - '''not used''',... - '''prior QC rejected''',... - '''outlier rejected''',... - '''reserved for future use'''}; - -if (obsstruct.numbadqc > 0 ) % if there are bad observation to plot ... carry on. - - figure(gcf+1); clf - - subplot('position',[0.1 0.20 0.8 0.65]) - - zmin = min(obsstruct.badobs.z); - zmax = max(obsstruct.badobs.z); - - pstruct.scalearray = 128 * ones(size(obsstruct.badobs.obs)); - pstruct.colorbarstring = QCString; - pstruct.clim = [min(obsstruct.badobs.qc) max(obsstruct.badobs.qc)]; - pstruct.str1 = sprintf('%s level (%.2f - %.2f)',obsstruct.ObsTypeString,zmin,zmax); - pstruct.str2 = sprintf('%s (%d bad observations)', ... - obsstruct.CopyString, ... - length(obsstruct.badobs.obs)); - - obsstruct.badobs.obs = obsstruct.badobs.qc; % plot QC values, not obs values - if ( zmin ~= zmax ) - - pstruct.axis = [xmin xmax ymin ymax zmin zmax]; - - plot_3D(obsstruct.badobs, pstruct) - - else - - pstruct.axis = [xmin xmax ymin ymax]; - - plot_2D(obsstruct.badobs, pstruct) - - end - - subplot('position',[0.1 0.05 0.8 0.10]) - axis off - - %% If the QC is a DART QC, we know how to interpret them. - - switch lower(strtrim(QCString)) - case 'dart quality control', - - qcvals = unique(obsstruct.badobs.qc); - qccount = zeros(size(qcvals)); - for i = 1:length(qcvals) - qccount(i) = sum(obsstruct.badobs.qc == qcvals(i)); - s{i} = sprintf('%d obs with qc == %d %s',qccount(i),qcvals(i), ... - dartqc_strings{qcvals(i)}); - end - - dy = 1.0/length(s); - for i = 1:length(s) - text(0.0, (i-1)*dy ,s{i}) - end - - otherwise, - str = sprintf('no way to interpret values of %s',strtrim(QCString)); - text(0.0, 0.0, str) - end -end - - - -function h = myworldmap - -%%-------------------------------------------------------------------------- -% GET THE ELEVATION DATA AND SET UP THE ASSOCIATED COORDINATE DATA -%--------------------------------------------------------------------------- - -load topo; % GET Matlab-native [180x360] ELEVATION DATASET -lats = -89.5:89.5; % CREATE LAT ARRAY FOR TOPO MATRIX -lons = 0.5:359.5; % CREATE LON ARRAY FOR TOPO MATRIX -nlon = length(lons); -nlat = length(lats); - -%%-------------------------------------------------------------------------- -% IF WE NEED TO SWAP HEMISPHERES, DO SO NOW. -% If we didn't explicitly tell it, make a guess. -%--------------------------------------------------------------------------- - -ax = axis; - -if (ax(1) < -2) - lons = lons - 180.0; - topo = [ topo(:,nlon/2+1:nlon) topo(:,1:nlon/2) ]; -end - -%%-------------------------------------------------------------------------- -% We need to determine the geographic subset of the elevation matrix. -%--------------------------------------------------------------------------- - -lon_ind1 = min(find(ax(1) <= lons)); -lon_ind2 = min(find(ax(2) <= lons)); -lat_ind1 = min(find(ax(3) <= lats)); -lat_ind2 = min(find(ax(4) <= lats)); - -if (isempty(lon_ind1)), lon_ind1 = 1; end; -if (isempty(lon_ind2)), lon_ind2 = nlon; end; -if (isempty(lat_ind1)), lat_ind1 = 1; end; -if (isempty(lat_ind2)), lat_ind2 = nlat; end; - -elev = topo(lat_ind1:lat_ind2,lon_ind1:lon_ind2); -x = lons(lon_ind1:lon_ind2); -y = lats(lat_ind1:lat_ind2); - -%%-------------------------------------------------------------------------- -% Contour the "subset" -% There are differences between 6.5 and 7.0 that make changing the colors -% of the filled contours a real pain. -%--------------------------------------------------------------------------- - -orgholdstate = ishold; -hold on; - -switch get(gca,'ZDir') - case 'reverse' - zlevel = max(ax(5:6)); - otherwise - zlevel = min(ax(5:6)); -end - -fcolor = [0.7 0.7 0.7]; % light grey - -[c,h] = contourf(x,y,elev,[0.0 0.0],'k-'); - -h_patch = get(h, 'Children'); - -for i = 1:numel(h_patch) - y = get(h_patch(i), 'YData'); - s = size(y); - set(h_patch(i), 'ZData', zlevel*ones(s),'FaceColor',fcolor); -end - -if (orgholdstate == 0), hold off; end; - - - - -function s = scaleme(x,minsize) -% scaleme returns a uniformly scaled array the same size as the input -% array where the maximum is 10 times the minimum -maxsize = 10*minsize; -minx = min(x); -maxx = max(x); -slope = (maxsize-minsize)/(maxx-minx); -b = minsize - slope*minx; - -s = x*slope + b; - - - -function plot_3D(obsstruct, pstruct) - -if (pstruct.clim(1) == pstruct.clim(2)) - % If all the observations have the same value, setting the - % colorbar limits is a real pain. Fundamentally, I am - % forcing the plot symbols to be the lowest color of the - % colormap and setting the colorbar to have some more - % colors 'on top' - that are never used. - cmap = colormap; - h = plot3(obsstruct.lons, obsstruct.lats, obsstruct.z, 'bo'); - set(h,'MarkerFaceColor',cmap(1,:),'MarkerEdgeColor',cmap(1,:)) - set(gca,'Clim',[pstruct.clim(1) pstruct.clim(2)+1]) - set(gca,'XGrid','on','YGrid','on','ZGrid','on') - -else - scatter3(obsstruct.lons, obsstruct.lats, obsstruct.z, ... - pstruct.scalearray, obsstruct.obs, 'd', 'filled'); -end - -clim = get(gca,'CLim'); - -axis(pstruct.axis) - -title( {pstruct.str1, pstruct.str3, pstruct.str2}, 'Interpreter','none','FontSize',16); -xlabel('longitude') -ylabel('latitude') - -if (obsstruct.Ztyp(1) == -2) % VERTISUNDEF = -2 - zlabel('unspecified') -elseif (obsstruct.Ztyp(1) == -1) % VERTISSURFACE = -1 - zlabel('surface') -elseif (obsstruct.Ztyp(1) == 1) % VERTISLEVEL = 1 - zlabel('level') -elseif (obsstruct.Ztyp(1) == 2) % VERTISPRESSURE = 2 - set(gca,'ZDir','reverse') - zlabel('pressure') -elseif (obsstruct.Ztyp(1) == 3) % VERTISHEIGHT = 3 - zlabel('height') -end - -myworldmap; -set(gca,'CLim',clim) -h = colorbar; -set(get(h,'YLabel'),'String',pstruct.colorbarstring,'Interpreter','none') - - - - -function plot_2D(obsstruct, pstruct) - -axis(pstruct.axis); hold on; worldmap('light'); - -if (pstruct.clim(1) == pstruct.clim(2)) - cmap = colormap; - h = plot(obsstruct.lons, obsstruct.lats, 'bo'); - set(h,'MarkerFaceColor',cmap(1,:),'MarkerEdgeColor',cmap(1,:)) - set(gca,'Clim',[pstruct.clim(1) pstruct.clim(2)+1]) - set(gca,'XGrid','on','YGrid','on') - -else - - scatter(obsstruct.lons, obsstruct.lats, ... - pstruct.scalearray, obsstruct.obs, 'd', 'filled'); -end - -clim = get(gca,'CLim'); - -title( {pstruct.str1, pstruct.str3, pstruct.str2}, 'Interpreter','none','FontSize',16); -xlabel('longitude') -ylabel('latitude') - -set(gca,'CLim',clim) -h = colorbar; -set(get(h,'YLabel'),'String',pstruct.colorbarstring,'Interpreter','none') -hold off Deleted: DART/trunk/observations/utilities/threed_sphere/plot_obs_netcdf_diffs.m =================================================================== --- DART/trunk/observations/utilities/threed_sphere/plot_obs_netcdf_diffs.m 2010-01-28 23:47:24 UTC (rev 4240) +++ DART/trunk/observations/utilities/threed_sphere/plot_obs_netcdf_diffs.m 2010-01-28 23:48:52 UTC (rev 4241) @@ -1,345 +0,0 @@ -function obsstruct = plot_obs_netcdf_diffs(fname, ObsTypeString, region, ... - CopyString1, CopyString2, QCString, maxQC, verbose) -% -% fname = 'obs_sequence_001.nc'; -% ObsTypeString = 'RADIOSONDE_U_WIND_COMPONENT'; -% region = [0 360 -90 90 -Inf Inf]; -% CopyString1 = 'NCEP BUFR observation'; -% CopyString2 = 'prior ensemble mean'; -% QCString = 'DART quality control'; -% maxQC = 1; -% verbose = 1; % anything > 0 == 'true' -% -% bob = plot_obs_netcdf_diffs(fname, ObsTypeString, region, CopyString1, CopyString2, ... -% QCString, maxQC, verbose); - -% record the user input - -%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is -% provided by UCAR, "as is", without charge, subject to all terms of use at -% http://www.image.ucar.edu/DAReS/DART/DART_download -% -% -% $URL$ -% $Id$ -% $Revision$ -% $Date$ - -obsstruct.fname = fname; -obsstruct.ObsTypeString = ObsTypeString; -obsstruct.region = region; -obsstruct.CopyString1 = CopyString1; -obsstruct.CopyString2 = CopyString2; -obsstruct.QCString = QCString; -obsstruct.maxQC = maxQC; -obsstruct.verbose = verbose; - -% get going - -ObsTypes = nc_varget(fname,'ObsTypes'); -ObsTypeStrings = nc_varget(fname,'ObsTypesMetaData'); -CopyStrings = nc_varget(fname,'CopyMetaData'); -QCStrings = nc_varget(fname,'QCMetaData'); - -t = nc_varget(fname,'time'); -obs_type = nc_varget(fname,'obs_type'); -z_type = nc_varget(fname,'which_vert'); - -loc = nc_varget(fname,'location'); -obs = nc_varget(fname,'observations'); -qc = nc_varget(fname,'qc'); - -my_types = unique(obs_type); % only ones in the file, actually. -timeunits = nc_attget(fname,'time','units'); -timerange = nc_attget(fname,'time','valid_range'); -calendar = nc_attget(fname,'time','calendar'); -timebase = sscanf(timeunits,'%*s%*s%d%*c%d%*c%d'); % YYYY MM DD -timeorigin = datenum(timebase(1),timebase(2),timebase(3)); -timestring = datestr(timerange + timeorigin); - -% Echo summary if requested - -if ( verbose > 0 ) - for i = 1:length(my_types) - obtype = my_types(i); - inds = find(obs_type == obtype); - myz = loc(inds,3); - - disp(sprintf('N = %6d %s obs (type %3d) between levels %.2f and %.2f', ... - length(inds), ObsTypeStrings(obtype,:), obtype, ... - unique(min(myz)), unique(max(myz)))) - end - -% uniquelevels = unique(loc(:,3)); - -% for i = 1:length(uniquelevels) -% mylevel = uniquelevels(i); -% inds = find(loc(:,3) == mylevel); -% disp(sprintf('level %2d %f has %d observations',i,mylevel,length(inds))) -% end - -end - -% Find observations of the correct types. - -myind = strmatch(ObsTypeString,ObsTypeStrings); - -if ( isempty(myind) ) - error('no %s observations ... stopping',obsstruct.ObsTypeString) -end - -mytype1 = get_copy_index(fname, CopyString1); -mytype2 = get_copy_index(fname, CopyString2); -inds = find(obs_type == myind); -mylocs = loc(inds,:); -myobs1 = obs(inds,mytype1); -myobs2 = obs(inds,mytype2); -myobs = myobs2 - myobs1; - -if ~ isempty(QCString) - myQCind = get_qc_index(fname, QCString); - myqc = qc(inds,myQCind); -else - myqc = []; -end - -clear myobs1 myobs2 obs loc qc - -% geographic subset if needed - -inds = locations_in_region(mylocs,region); - -obsstruct.lons = mylocs(inds,1); -obsstruct.lats = mylocs(inds,2); -obsstruct.z = mylocs(inds,3); -obsstruct.obs = myobs(inds); -obsstruct.Ztyp = z_type(inds); -obsstruct.numbadqc = 0; - -if (isempty(myqc)) - obsstruct.qc = []; -else - obsstruct.qc = myqc(inds); -end - -% subset based on qc value - -if ( (~ isempty(myqc)) & (~ isempty(maxQC)) ) - - inds = find(obsstruct.qc > maxQC); - - obsstruct.numbadqc = length(inds); - - if (~isempty(inds)) - badobs.lons = obsstruct.lons(inds); - badobs.lats = obsstruct.lats(inds); - badobs.Ztyp = obsstruct.Ztyp(inds); - badobs.z = obsstruct.z( inds); - badobs.obs = obsstruct.obs(inds); - badobs.qc = obsstruct.qc(inds); - end - - disp(sprintf('Removing %d obs with a %s value greater than %f', ... - length(inds),QCString,maxQC)) - - inds = find(obsstruct.qc <= maxQC); - - bob = obsstruct.lons(inds); obsstruct.lons = bob; - bob = obsstruct.lats(inds); obsstruct.lats = bob; - bob = obsstruct.Ztyp(inds); obsstruct.Ztyp = bob; - bob = obsstruct.z( inds); obsstruct.z = bob; - bob = obsstruct.obs( inds); obsstruct.obs = bob; - bob = obsstruct.qc( inds); obsstruct.qc = bob; - -end - -%------------------------------------------------------------------------------- -% Create graphic with area-weighted symbols for the good observations. -%------------------------------------------------------------------------------- - -figure(1); clf - -xmin = min(region(1:2)); -xmax = max(region(1:2)); -ymin = min(region(3:4)); -ymax = max(region(3:4)); -zmin = min(obsstruct.z); -zmax = max(obsstruct.z); - -scalearray = scaleme(obsstruct.obs,36); -scalearray = 128 * ones(size(obsstruct.obs)); - -scatter3(obsstruct.lons, obsstruct.lats, obsstruct.z, ... - scalearray, obsstruct.obs,'d','filled'); - -axis([xmin xmax ymin ymax zmin zmax]) - -str1 = sprintf('%s level (%.2f - %.2f)',ObsTypeString,zmin,zmax); -str2 = sprintf('%s - %s (%d locations)',CopyString2,CopyString1,length(obsstruct.obs)); -str3 = sprintf('%s - %s',timestring(1,:),timestring(2,:)); - -title( {str1, str3, str2}, 'Interpreter','none','FontSize',16); -xlabel('longitude') -ylabel('latitude') - -if (obsstruct.Ztyp(1) == -2) % VERTISUNDEF = -2 - zlabel('curious ... undefined') -elseif (obsstruct.Ztyp(1) == -1) % VERTISSURFACE = -1 - zlabel('surface') -elseif (obsstruct.Ztyp(1) == 1) % VERTISLEVEL = 1 - zlabel('level') -elseif (obsstruct.Ztyp(1) == 2) % VERTISPRESSURE = 2 - set(gca,'ZDir','reverse') - zlabel('pressure') -elseif (obsstruct.Ztyp(1) == 3) % VERTISHEIGHT = 3 - zlabel('height') -end - -myworldmap; -set(gca,'CLim',[min(obsstruct.obs) max(obsstruct.obs)]) -h = colorbar; -set(get(h,'YLabel'),'String',ObsTypeString,'Interpreter','none') - -%------------------------------------------------------------------------------- -% Create graphic of spatial distribution of 'bad' observations & their QC value. -%------------------------------------------------------------------------------- - -if (obsstruct.numbadqc > 0 ) - - figure(2); clf - - subplot('position',[0.1 0.20 0.8 0.65]) - scalearray = 128 * ones(size(badobs.obs)); - - zmin = min(badobs.z); - zmax = max(badobs.z); - - scatter3(badobs.lons, badobs.lats, badobs.z, scalearray, badobs.qc,'filled') - - title( {str1, str3, 'Bad Observations'}, 'Interpreter','none','FontSize',16); - xlabel('longitude') - ylabel('latitude') - - if (badobs.Ztyp(1) == -2) % VERTISUNDEF = -2 - zlabel('curious ... undefined') - elseif (badobs.Ztyp(1) == -1) % VERTISSURFACE = -1 - zlabel('surface') - elseif (badobs.Ztyp(1) == 1) % VERTISLEVEL = 1 - zlabel('level') - elseif (badobs.Ztyp(1) == 2) % VERTISPRESSURE = 2 - set(gca,'ZDir','reverse') - zlabel('pressure') - elseif (badobs.Ztyp(1) == 3) % VERTISHEIGHT = 3 - zlabel('height') - end - - axis([region(1) region(2) ymin ymax zmin zmax]) - - myworldmap; - set(gca,'CLim',[min(badobs.qc) max(badobs.qc)]) - h = colorbar; - set(get(h,'YLabel'),'String',QCString,'Interpreter','none') - - subplot('position',[0.1 0.05 0.8 0.10]) - axis off - - qcvals = unique(badobs.qc); - qccount = zeros(size(qcvals)); - for i = 1:length(qcvals) - qccount(i) = sum(badobs.qc == qcvals(i)); - s{i} = sprintf('%d obs with qc == %d',qccount(i),qcvals(i)); - end - - dy = 1.0/length(s); - for i = 1:length(s) - text(0.0, (i-1)*dy ,s{i}) - end - -end - -function h = myworldmap - -%--------------------------------------------------------------------------- -% GET THE ELEVATION DATA AND SET UP THE ASSOCIATED COORDINATE DATA -%--------------------------------------------------------------------------- - -load topo; % GET Matlab-native [180x360] ELEVATION DATASET -lats = [-89.5:89.5]; % CREATE LAT ARRAY FOR TOPO MATRIX -lons = [0.5:359.5]; % CREATE LON ARRAY FOR TOPO MATRIX -nlon = length(lons); -nlat = length(lats); - -%--------------------------------------------------------------------------- -% IF WE NEED TO SWAP HEMISPHERES, DO SO NOW. -% If we didn't explicitly tell it, make a guess. -%--------------------------------------------------------------------------- - -ax = axis; - -if (ax(1) < -2) - lons = lons - 180.0; - topo = [ topo(:,nlon/2+1:nlon) topo(:,1:nlon/2) ]; -end - -%--------------------------------------------------------------------------- -% We need to determine the geographic subset of the elevation matrix. -%--------------------------------------------------------------------------- - -lon_ind1 = min(find(ax(1) <= lons)); -lon_ind2 = min(find(ax(2) <= lons)); -lat_ind1 = min(find(ax(3) <= lats)); -lat_ind2 = min(find(ax(4) <= lats)); - -if (isempty(lon_ind1)) lon_ind1 = 1; end; -if (isempty(lon_ind2)) lon_ind2 = nlon; end; -if (isempty(lat_ind1)) lat_ind1 = 1; end; -if (isempty(lat_ind2)) lat_ind2 = nlat; end; - -elev = topo(lat_ind1:lat_ind2,lon_ind1:lon_ind2); -x = lons(lon_ind1:lon_ind2); -y = lats(lat_ind1:lat_ind2); - -%--------------------------------------------------------------------------- -% Contour the "subset" -% There are differences between 6.5 and 7.0 that make changing the colors -% of the filled contours a real pain. Providing both solutions. -%--------------------------------------------------------------------------- - -orgholdstate = ishold; -hold on; - -switch get(gca,'ZDir') - case 'reverse' - zlevel = max(ax(5:6)); - otherwise - zlevel = min(ax(5:6)); -end - -fcolor = [0.7 0.7 0.7]; % light grey - -[c,h] = contourf(x,y,elev,[0.0 0.0],'k-'); - -new_level = 1000; - -h_patch = get(h, 'Children'); - -for i = 1:numel(h_patch) - y = get(h_patch(i), 'YData'); - s = size(y); - set(h_patch(i), 'ZData', zlevel*ones(s),'FaceColor',fcolor); -end - -if (orgholdstate == 0) hold off; end; - - -function s = scaleme(x,minsize) -% scaleme returns a uniformly scaled array the same size as the input -% array where the maximum is 10 times the minimum -maxsize = 10*minsize; -minx = min(x); -maxx = max(x); -slope = (maxsize-minsize)/(maxx-minx); -b = minsize - slope*minx; - -s = x*slope + b; - Deleted: DART/trunk/observations/utilities/threed_sphere/read_obs_netcdf.m =================================================================== --- DART/trunk/observations/utilities/threed_sphere/read_obs_netcdf.m 2010-01-28 23:47:24 UTC (rev 4240) +++ DART/trunk/observations/utilities/threed_sphere/read_obs_netcdf.m 2010-01-28 23:48:52 UTC (rev 4241) @@ -1,187 +0,0 @@ -function obsstruct = read_obs_netcdf(fname, ObsTypeString, region, CopyString, ... - QCString, maxQC, verbose) -%% read_obs_netcdf reads in the netcdf flavor observation sequence file -% and returns a subsetted structure. -% -% fname = 'obs_sequence_001.nc'; -% ObsTypeString = 'RADIOSONDE_U_WIND_COMPONENT'; % or 'ALL' ... -% region = [0 360 -90 90 -Inf Inf]; -% CopyString = 'NCEP BUFR observation'; -% QCString = 'DART quality control'; -% maxQC = 2; -% verbose = 1; % anything > 0 == 'true' -% -% obs = read_obs_netcdf(fname, ObsTypeString, region, CopyString, QCString, maxQC, verbose); -% -% The return variable 'obs' is a structure. As an example ... -% -% fname: 'obs_sequence_001.nc' -% ObsTypeString: 'RADIOSONDE_U_WIND_COMPONENT' -% region: [0 360 -90 90 -Inf Inf] -% CopyString: 'NCEP BUFR observation' -% QCString: 'DART quality control' -% maxQC: 2 -% verbose: 1 -% timestring: [2x20 char] -% lons: [2343x1 double] -% lats: [2343x1 double] -% z: [2343x1 double] -% obs: [2343x1 double] -% Ztyp: [2343x1 double] -% numbadqc: 993 -% qc: [2343x1 double] -% badobs: [1x1 struct] - -%% DART software - Copyright \xA9 2004 - 2010 UCAR. This open source software is -% provided by UCAR, "as is", without charge, subject to all terms of use at -% http://www.image.ucar.edu/DAReS/DART/DART_download -% -% -% $URL$ -% $Id$ -% $Revision$ -% $Date$ - -if (exist(fname,'file') ~= 2) - error('%s does not exist.',fname) -end - -%% record the user input - -obsstruct.fname = fname; -obsstruct.ObsTypeString = ObsTypeString; -obsstruct.region = region; -obsstruct.CopyString = CopyString; -obsstruct.QCString = QCString; -obsstruct.maxQC = maxQC; -obsstruct.verbose = verbose; - -%% get going - -ObsTypes = nc_varget(fname,'ObsTypes'); -ObsTypeStrings = nc_varget(fname,'ObsTypesMetaData'); -CopyStrings = nc_varget(fname,'CopyMetaData'); -QCStrings = nc_varget(fname,'QCMetaData'); - -t = nc_varget(fname,'time'); -obs_type = nc_varget(fname,'obs_type'); -z_type = nc_varget(fname,'which_vert'); - -loc = nc_varget(fname,'location'); -obs = nc_varget(fname,'observations'); -qc = nc_varget(fname,'qc'); - -my_types = unique(obs_type); % only ones in the file, actually. -timeunits = nc_attget(fname,'time','units'); -timerange = nc_attget(fname,'time','valid_range'); -calendar = nc_attget(fname,'time','calendar'); -timebase = sscanf(timeunits,'%*s%*s%d%*c%d%*c%d'); % YYYY MM DD -timeorigin = datenum(timebase(1),timebase(2),timebase(3)); -timestring = datestr(timerange + timeorigin); - -obsstruct.timestring = timestring; - -%% Echo summary if requested - -if ( verbose > 0 ) - for i = 1:length(my_types) - obtype = my_types(i); - inds = find(obs_type == obtype); - myz = loc(inds,3); - - fprintf('N = %6d %s obs (type %3d) between levels %.2f and %.2f\n', ... - length(inds), ObsTypeStrings(obtype,:), obtype, ... - unique(min(myz)), unique(max(myz))) - end - -% uniquelevels = unique(loc(:,3)); - -% for i = 1:length(uniquelevels) -% mylevel = uniquelevels(i); -% inds = find(loc(:,3) == mylevel); -% disp(sprintf('level %2d %f has %d observations',i,mylevel,length(inds))) -% end - -end - -%% Find observations of the correct type. -% If 'ALL' is requested ... do not subset. - -mytypeind = get_copy_index(fname, CopyString); - -switch lower(ObsTypeString) - case 'all' - inds = 1:size(obs,1); - - otherwise % subset the desired observation type - myind = strmatch(ObsTypeString, ObsTypeStrings); - if ( isempty(myind) ) - error('no %s observations ... stopping',obsstruct.ObsTypeString) - end - inds = find(obs_type == myind); -end - -mylocs = loc(inds,:); -myobs = obs(inds,mytypeind); - -%% Find desired QC values of those observations - -if ~ isempty(QCString) - myQCind = get_qc_index(fname, QCString); - myqc = qc(inds,myQCind); -else - myqc = []; -end - -%% geographic subset if needed - -inds = locations_in_region(mylocs,region); - -obsstruct.lons = mylocs(inds,1); -obsstruct.lats = mylocs(inds,2); -obsstruct.z = mylocs(inds,3); -obsstruct.obs = myobs(inds); -obsstruct.Ztyp = z_type(inds); -obsstruct.qc = []; -obsstruct.numbadqc = 0; - -if ~ isempty(myqc) - obsstruct.qc = myqc(inds); -end - -%% subset based on qc value -% - -if ( (~ isempty(myqc)) && (~ isempty(maxQC)) ) - - inds = find(obsstruct.qc > maxQC); - - obsstruct.numbadqc = length(inds); - - if (~isempty(inds)) - badobs.lons = obsstruct.lons(inds); - badobs.lats = obsstruct.lats(inds); - badobs.Ztyp = obsstruct.Ztyp(inds); - badobs.z = obsstruct.z( inds); - badobs.obs = obsstruct.obs(inds); - badobs.qc = obsstruct.qc(inds); - end - - fprintf('Removing %d obs with a %s value greater than %f\n', ... - length(inds),QCString,maxQC) - - inds = find(obsstruct.qc <= maxQC); - - bob = obsstruct.lons(inds); obsstruct.lons = bob; - bob = obsstruct.lats(inds); obsstruct.lats = bob; - bob = obsstruct.Ztyp(inds); obsstruct.Ztyp = bob; - bob = obsstruct.z( inds); obsstruct.z = bob; - bob = obsstruct.obs( inds); obsstruct.obs = bob; - bob = obsstruct.qc( inds); obsstruct.qc = bob; - -end - -if ( exist('badobs','var') ) - obsstruct.badobs = badobs; -end - From nancy at ucar.edu Thu Jan 28 16:52:39 2010 From: nancy at ucar.edu (nancy at ucar.edu) Date: Thu, 28 Jan 2010 16:52:39 -0700 Subject: [Dart-dev] [4242] DART/trunk/diagnostics/threed_sphere/obs_seq_to_netcdf.html: Changed doc to reflect the fact I moved some matlab scripts into Message-ID: Revision: 4242 Author: thoar Date: 2010-01-28 16:52:39 -0700 (Thu, 28 Jan 2010) Log Message: ----------- Changed doc to reflect the fact I moved some matlab scripts into DART/diagnostics/matlab (from observations/utilities/threed_sphere) Modified Paths: -------------- DART/trunk/diagnostics/threed_sphere/obs_seq_to_netcdf.html -------------- next part -------------- Modified: DART/trunk/diagnostics/threed_sphere/obs_seq_to_netcdf.html =================================================================== --- DART/trunk/diagnostics/threed_sphere/obs_seq_to_netcdf.html 2010-01-28 23:48:52 UTC (rev 4241) +++ DART/trunk/diagnostics/threed_sphere/obs_seq_to_netcdf.html 2010-01-28 23:52:39 UTC (rev 4242) @@ -31,7 +31,7 @@ This routine will allow you to plot the spatial distribution of the observations and be able to discern which observations were assimilated or rejected, for example. Here are some graphics from - DART/observations/utilities/threed_sphere/DART/diagnostics/matlab/plot_obs_netcdf.m.

    @@ -383,15 +383,15 @@ from the obs_seq_to_netcdf.

    Related Matlab functions

    -
    • observations/utilities/read_obs_netcdf.m +
      • diagnostics/matlab/read_obs_netcdf.m reads the netcdf files and returns an structure with easy-to-plot components. More on that in the 'Usage' section below.
      • -
      • observations/utilities/plot_obs_netcdf.m may +
      • diagnostics/matlab/plot_obs_netcdf.m may be used to explore the spatial distribution of observations and their values. More on that in the 'Usage' section below.
      • -
      • observations/utilities/plot_obs_netcdf_diffs.m will +
      • diagnostics/matlab/plot_obs_netcdf_diffs.m will take the difference between any two observation copies and plot the spatial distribution and value of the difference. Useful for exploring the bias between 'observation' and 'prior ensemble mean', for example.
    Contact: DART core group
    Contact: DART core group
    Revision: $Revision$
    Source: $URL$
    Change Date: $Date$