Changes between Version 12 and Version 13 of Lorenz_96_model


Ignore:
Timestamp:
Aug 21, 2018, 3:39:19 PM (4 months ago)
Author:
lnerger
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Lorenz_96_model

    v12 v13  
    77solved. Proceedings Seminar on Predictability, ECMWF, READING, UK) providing various filter and smoother methods. We used this implementation for different publications in which we studied the behavior of different data assimilation methods.
    88
    9 Next to the implementation of Lorenz-96 with PDAF, the test case provides tool programs and scripts that
     9Next to the implementation of the Lorenz-96 model with PDAF, the test case provides tool programs and scripts that
    1010allow to run a test case and to display the outputs. Note, that this implementation runs without parallelization.
    1111
     
    1313== Running the test case  ==
    1414
    15 Runnning a data assimilation experiment with the Lorenz-96 model is a two step process: First one runs the model without PDAF to generate a file holding the trajectory of a forward run. Then one generates files with observations and a covariance matrix for the initialization of the initial ensemble. In the second step, one compiles the Lorenz-96 with activated coupling to PDAF and runs the experiments.
     15Runnning a data assimilation experiment with the Lorenz-96 model is a two step process: First one runs the model without PDAF to generate a file holding the trajectory of a forward run. Then one generates files with observations and a covariance matrix for the initialization of the initial ensemble. In the second step, one compiles the Lorenz-96 model with activated coupling to PDAF and runs the data assimilation experiments.
    1616
    1717=== 1. Compile and run the forward model without assimilation ===
     
    3232in the directory `testsuite/src/` of the PDAF package. You have to ensure
    3333that in the machine-specific make include file `linux_gfortran.h` `-DUSE_PDAF` is not defined
    34 for CPP_DEFS (such that calls to PDAF are not active). The executable
     34for CPP_DEFS (such that calls to PDAF are not active). You can replace `linux_gfortran` by any other make include file from `make.arch/`, e.g. specify `osx_gfortran` for compiling on Mac OS-X. The executable
    3535is generated in `testsuite/bin/`.
    3636
    37 '''Note''': The implementation uses the NetCDF library for file outputs. If the compilation above fails, please ensure the netcdf-library ist installed. On computers running Linux, it is usually available as a package of the operating system.
     37'''Note''': The implementation uses the NetCDF library for file outputs. If the compilation above fails, please ensure the netcdf-library ist installed. On computers running Linux, it is usually available as a package of the operating system. On Mac OS-X one can install the netcdf library e.g. using Fink or MacPorts.
    3838
    3939To run the forward model use
     
    4242  ./lorenz_96 -total_steps 10000
    4343}}}
    44 This runs Lorenz-96 model for 10000 time steps and the trajectory is written into a file `state.nc`.
     44This runs the Lorenz-96 model for 10000 time steps and the trajectory is written into a file `state.nc`.
    4545
    4646=== 2. Generate observations and a covariance matrix ===
     
    7979
    8080Now compile the Lorenz-96 model with activated
    81 PDAF. First clean the directories for the main driver and the Lorenz-96 model using
     81coupling to PDAF. First clean the directories for the main driver and the Lorenz-96 model using
    8282{{{
    8383  cd ../../
     
    100100The script runsasml.sh runs 11 experiments with a fixed ensemble size, but
    101101different covariance inflations (forgetting factors). The execution can
    102 take about 2 minutes.
     102take a few minutes.
    103103
    104104=== 4. Plot output from the assimilation experiments ===
     
    110110and see the file README there for a description of the available plotting scripts.
    111111
    112 `plot_example` plots the true and estimated mean RMS errors as a function of the
     112`plot_example.m` plots the true and estimated mean RMS errors as a function of the
    113113forgetting factor.
    114114
     
    128128== Run options ==
    129129
    130 The implementation for the Lorenz-96 model has a wide range of options. For the full set, we recommend to check the list in the file init_pdaf.F90 in the directory lorenz96. Essentiall all of the options can be specified on the command line in the format '-VARIABLE VALUE', where VARIABLE is the name of the variable in the program and VALUE is its value. The experiments in `runasml.sh` are executed like
     130The implementation for the Lorenz-96 model has a wide range of options. For the full set, we recommend to check the list in the file init_pdaf.F90 in the directory lorenz96. Essentially all of the options can be specified on the command line in the format '-VARIABLE VALUE', where VARIABLE is the name of the variable in the program and VALUE is its value. The experiments in `runasml.sh` are executed like
    131131{{{
    132132./pdaf_lorenz_96 -total_steps 5000 -step_null 1000 -dim_ens 30 -filtertype 1 -forget 0.99 -file_asml t1_N30_f0.99.nc
     
    145145
    146146||= Variable =||= Description =||= Default value =||
    147 || delt_obs  || time interval between observation, i.e. for forecast length || 1 ||
    148 || dim_lag   || set the time lag for the smoother (the smoother is actiave for dim_lag>0) || 0 ||
     147|| delt_obs  || time interval between observations, i.e. the forecast length || 1 ||
     148|| dim_lag   || set the time lag for the smoother (the smoother is active for dim_lag>0) || 0 ||
    149149|| dim_state || set state dimension (if changed, the true state trajectory, observations, and covariance matrix file need to be re-generated) || 40 ||
    150 || dx_obs    || distance between observation on the grid; let's you specify an incompletely observated state (only used when use_obs_mask=.true.) || 1 ||
     150|| dx_obs    || distance between observations on the grid; let's you specify an incompletely observated state (only used when `use_obs_mask=.true.`) || 1 ||
    151151|| local_range || localization radius in grid points || 5 ||
    152 || locweight || choose localiztion weight function, e.g. 4 is the 5th-order polynomial mimicking a Gaussian (see Gaspari and Cohn 1999) || 0 ||
    153 || model_error || a logical variable activiting model error noise || .false. ||
     152|| locweight || choose localization weight function, e.g. 4 is the 5th-order polynomial mimicking a Gaussian (see Gaspari and Cohn 1999) || 0 ||
     153|| model_error || a logical variable activating model error noise || .false. ||
    154154|| model_err_amp || amplitude of the model error || 0.1 ||
    155 || numobs || number of observed grid points; the points 1 to numobs are observed (can be combined with dx_obs; only used when use_obs_mask=.true.) || dim_state ||
     155|| numobs || number of observed grid points; the points 1 to numobs are observed (can be combined with dx_obs; only used when `use_obs_mask=.true.`) || dim_state ||
    156156|| use_obs_mask || whether to use incomplete observations (need to be .true. for any other settings on the observation density to be used) || .false. ||
    157157
    158 For the full set of options, please see init_pdaf.F90 in the lorenz96 directory. There, also the possible settings e.g. for `filtertype` are described.
     158For the full set of options, please see init_pdaf.F90 in the lorenz96 directory. There, also the possible settings e.g. for `filtertype` or `locweight` are described.
    159159
    160160