Changes between Initial Version and Version 1 of Lorenz_96_model


Ignore:
Timestamp:
Jun 17, 2018, 2:18:06 PM (6 years ago)
Author:
lnerger
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Lorenz_96_model

    v1 v1  
     1= Lorenz-96 model with PDAF =
     2
     3[[PageOutline(2-3,Contents of this page)]]
     4
     5The implementation of the Loren-96 model coupled to PDAF is in the directory `testsuite/src/lorenz96` of the PDAF package.
     6Provided is a full implementation of PDAF with the nonlinear Lorenz96 model (E. N. Lorenz (1996) Predictability - a problem partly
     7solved. Proceedings Seminar on Predictability, ECMWF, READING, UK) providing various filter and smoother methods. We used this implementation for the different publications in which we studies the behavior of different data assimilation methods.
     8
     9Next to the implementation of Lorenz-96 with PDAF, the test case provides tool programs and scripts that
     10allow to run a test case and to display the outputs.
     11
     12
     13== Running the test case  ==
     14
     15Runnning a data assimilation experimnet 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.
     16
     17=== 1. Compile and run the forward model without assimilation ===
     18
     19First change in the file `make.arch/linux_gfortran.h` the line
     20{{{
     21CPP_DEFS = -DUSE_PDAF
     22}}}
     23to
     24{{{
     25CPP_DEFS = #-DUSE_PDAF
     26}}}
     27to deactivate the coupling to PDAF in the model code. Now build the forward model program with
     28{{{
     29  cd testsuite/src
     30  make lorenz_96 PDAF_ARCH=linux_gfortran
     31}}}
     32in the directory `testsuite/src/` of the PDAF package. You have to ensure
     33that in the machine-specific make include file `linux_gfortran.h` `-DUSE_PDAF` is not defined
     34for CPP_DEFS (such that calls to PDAF are not active). The executable
     35is generated in `testsuite/bin/`.
     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.
     38
     39To run the forward model use
     40{{{
     41  cd ../bin
     42  ./lorenz_96 -total_steps 10000
     43}}}
     44This runs Lorenz-96 model for 10000 time steps and the trajectory is written into a file `state.nc`.
     45
     46=== 2. Generate observations and a covariance matrix ===
     47
     48To build the executables for the tool programs use
     49{{{
     50  cd ../src/lorenz96/tools
     51  make all PDAF_ARCH=linux_gfortran
     52}}}
     53
     54Now run
     55{{{
     56  ./generate_obs
     57}}}
     58and
     59{{{
     60  ./generate_covar
     61}}}
     62to generate a file holding observations (`obs.nc` in testsuite/bin/) and
     63a file holding the covariance matrix information (`covar.nc` in
     64testsuite/bin/), which is used to generate an initial ensemble for
     65the data assimilation experiments.
     66
     67
     68=== 3. Build and run the assimilation program ===
     69
     70Change in the `make.arch/linux_gfortran.h` the line
     71{{{
     72CPP_DEFS = #-DUSE_PDAF
     73}}}
     74back to
     75{{{
     76CPP_DEFS = -DUSE_PDAF
     77}}}
     78to activate the coupling to PDAF in the model code.
     79
     80Now compile the Lorenz96 model with activated
     81PDAF. First clean the directories for the main driver and the lorenz96
     82 model using
     83{{{
     84  cd ../../
     85  make cleandriver PDAF_ARCH=linux_gfortran
     86  make cleanlorenz_96 PDAF_ARCH=linux_gfortran
     87}}}
     88(This removes object files that were compiled without support for PDAF)
     89Then build the executable using
     90{{{
     91  make pdaf_lorenz_96 PDAF_ARCH=linux_gfortran
     92}}}
     93The program `pdaf_lorenz_96` is generated in testsuite/bin.
     94
     95
     96To run the assimilation program, do
     97{{{
     98  cd ../bin
     99  ../src/lorenz96/tools/runasml.sh
     100}}}
     101The script runsasml.sh runs 11 experiments with a fixed ensemble size, but
     102different covariance inflations (forgetting factors). The execution can
     103take about 2 minutes.
     104
     105=== 4. Plot output from the assimilation experiments ===
     106
     107To display the output of the assimilation experiments we provide several plotting scripts for Matlab and Octave. To use them do
     108{{{
     109cd ../src/lorenz96/plotting/
     110}}}
     111and see the file README there for a description of the available plotting scripts.
     112
     113For example,
     114  plot_example.m
     115plots the true and estimated mean RMS errors as a function of the
     116forgetting factor. For the usage of the other functions, use 'help'
     117in Matlab.
     118
     119
     120