December 1, 2005

What's new:
1.  A set of code to read real surface observations and produce an obs sequence, based on the dates set in wrf1d_namelist.input.  This is called create_real_network.

2.  The model is date-aware now, and it will be very helpful when running ixperiments to understand all the time controls.  The GREGORIAN calendar is synched between DART and the model.  One must make sure that the initialization times given to DART makes sense relative to the date specified in wrf1d_namelist.input.

3.  The ability to initialize the soil and profiles from observations.  We have not implemented a perterbation method about observed profiles, so only single runs can be initialized from obs.

4.  More robust initialization with lots more error checking.

5.  Basic parameter estimation infrastructure.

Some background on the code is given in driver.F and PBLcolumn.pdf
and at 
http://www.mmm.ucar.edu/wrf/users/workshops/WS2005/presentations/session4/6-Pagowski.pdf
http://www.mmm.ucar.edu/mm5/workshop/ws04/Session1/Pagowski.Mariusz_web.pdf

Input to the 1d WRF can consist of idealized profiles built based
on namelist, profiles derived from 3d WRF runs, or profiles derived
from observations.  It is currently not possible to run ensembles from
observations because a perturbation strategy about an observed profile
is not implemented.  The input files must be in a specific netCDF format.
Little error checking is done.

Output contains final profiles of wind, potential temperature and mixing
ratio, time series of soil temperature and moisture and some similarity
diagnostics  (see subroutine output_wrf_profiles in module_wrf.F)

Below parameters used in namelist are described

-----------------------------
&record1 - contains general specifications on physics options,
vertical grid, time step etc.

init_f  - TRUE if input is obtained from profiles derived from 3d WRF runs
         (follows to &record2)
         FALSE if input is idealized (follows to &record2)

rnd_init - TRUE if requesting random selection for input (i.e. a random ensemble member)
           FALSE if requesting input from a specific date/time
           
init_f_type - OBS to get initialization and forcing input from provided obs
              WRF to get it from 3D WRF output

BL and surface schemes - options:

  CHARACTER(len=15) :: bl_pbl_physics='MYJPBLSCHEME',sf_sfclay_physics='SFCLAYSCHEME'
  CHARACTER(len=15) :: bl_pbl_physics='MYJPBLSCHEME',sf_sfclay_physics='MYJSFCSCHEME'
  CHARACTER(len=15) :: bl_pbl_physics='MRFPBLSCHEME',sf_sfclay_physics='SFCLAYSCHEME'
  CHARACTER(len=15) :: bl_pbl_physics='YSUPBLSCHEME',sf_sfclay_physics='SFCLAYSCHEME'
  CHARACTER(len=15) :: sf_surface_physics='LSMSCHEME'
  CHARACTER(len=15) :: sf_surface_physics='RUCLSMSCHEME'
  CHARACTER(len=15) :: sf_surface_physics='SLABSCHEME'
  CHARACTER(len=15) :: sf_surface_physics='SIMPLESCHEME' - skin 
temperature varies sinusoidally

dt - timestep for integration

nz - numbers of vertical levels (grid is read from file "grid_wrf1d.ascii")

deep_soil_moisture - if deep soil moisture not available what fraction
of saturated value

P_QV - set to 2 if moist run

PQ?  - set to 3,4,5,6 depending on how many moisture variables used
(could water, raid water, ice, snow, graupel). In BL only P_QV/P_QC count

ifsnow - self-explaining

isfflx - if surface fluxes considered

pblh_ref - reference height of the PBL- not currently used

indir/outdir - input/output directories

-----------------------------
&record2 - for initial profiles derived from 3d WRF or OBS

init_f_file - 3x3xnz WRF cube derived from 3d WRF forecast (WRF)
            - file containing soundings (OBS)

init_flux_file - file containing radiative flux obs (OBS)

init_soil_file - file containing 2-point soil probe obs (OBS)

init_smos_file - file containing shelter obs, which is used to specify 
                 initial profiles if it is available, and used to
                 create obs networks.

uvg_file - if force_uvg = .true., geostrophic winds from this file replace
those from init_f_file.  This file contains single profiles that look
like the observations (sounding) file.

force_uvg = logical to use independent geostrophic winds, rather than the
full winds from init_f_file, which are also imposed constant below z_g.

out_f_file - output file with profiles at intervals specified in the
namelist below

output_state_vector - TRUE to output DART vector (only used with DART)

The following time variables are the Gregorian start of the model.
If init_rnd = .FALSE. they also request specific input forcing for the
OBS case.

  start_year_f 
  start_month_f 
  start_day_f 
  start_hour_f 
  start_minute_f

start_forecast - time interval after the above time to begin column
simulation (seconds)

forecast_length - length of 1d WRF forecast (seconds)

interval_f - intervals at which WRF|OBS is available for forcing
the profiles (seconds)

interval_flux - intervals at which WRF|OBS is available for forcing
the radiative fluxes (seconds)

interval_soil - intervals at which WRF|OBS is available for forcing
the soil (seconds); currently, only the initialization time is used

interval_smos - intervals at which WRF|OBS is available for creating
obs networks; currently, the initialization time is also used to
help specify the lower profiles

interval_uvg - intervals for separately-specified geostrophic winds,
if force_uvg = .true.

splineinterval - some interpolation of profile forcings from WRF|OBS is
done with cubic splines (seconds)

splineinterval_flux - some interpolation of forcings from WRF|OBS is
done with cubic splines (seconds)

splineinterval_smos - some interpolation of forcings from WRF|OBS is
done with cubic splines (seconds); currently not used

outfinterval -  how often vertical profiles are output
(see out_f_file above)

rnd_seed_val - random value for specifying weights for obtaining
ensembles for DART assimilation (if not interested in random
profile mixing set control_w=1. in module_wrf_init_and_bc.F)

z_g - below this geostrophic wind is taken at u(z_g), v(z_g)
Above this height u_g=u, v_g=v. This simplification is due
to the fact that geostrophic wind calculated from pressure in 
3d WRF significantly departs from the actual wind above the boundary
layer. It is not clear why it is so since gravity waves are probably 
not a factor (e.g similar departures for hours 1, 2, 3 etc of the 
forecast). Let me know if you have better ideas.

------------------------------------
&record3 - for runs starting from idealized profiles, BUT ALSO USED WHEN
           OTHER INPUT DATA IS UNAVAILABLE OR MISSING

odayfraction - .25 stands for 06 LST, .5 for 12 LST etc

totdayfraction - when to end integration, .25 stands for 06 LST, etc

outinterval - output interval for vertical profiles

dtamplitude_ref - daily amplitude for surface temperature (only for
surface_physics='SIMPLESCHEME')

dtdz_ref - temperature gradient, -999 for adiabatic gradient

u_g_ref - u-dir geostrophic wind

v_g_ref - v-dir geostrophic wind

qsrat_ref - saturation fraction for mixing ratio see
module_initialize.F how qv is initialized in module_initialize.F

rland_ref - 1 when land, 0 when water

mminlu_ref - which landuse table used

julday_ref - julian day

lu_index_ref - landuse category

mavail_ref - moisture availability

ivgtyp_ref - vegetation type

isltyp_ref - soil type

vegfra_ref - vegetation fraction

zo_ref - roughness in m

emiss_ref - emissivity

thc_ref - thermal inertia

albedo_ref - albedo

ts_ref - skin temperature
(only for surface_physics='SIMPLESCHEME')

tmn_ref - deep soil temperature
(only for surface_physics='SIMPLESCHEME')

ps_ref - surface pressure

lat_ref - latitude  of the place

lon_ref - longitude of the place




