Difference between revisions of "OpenIFS"

From mn/geo/geoit
Jump to: navigation, search
Line 63: Line 63:
  
 
*getEIdata.py 
 
*getEIdata.py 
 +
 +
 +
 +
This script retrieves the  [http://www.ecmwf.int/en/research/climate-reanalysis/era-interim ERA-Interim ]data required to run openIFS from ECMWF Meteorological archive ([http://old.ecmwf.int/publications/manuals/mars/ MARS]). You need to make sure ecmwfapi is properly set-up for your user account. See [https://wiki.uio.no/mn/geo/geoit/index.php/Retrieve_large_data_sets_from_MARS_with_ecmwfapi here] how to get ECMWF API keys.  If you have any problem contact drift@geo.uio.no
 +
 +
To use getEIdata.py, you need to specify the retrieval dates (at least the starting date). For instance:
 +
<pre>getEIdata.py --start_date=20030103</pre>
 +
 +
 +
the above command retrieves ERA-Interim data for the 3rd January 2003 for time=00 and write them in $WORKDIR/20030103/00
 +
 +
*EI_shml.grb: contains spherical harmonics&nbsp; fields on model levels
 +
*EI_ggml.grb: contains model levels fields on a reduced gaussian grid
 +
*EI_iniggsfc.grb: contains surface data on a reduced gaussian grid
 +
 +
 +
 +
The table below gives a short description of the parameters contained in these 3 files:
 +
 +
{| style="width: 500px" border="1" cellpadding="1" cellspacing="1"
 +
|-
 +
| Shortname<br/>
 +
| Description<br/>
 +
| Retrieved/Computed/Climate<br/>
 +
| &nbsp;File<br/>
 +
|-
 +
| lnsp<br/>
 +
| <br/>
 +
| <br/>
 +
| EI_shml.grb<br/>
 +
|-
 +
| t<br/>
 +
| <br/>
 +
| <br/>
 +
| EI_shml.grb<br/>
 +
|-
 +
| vo<br/>
 +
| <br/>
 +
| <br/>
 +
| EI_shml.grb<br/>
 +
|-
 +
| d<br/>
 +
| <br/>
 +
| <br/>
 +
| EI_shml.grb<br/>
 +
|-
 +
| o3<br/>
 +
| <br/>
 +
| <br/>
 +
| EI_ggml.grb<br/>
 +
|-
 +
| clwc<br/>
 +
| <br/>
 +
| <br/>
 +
| EI_ggml.grb<br/>
 +
|-
 +
| ciwc<br/>
 +
| <br/>
 +
| <br/>
 +
| EI_ggml.grb<br/>
 +
|-
 +
| cc<br/>
 +
| <br/>
 +
| <br/>
 +
| EI_ggml.grb<br/>
 +
|-
 +
| q<br/>
 +
| <br/>
 +
| <br/>
 +
| EI_ggml.grb<br/>
 +
|-
 +
| crwc<br/>
 +
| <br/>
 +
| <br/>
 +
| EI_ggml.grb<br/>
 +
|-
 +
| cswc<br/>
 +
| <br/>
 +
| <br/>
 +
| EI_ggml.grb<br/>
 +
|-
 +
| swvl1<br/>
 +
| <br/>
 +
| <br/>
 +
| EI_iniggsfc.grb<br/>
 +
|-
 +
| swvl2<br/>
 +
| <br/>
 +
| <br/>
 +
| EI_iniggsfc.grb<br/>
 +
|-
 +
| swvl3<br/>
 +
| <br/>
 +
| <br/>
 +
| EI_iniggsfc.grb<br/>
 +
|-
 +
| swvl4<br/>
 +
| <br/>
 +
| <br/>
 +
| EI_iniggsfc.grb<br/>
 +
|-
 +
| stl1<br/>
 +
| <br/>
 +
| <br/>
 +
| EI_iniggsfc.grb<br/>
 +
|-
 +
| stl2<br/>
 +
| <br/>
 +
| <br/>
 +
| EI_iniggsfc.grb<br/>
 +
|-
 +
| stl3<br/>
 +
| <br/>
 +
| <br/>
 +
| EI_iniggsfc.grb<br/>
 +
|-
 +
| stl4<br/>
 +
| <br/>
 +
| <br/>
 +
| EI_iniggsfc.grb<br/>
 +
|-
 +
| skt<br/>
 +
| <br/>
 +
| <br/>
 +
| EI_iniggsfc.grb<br/>
 +
|-
 +
| tsn<br/>
 +
| <br/>
 +
| <br/>
 +
| EI_iniggsfc.grb<br/>
 +
|-
 +
| sd<br/>
 +
| <br/>
 +
| <br/>
 +
| EI_iniggsfc.grb<br/>
 +
|-
 +
| rsn<br/>
 +
| <br/>
 +
| <br/>
 +
| EI_iniggsfc.grb<br/>
 +
|-
 +
| asn<br/>
 +
| <br/>
 +
| <br/>
 +
| EI_iniggsfc.grb<br/>
 +
|-
 +
| src<br/>
 +
| <br/>
 +
| <br/>
 +
| EI_iniggsfc.grb<br/>
 +
|-
 +
| ci<br/>
 +
| <br/>
 +
| <br/>
 +
| EI_iniggsfc.grb<br/>
 +
|-
 +
| sst<br/>
 +
| <br/>
 +
| <br/>
 +
| EI_iniggsfc.grb<br/>
 +
|-
 +
| istl1<br/>
 +
| <br/>
 +
| <br/>
 +
| EI_iniggsfc.grb<br/>
 +
|-
 +
| istl2<br/>
 +
| <br/>
 +
| <br/>
 +
| EI_iniggsfc.grb<br/>
 +
|-
 +
| istl3<br/>
 +
| <br/>
 +
| <br/>
 +
| EI_iniggsfc.grb<br/>
 +
|-
 +
| istl4<br/>
 +
| <br/>
 +
| <br/>
 +
| EI_iniggsfc.grb<br/>
 +
|-
 +
| anor<br/>
 +
| <br/>
 +
| <br/>
 +
| EI_iniggsfc.grb<br/>
 +
|-
 +
| isor<br/>
 +
| <br/>
 +
| <br/>
 +
| EI_iniggsfc.grb<br/>
 +
|-
 +
| slor<br/>
 +
| <br/>
 +
| <br/>
 +
| EI_iniggsfc.grb<br/>
 +
|-
 +
| sdor<br/>
 +
| <br/>
 +
| <br/>
 +
| EI_iniggsfc.grb<br/>
 +
|-
 +
| sr<br/>
 +
| <br/>
 +
| <br/>
 +
| EI_iniggsfc.grb<br/>
 +
|-
 +
| lsrh<br/>
 +
| <br/>
 +
| <br/>
 +
| EI_iniggsfc.grb<br/>
 +
|-
 +
| cvh<br/>
 +
| <br/>
 +
| <br/>
 +
| EI_iniggsfc.grb<br/>
 +
|-
 +
| cvl<br/>
 +
| <br/>
 +
| <br/>
 +
| EI_iniggsfc.grb<br/>
 +
|-
 +
| tvh<br/>
 +
| <br/>
 +
| <br/>
 +
| EI_iniggsfc.grb<br/>
 +
|-
 +
| al<br/>
 +
| <br/>
 +
| <br/>
 +
| EI_iniggsfc.grb<br/>
 +
|-
 +
| aluvp<br/>
 +
| <br/>
 +
| <br/>
 +
| EI_iniggsfc.grb<br/>
 +
|-
 +
| aluvd<br/>
 +
| <br/>
 +
| <br/>
 +
| EI_iniggsfc.grb<br/>
 +
|-
 +
| alnip<br/>
 +
| <br/>
 +
| <br/>
 +
| EI_iniggsfc.grb<br/>
 +
|-
 +
| alnid<br/>
 +
| <br/>
 +
| <br/>
 +
| EI_iniggsfc.grb<br/>
 +
|-
 +
| lai_lv<br/>
 +
| <br/>
 +
| <br/>
 +
| EI_iniggsfc.grb<br/>
 +
|-
 +
| lai_hv<br/>
 +
| <br/>
 +
| <br/>
 +
| EI_iniggsfc.grb<br/>
 +
|-
 +
| sdfor<br/>
 +
| <br/>
 +
| <br/>
 +
| EI_iniggsfc.grb<br/>
 +
|-
 +
| lsm<br/>
 +
| <br/>
 +
| <br/>
 +
| EI_iniggsfc.grb<br/>
 +
|-
 +
| z<br/>
 +
| <br/>
 +
| <br/>
 +
| EI_iniggsfc.grb<br/>
 +
|-
 +
| slt<br/>
 +
| <br/>
 +
| <br/>
 +
| EI_iniggsfc.grb<br/>
 +
|}
 +
 +
Check[http://old.ecmwf.int/publications/manuals/d/gribapi/param/filter=grib1/order=paramId/order_type=asc/p=1/table=128/ ECMWF parameter database] to get a more extensive description of all available parameters.
 +
 +
 +
 +
<u>TIPS</u>: to get the usage of these python scripts, use -h or --help. For instance:
 +
 +
&nbsp;getEIdata.py -h<br/>Usage: getEIdata.py --start_date=YYYYMMDD [--end_date=YYYYMMDD] [--times=tt1/tt2/tt3]<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [--grid_type=gtype] [--levels=nlevels]<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [--sfc=sfc.grb] [--ggml=ggml.grb] [--shml=shml.grb]<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [--inputdir=input_directory] [--outputdir=output_directory]<br/><br/>Options:<br/>&nbsp; -h, --help&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; show this help message and exit<br/>&nbsp; -s start_date, --start_date=start_date<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; start date YYYYMMDD<br/>&nbsp; -e end_date, --end_date=end_date<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; end_date YYYYMMDD<br/>&nbsp; -t times, --times=times<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; times such as 00/12<br/>&nbsp; -l levels, --levels=levels<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; number of levels i.e. 60<br/>&nbsp; --sfc=sfc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; output filename where surface data will be stored<br/>&nbsp; --ggml=ggml&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; output filename where upper data on reduced gaussion<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; grid will be stored<br/>&nbsp; --shml=shml&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; output filename where shperical harmonic upper data<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; will be stored<br/>&nbsp; --inputdir=inputdir&nbsp;&nbsp; root directory for reading input files (valid when<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; retrieve=no)<br/>&nbsp; --outputdir=outputdir<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; root directory for storing output files<br/>&nbsp; --grid_type=grid_type<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; grid type default is l_2<br/>
 +
 +
<span style="color:#ff0000">'''For each of these python scripts, some arguments are optionals and indicated in squared brackets such as end_date.'''</span>
 +
 +
<span style="color:#ff0000"</span>
  
 
==== Step-2: interpolate input fields to the chosen horizontal and vertical resolution ====
 
==== Step-2: interpolate input fields to the chosen horizontal and vertical resolution ====
  
 
*prepareInterpolationEIdata.py
 
*prepareInterpolationEIdata.py
*runInterpolation.py&nbsp;  
+
*runInterpolation.py&nbsp;
 
*postInterpolationEIdata.py&nbsp;&nbsp;
 
*postInterpolationEIdata.py&nbsp;&nbsp;
  
Line 76: Line 369:
  
  
 
<u>TIPS</u>: to get the usage of these python scripts, use -h or --help. For instance:
 
 
&nbsp;getEIdata.py -h<br/>Usage: getEIdata.py --start_date=YYYYMMDD [--end_date=YYYYMMDD] [--times=tt1/tt2/tt3]<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [--grid_type=gtype] [--levels=nlevels]<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [--sfc=sfc.grb] [--ggml=ggml.grb] [--shml=shml.grb]<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [--inputdir=input_directory] [--outputdir=output_directory]<br/><br/>Options:<br/>&nbsp; -h, --help&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; show this help message and exit<br/>&nbsp; -s start_date, --start_date=start_date<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; start date YYYYMMDD<br/>&nbsp; -e end_date, --end_date=end_date<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; end_date YYYYMMDD<br/>&nbsp; -t times, --times=times<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; times such as 00/12<br/>&nbsp; -l levels, --levels=levels<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; number of levels i.e. 60<br/>&nbsp; --sfc=sfc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; output filename where surface data will be stored<br/>&nbsp; --ggml=ggml&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; output filename where upper data on reduced gaussion<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; grid will be stored<br/>&nbsp; --shml=shml&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; output filename where shperical harmonic upper data<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; will be stored<br/>&nbsp; --inputdir=inputdir&nbsp;&nbsp; root directory for reading input files (valid when<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; retrieve=no)<br/>&nbsp; --outputdir=outputdir<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; root directory for storing output files<br/>&nbsp; --grid_type=grid_type<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; grid type default is l_2<br/><br/>
 
 
<span style="color:#ff0000">'''For each of these python scripts, some arguments are optionals and indicated in squared brackets such as end_date.'''</span>
 
 
<span style="color:#ff0000"</span>
 
  
  

Revision as of 10:38, 2 December 2014

OpenIFS - Open Integrated Forecasting System

OpenIFS provides academic and research institutions with an easy-to-use version of the ECMWF IFS (Integrated Forecasting System). OpenIFS provides the forecast capability of IFS (no data assimilation), supporting software and documentation. OpenIFS has a support team at ECMWF for technical assistance but limited resources for detailed scientific assistance.

About OpenIFS provides more information about the model.


First check openifs availability on your platform. Currently openIFS is available on UIO HPC (abel.uio.no) only.

module avail openifs

-------------------------------------------------------------------------------- /cluster/etc/modulefiles ---------------------------------------------------------------------------------
openifs/38r1v04(default)


If nothing is returned, it is likely openifs is not available. If you think it should, then contact us (drift@uio.no).

To load a given  openifs version:

module load openifs/38r1v04

We suggest you specify the version you wish to use to avoid any problems if we install a new default version (as it is important to stick to the very same version for your  simulations).


When loading openifs the following environment variables are defined:

  • OIFS_CYCLE: ECMWF cycle such as 38r1 (version 38, revision 1)
  • OIFS_HOME: directory where openIFS has been installed; this can be used to check openIFS sources
  • OIFS_DATA: contains openIFS static input data. Even if you use your own compiled version of openIFS, it is NOT necessary to download these files again.
  • OIFS_EXAMPLES: directory where all openIFS examples are stored. If you wish to run one of these examples see our dedicated section on running tutorials.
  • OIFS_COMP: compilers used to create openIFS executables. We currently use intel compilers.
  • OIFS_BUILD: type of build. It triggers a set of compiler options when building openIFS. Currently set to "opt"
  • OIFS_GRIB_API_DIR: GRIB-API version used by openIFS to encode/decode GRIB files
  • MARS_LSM_PATH: land sea mask used
  • EMOS_VERSION: EMOS version (compiled with GRIB-API support). EMOS is used for interpolation routines.
  • EMOS_HOME: directory where EMOS has been installed.
  • BUFR_TABLES: bufrtables used for decoding/encoding BUFR (not used in the forecast model)
  • CREX_TABLES: crex tables used for encoding/decoding CREX data.


For building openIFS, we use intel compilers:

module list
Currently Loaded Modulefiles:
  1) use.own                3) openmpi.intel/1.6.1    5) hdf5/1.8.9_intel       7) grib_api/1.12.3        9) udunits/2.2.16        11) intelmpi.intel/4.1.3
  2) intel/2011.10          4) python2/2.7.3          6) netcdf.intel/4.2.1.1   8) perlmodules/5.10_2    10) intel/2013.sp1.1      12) openifs/38r1v04


Running openIFS:

The main openIFS program (forecast model) is called master.exe but as for most models, several steps have to be done before the first call to master.exe!

The main steps are:

- get meteorological input fields (see examples on how to get ECMWF reanalysis data with ecmwfapi).

- interpolate input fields to the chosen horizontal and vertical resolution

- run forecast model to generate output fields


To perform these steps, some python scripts have been developed:

Step-1: get meteorological input fields

  • getEIdata.py 


This script retrieves the  ERA-Interim data required to run openIFS from ECMWF Meteorological archive (MARS). You need to make sure ecmwfapi is properly set-up for your user account. See here how to get ECMWF API keys.  If you have any problem contact drift@geo.uio.no

To use getEIdata.py, you need to specify the retrieval dates (at least the starting date). For instance:

getEIdata.py --start_date=20030103


the above command retrieves ERA-Interim data for the 3rd January 2003 for time=00 and write them in $WORKDIR/20030103/00

  • EI_shml.grb: contains spherical harmonics  fields on model levels
  • EI_ggml.grb: contains model levels fields on a reduced gaussian grid
  • EI_iniggsfc.grb: contains surface data on a reduced gaussian grid


The table below gives a short description of the parameters contained in these 3 files:

Shortname
Description
Retrieved/Computed/Climate
 File
lnsp


EI_shml.grb
t


EI_shml.grb
vo


EI_shml.grb
d


EI_shml.grb
o3


EI_ggml.grb
clwc


EI_ggml.grb
ciwc


EI_ggml.grb
cc


EI_ggml.grb
q


EI_ggml.grb
crwc


EI_ggml.grb
cswc


EI_ggml.grb
swvl1


EI_iniggsfc.grb
swvl2


EI_iniggsfc.grb
swvl3


EI_iniggsfc.grb
swvl4


EI_iniggsfc.grb
stl1


EI_iniggsfc.grb
stl2


EI_iniggsfc.grb
stl3


EI_iniggsfc.grb
stl4


EI_iniggsfc.grb
skt


EI_iniggsfc.grb
tsn


EI_iniggsfc.grb
sd


EI_iniggsfc.grb
rsn


EI_iniggsfc.grb
asn


EI_iniggsfc.grb
src


EI_iniggsfc.grb
ci


EI_iniggsfc.grb
sst


EI_iniggsfc.grb
istl1


EI_iniggsfc.grb
istl2


EI_iniggsfc.grb
istl3


EI_iniggsfc.grb
istl4


EI_iniggsfc.grb
anor


EI_iniggsfc.grb
isor


EI_iniggsfc.grb
slor


EI_iniggsfc.grb
sdor


EI_iniggsfc.grb
sr


EI_iniggsfc.grb
lsrh


EI_iniggsfc.grb
cvh


EI_iniggsfc.grb
cvl


EI_iniggsfc.grb
tvh


EI_iniggsfc.grb
al


EI_iniggsfc.grb
aluvp


EI_iniggsfc.grb
aluvd


EI_iniggsfc.grb
alnip


EI_iniggsfc.grb
alnid


EI_iniggsfc.grb
lai_lv


EI_iniggsfc.grb
lai_hv


EI_iniggsfc.grb
sdfor


EI_iniggsfc.grb
lsm


EI_iniggsfc.grb
z


EI_iniggsfc.grb
slt


EI_iniggsfc.grb

CheckECMWF parameter database to get a more extensive description of all available parameters.


TIPS: to get the usage of these python scripts, use -h or --help. For instance:

 getEIdata.py -h
Usage: getEIdata.py --start_date=YYYYMMDD [--end_date=YYYYMMDD] [--times=tt1/tt2/tt3]
                                                  [--grid_type=gtype] [--levels=nlevels]
                                                  [--sfc=sfc.grb] [--ggml=ggml.grb] [--shml=shml.grb]
                                                  [--inputdir=input_directory] [--outputdir=output_directory]

Options:
  -h, --help            show this help message and exit
  -s start_date, --start_date=start_date
                        start date YYYYMMDD
  -e end_date, --end_date=end_date
                        end_date YYYYMMDD
  -t times, --times=times
                        times such as 00/12
  -l levels, --levels=levels
                        number of levels i.e. 60
  --sfc=sfc             output filename where surface data will be stored
  --ggml=ggml           output filename where upper data on reduced gaussion
                        grid will be stored
  --shml=shml           output filename where shperical harmonic upper data
                        will be stored
  --inputdir=inputdir   root directory for reading input files (valid when
                        retrieve=no)
  --outputdir=outputdir
                        root directory for storing output files
  --grid_type=grid_type
                        grid type default is l_2

For each of these python scripts, some arguments are optionals and indicated in squared brackets such as end_date.

<span style="color:#ff0000"</span>

Step-2: interpolate input fields to the chosen horizontal and vertical resolution

  • prepareInterpolationEIdata.py
  • runInterpolation.py 
  • postInterpolationEIdata.py  

Step-3: run oenIFS forecast model

  • prepareOpenifsRun.py
  • runOpenIFS.py 



openIFS examples:

There are 3 examples currently available:

cd $OIFS_EXAMPLES

ls

ei     osloctm         t21test


T21 simple test:

Choose a directory of your choice and copy this simple test:

mkdir -p $HOME/openifs/examples

cd $HOME/openifs/examples

cp -R $OIFS_EXAMPLES/t21test .

cd t21test

ls

fort.4  ICMGGepc8  ICMGGepc8INIT  ICMGGepc8INIUA  ICMSHepc8  ICMSHepc8INIT  ifsdata  job  namelists  README  ref_021_0144

./job_uio


This is a very short and simple example and it can be run interactively (./job_uio).

All the input fields are already available and by executing job_uio, you run  ECMWF openIFS forecast model. 


Output fields generated by openIFS are:

ICMSHepc8+000000

ICMGGepc8+000000


SH means Spherical harmonics and GG Gaussian grid. These files are in  GRIB-2 format.

You may convert these GRIB files to netCDF using cdo; for instance on sverdrup:

module load cdo/1.6.5.1

cdo -t ecmwf -f nc copy ICMSHepc8+000000 ICMSHepc8+000000.nc


For more information, see ECMWF How to convert OpenIFS outputs to netCDF.


T319 with ERA-Interim input fields:

T42 with ERA-Interim input fields for OsloCTM model: