9 |
michaesp |
1 |
1. Code retrieval
|
|
|
2 |
------------------
|
|
|
3 |
|
|
|
4 |
Download the latest Lagranto version from SVN repository <https://svn.iac.ethz.ch/websvn/pub/wsvn/>.
|
|
|
5 |
|
|
|
6 |
Then create a directory where you want Lagranto to be installed; place the whole source code in this
|
|
|
7 |
directory and set an environment variable {LAGRANTO} pointing to this directory.
|
|
|
8 |
|
|
|
9 |
> setenv LAGRANTO {PATH TO YOUR LAGRANTO INSTALLATION}
|
|
|
10 |
|
|
|
11 |
2. Compiling the Lagranto code
|
|
|
12 |
-------------------------------
|
|
|
13 |
|
44 |
michaesp |
14 |
First you will have to adapt some parameters in the installation script <install.csh>.
|
9 |
michaesp |
15 |
|
44 |
michaesp |
16 |
2.1 Set paths for development and for operational version of Lagranto (might be the same). For our system,
|
|
|
17 |
we have a environment variable {DYN_TOOLS} (e.g., /usr/local/) that provides the paths to several tools.
|
|
|
18 |
For your system, just provide the path to Lagranto (e.g., path_devel = /home/{user}/lagranto.ecmwf).
|
|
|
19 |
set path_devel = "${DYN_TOOLS}//lagranto.ecmwf/"
|
|
|
20 |
set path_sync = "${DYN_TOOLS}/lagranto/"
|
9 |
michaesp |
21 |
|
44 |
michaesp |
22 |
2.2 Set the Fortran compiler to your version (e.g., gfortran, pgf90, ifort,...)
|
|
|
23 |
setenv FORTRAN pgf90
|
|
|
24 |
|
|
|
25 |
2.3 Set netcdf format of the ECMWF files (typically cdo)
|
|
|
26 |
set ncdf = cdo
|
|
|
27 |
|
|
|
28 |
2.4 Set the paths to the netCDF library. At our system, this is done by means of modules, but certainly
|
|
|
29 |
at your site you will have to change this. You system administrator will be able to help you with that!
|
|
|
30 |
Just to give you an idea what <module load netcdf/4.3.2) does, here is the detailed list of commands
|
|
|
31 |
run by the call:
|
|
|
32 |
|
|
|
33 |
module-whatis set environment for netcdf 4.3.2 and netcdf-fortran 4.2 compiled with gfortran and hdf5 1.8.13
|
|
|
34 |
module load hdf5/1.8.13
|
|
|
35 |
setenv NETCDF /usr/local/netcdf-4.3.2-4.2-gfortran
|
|
|
36 |
prepend-path PATH /usr/local/netcdf-4.3.2-4.2-gfortran/bin
|
|
|
37 |
prepend-path INCLUDE /usr/local/netcdf-4.3.2-4.2-gfortran/include
|
|
|
38 |
prepend-path C_INCLUDE_PATH /usr/local/netcdf-4.3.2-4.2-gfortran/include
|
|
|
39 |
prepend-path CPLUS_INCLUDE_PATH /usr/local/netcdf-4.3.2-4.2-gfortran/include
|
|
|
40 |
prepend-path LIBRARY_PATH /usr/local/netcdf-4.3.2-4.2-gfortran/lib64
|
|
|
41 |
prepend-path LD_LIBRARY_PATH /usr/local/netcdf-4.3.2-4.2-gfortran/lib64
|
|
|
42 |
prepend-path MANPATH /usr/local/netcdf-4.3.2-4.2-gfortran/share/man
|
|
|
43 |
|
|
|
44 |
2.4 Possibly you will have to replace <nc-config> with <nf-config> in your setting. If the netCDF environment
|
|
|
45 |
is correctly set up, entering either <nc-config> or <nf-config> in the command shell sould give some result:
|
|
|
46 |
|
|
|
47 |
setenv NETCDF_LIB `nc-config --flibs`
|
|
|
48 |
setenv NETCDF_INC `nc-config --fflags`
|
|
|
49 |
|
|
|
50 |
2.5 If the previous steps have been done, you are ready to install Lagranto. I suggest to do it stepwise (as
|
|
|
51 |
listed below). If everything works fine, you can compile it in one single step by <install.csh all>.
|
|
|
52 |
|
9 |
michaesp |
53 |
> cd ${LAGRANTO}/
|
|
|
54 |
> ./install.csh clean
|
|
|
55 |
> ./install.csh lib
|
|
|
56 |
> ./install.csh create_startf
|
|
|
57 |
> ./install.csh caltra
|
|
|
58 |
> ./install.csh trace
|
|
|
59 |
> ./install.csh select
|
|
|
60 |
> ./install.csh density
|
|
|
61 |
> ./install.csh lidar
|
|
|
62 |
> ./install.csh goodies
|
|
|
63 |
> ./install.csh docu
|
|
|
64 |
> ./install.csh links
|
|
|
65 |
|
|
|
66 |
Add the end of the installation, it's best to add the following directory to your PATH variable. In <bash>
|
|
|
67 |
this should look like
|
|
|
68 |
|
|
|
69 |
> export PATH=${LAGRANTO}/bin/:$PATH
|
|
|
70 |
|
|
|
71 |
If the <LAGRANTO/bin> directory is in your PATH, then you will be able to run Lagranto from any directory.
|
|
|
72 |
Otherwise, you will always to give the full path to your Lagranto commands, e.g.
|
|
|
73 |
|
|
|
74 |
> ${LAGRANTO}/bin/caltra
|
|
|
75 |
|
44 |
michaesp |
76 |
3. Lagranto documentation
|
9 |
michaesp |
77 |
-------------------------
|
|
|
78 |
|
|
|
79 |
Lagranto comes with a detailed documentation; you can start it with one of the following calls:
|
|
|
80 |
|
|
|
81 |
> lagrantohelp
|
|
|
82 |
> lagrantohelp tutorial
|
|
|
83 |
> lagrantohelp reference
|
|
|
84 |
|
|
|
85 |
The most important program for you will be <caltra> which calculates the trajectories...
|
|
|
86 |
|
|
|
87 |
> lagrantohelp caltra
|
|
|
88 |
|
44 |
michaesp |
89 |
4. Test data set
|
9 |
michaesp |
90 |
-----------------
|
|
|
91 |
|
|
|
92 |
On our FTP server you find a sample data set which allows you to run Lagranto without bothering about the
|
|
|
93 |
Grib-netCDF conversion.
|
|
|
94 |
|
|
|
95 |
ftp://iacftp.ethz.ch/pub_read/sprenger/lagranto.ecmwf.test/
|
|
|
96 |
|
44 |
michaesp |
97 |
There are two versions of test data available, depending on the netCDF version you would like to use.
|
9 |
michaesp |
98 |
|
44 |
michaesp |
99 |
- ive: the netCDF format used at ETH, converted with Fortran program <fgrb2cdf_api>
|
|
|
100 |
- cdo: CF-conform netCDF format; the GRIB files and the conversion script are also included in the folder
|
|
|
101 |
|
|
|
102 |
If you don't know which version to use, I suggest to choose 'cdo' because here the conversion from GRIB to
|
|
|
103 |
netCDF format can be done by means of the CDO tools (as done in <convert.sh>).
|
|
|
104 |
|
|
|
105 |
5. Minimal test run
|
9 |
michaesp |
106 |
--------------------
|
|
|
107 |
|
|
|
108 |
a) Define a starting position in a file <startf>; the format is <longitude latitude pressure>.
|
|
|
109 |
|
|
|
110 |
> more startf
|
|
|
111 |
8.0 46.0 500.
|
|
|
112 |
-10.0 30.0 850.
|
|
|
113 |
|
|
|
114 |
Each line corresponds to a single starting position. Note that longitudes must be within -180 ... +180 deg.
|
|
|
115 |
|
|
|
116 |
|
|
|
117 |
b) Start the trajectory
|
|
|
118 |
|
|
|
119 |
It is a forward trajectory starting at 00 UTC 1 Jan 2012. The time span is 18 UTC. Starting positions are
|
|
|
120 |
taken from <startf>, the output is written to <trajectory>. For details about the optional flag <-j> and
|
|
|
121 |
<-notimecheck>, please consult the Lagranto help <lagrantohelp caltra>.
|
|
|
122 |
|
|
|
123 |
> caltra 20120101_00 20120101_18 startf trajectory -j
|
|
|
124 |
> more trajectory
|
|
|
125 |
Reference date 20120101_0000 / Time range 1080 min
|
|
|
126 |
|
|
|
127 |
time lon lat p
|
|
|
128 |
-----------------------------
|
|
|
129 |
|
|
|
130 |
.00 8.00 46.00 500
|
|
|
131 |
6.00 10.02 44.07 480
|
|
|
132 |
12.00 11.64 42.13 504
|
|
|
133 |
18.00 12.66 40.17 514
|
|
|
134 |
|
|
|
135 |
.00 -10.00 30.00 850
|
|
|
136 |
6.00 -10.42 30.14 866
|
|
|
137 |
12.00 -10.40 30.25 885
|
|
|
138 |
18.00 -10.46 29.93 906
|
|
|
139 |
|
|
|
140 |
================================.
|