DART Documentation Main Index
dart_to_noah is the program that overwrites
a NOAH netCDF-format restart file (usually linked to "restart.nc")
with the state information contained in a DART output/restart file
(e.g. perfect_restart, filter_restart, ... ).
The DART model time is compared to the time in the NOAH restart file.
If the time in the restart file does not match the DART model time,
the dart_vector_to_model_file routine issues an
error message and aborts. Due to the fact the NOAH restart files are
timestamped such that the time reflects the valid time
UPON THE NEXT ADVANCE, one NOAH_TIMESTEP
is subtracted from the time in the Time variable in the NOAH restart file.
See the expanded explanation in the NOAH model_mod.html.
The standalone version of NOAH (Noah_hrldas_beta) requires a separate forcing file for each hour in its current configuration. dart_to_noah creates a file (noah_advance_information.txt) that has a list of the expected *******.LDASIN_DOMAIN1 files needed for the next model advance. Example noah_advance_information.txt file:
dart_to_noah:noah model date 2009 Jan 02 08:00:00 dart_to_noah:noah advance_to_date 2009 Jan 02 09:00:00 khour = 1 nfiles = 2 2009010209.LDASIN_DOMAIN1 2009010210.LDASIN_DOMAIN1
While setting up an experiment or for testing purposes,
dart_to_noah may be used on DART files that
have a header containing one time stamp followed by the model state by
During perfect_model_obs or filter, the &dart_to_noah_nml:advance_time_present must be set to .true. to read the internal DART files that have two timestamps in the header. These files are temporarily generated when DART is used to advance the model. One timestamp is the 'advance_to' time, the other is the 'valid_time' of the model state.
Conditions required for successful execution of dart_to_noah:
dart_to_noah and noah_to_dart are used extensively in the scripts in the shell_scripts directory. Since this program is called repeatedly for every ensemble member, we have found it convenient to link the DART input file to the default input filename (dart_restart). The same thing is true for the NOAH restart files (noah_restart.nc).
This namelist is read from the file input.nml. Namelists start with an ampersand '&' and terminate with a slash '/'. Character strings that contain a '/' must be enclosed in quotes to prevent them from prematurely terminating the namelist.
&dart_to_noah_nml dart_to_noah_input_file = 'dart_restart', skip_variables = ' ' advance_time_present = .true., /
|dart_to_noah_input_file||character(len=128)||The name of the DART file containing the model state to insert into the NOAH restart file.|
|The list of NOAH variables that must not be updated in the NOAH restart file even if they were used to create the DART state vector. Be aware that these variables WILL be modified in Posterior_Diag.nc so you can see the assimilated state.|
|advance_time_present||logical||If you are converting a DART initial conditions or restart file this should be .false.; these files have a single timestamp describing the valid time of the model state. If .true., TWO timestamps are expected to be the DART file header. In this case, a namelist for NOAH (called noah_in.DART) is created that contains the &time_manager_nml settings appropriate to advance NOAH to the time requested by DART.|
&model_nml noah_netcdf_filename = 'restart.nc', assimilation_period_days = 0, assimilation_period_seconds = 3600, model_perturbation_amplitude = 0.0, output_state_vector = .false. debug = 1, noah_state_variables = 'SOIL_T', 'KIND_SOIL_TEMPERATURE', 'SOIL_M', 'KIND_SOIL_MOISTURE', 'SOIL_W', 'KIND_SOIL_LIQUID_WATER', 'SKINTEMP', 'KIND_SKIN_TEMPERATURE', 'SNODEP', 'KIND_SNOW_THICKNESS', 'WEASD', 'KIND_SNOW_WATER', 'CANWAT', 'KIND_CANOPY_WATER', 'QFX', 'KIND_LATENT_HEAT_FLUX', /
The full description of the model_nml namelist is documented in the noah model_mod, but the most important variables for noah_to_dart are repeated here.
|noah_netcdf_filename||character(len=128)||The name of the NOAH RESTART file to use to create the DART state vector. For convenience, the advance_model.csh script usually links the most recent restart file to a static name.|
|The list of variable names in the NOAH restart file to use to create the DART state vector and their corresponding DART kinds.|
&model_nml noah_netcdf_filename = 'restart.nc', noah_state_variables = 'SOIL_T', 'KIND_SOIL_TEMPERATURE', 'SOIL_M', 'KIND_SOIL_MOISTURE', 'SOIL_W', 'KIND_SOIL_LIQUID_WATER', 'SKINTEMP', 'KIND_SKIN_TEMPERATURE', 'SNODEP', 'KIND_SNOW_THICKNESS', 'WEASD', 'KIND_SNOW_WATER', 'CANWAT', 'KIND_CANOPY_WATER', 'QFX', 'KIND_LATENT_HEAT_FLUX', 'HFX', 'KIND_SENSIBLE_HEAT_FLUX', 'GRDFLX', 'KIND_GROUND_HEAT_FLUX' / &dart_to_noah_nml dart_to_noah_input_file = 'dart_restart', skip_variables = 'QFX','HFX', advance_time_present = .true. /
&NOAHLSM_OFFLINE ... KHOUR = 1 FORCING_TIMESTEP = 3600 NOAH_TIMESTEP = 3600 OUTPUT_TIMESTEP = 3600 RESTART_FREQUENCY_HOURS = 1 SPLIT_OUTPUT_COUNT = 1 ... /
The NOAHLSM_OFFLINE namelist is read from
namelist.hrldas - only those variables important for
noah_to_dart are repeated here. The interpretations
are exactly as described in the NOAH documentation.
The values listed above are the only values expected to work. Change these at your own risk!
assim_model_mod location_mod model_mod null_mpi_utilities_mod obs_kind_mod random_seq_mod time_manager_mod types_mod utilities_mod
none - all error messages come from modules that have their own documentation.
DART software - Copyright 2004 - 2013 UCAR.
This open source software is provided by UCAR, "as is",
|Revision:||$Revision: 7959 $|
|Source:||$URL: https://svn-dares-dart.cgd.ucar.edu/DART/releases/classic/models/noah/dart_to_noah.html $|
|Change Date:||$Date: 2015-05-06 16:18:27 -0600 (Wed, 06 May 2015) $|
|Change history:||try "svn log" or "svn diff"|