Changes between Version 12 and Version 13 of Lorenz_96_model
- Timestamp:
- Aug 21, 2018, 3:39:19 PM (6 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Lorenz_96_model
v12 v13 7 7 solved. 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. 8 8 9 Next to the implementation of Lorenz-96with PDAF, the test case provides tool programs and scripts that9 Next to the implementation of the Lorenz-96 model with PDAF, the test case provides tool programs and scripts that 10 10 allow to run a test case and to display the outputs. Note, that this implementation runs without parallelization. 11 11 … … 13 13 == Running the test case == 14 14 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 theexperiments.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 model with activated coupling to PDAF and runs the data assimilation experiments. 16 16 17 17 === 1. Compile and run the forward model without assimilation === … … 32 32 in the directory `testsuite/src/` of the PDAF package. You have to ensure 33 33 that 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 executable34 for 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 35 35 is generated in `testsuite/bin/`. 36 36 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. 38 38 39 39 To run the forward model use … … 42 42 ./lorenz_96 -total_steps 10000 43 43 }}} 44 This runs Lorenz-96 model for 10000 time steps and the trajectory is written into a file `state.nc`.44 This runs the Lorenz-96 model for 10000 time steps and the trajectory is written into a file `state.nc`. 45 45 46 46 === 2. Generate observations and a covariance matrix === … … 79 79 80 80 Now compile the Lorenz-96 model with activated 81 PDAF. First clean the directories for the main driver and the Lorenz-96 model using81 coupling to PDAF. First clean the directories for the main driver and the Lorenz-96 model using 82 82 {{{ 83 83 cd ../../ … … 100 100 The script runsasml.sh runs 11 experiments with a fixed ensemble size, but 101 101 different covariance inflations (forgetting factors). The execution can 102 take a bout 2minutes.102 take a few minutes. 103 103 104 104 === 4. Plot output from the assimilation experiments === … … 110 110 and see the file README there for a description of the available plotting scripts. 111 111 112 `plot_example ` plots the true and estimated mean RMS errors as a function of the112 `plot_example.m` plots the true and estimated mean RMS errors as a function of the 113 113 forgetting factor. 114 114 … … 128 128 == Run options == 129 129 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 like130 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. 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 131 131 {{{ 132 132 ./pdaf_lorenz_96 -total_steps 5000 -step_null 1000 -dim_ens 30 -filtertype 1 -forget 0.99 -file_asml t1_N30_f0.99.nc … … 145 145 146 146 ||= Variable =||= Description =||= Default value =|| 147 || delt_obs || time interval between observation , i.e. forforecast length || 1 ||148 || dim_lag || set the time lag for the smoother (the smoother is acti ave 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 || 149 149 || 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 || 151 151 || local_range || localization radius in grid points || 5 || 152 || locweight || choose localiz tion 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 activ iting 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. || 154 154 || 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 || 156 156 || use_obs_mask || whether to use incomplete observations (need to be .true. for any other settings on the observation density to be used) || .false. || 157 157 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.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` or `locweight` are described. 159 159 160 160