- as root
$ su
- install subversion, version control packages
# apt-get install subversion
- install GIT, different paradigm version control
# apt-get install git
- get python and its necessary applications
# apt-get install python python-scipy python-numpy cython cython-dbg
- get netcdf libraries tools and applications (cdo and nco are also installed maybe not required...)
# apt-get install netcdf-bin netcdf-dbg libnetcdf-dev netcdf-doc libnetcdff-dbg libnetcdff-dev libnetcdff-doc ncview cdo nco
- get hdf5
# apt-get install libhdf5-dev
- install matplotlib and basemap in order to plot and drow maps
# apt-get install python-matplotlib python-matplotlib-data python-matplotlib-doc python-mpltoolkits.basemap python-mpltoolkits.basemap-data
- install system tools (Scripts use LATEX interface for titles and labels)
# apt-get install dvipng
- install netcdf4, python API interface to netCDF files
- Some new linux distributions (at least Debian >8) provide the netcdf4 API in the package systems:
# apt-get install python-netcdf4
- Otherwise, it can be manually done. Be careful with interferences with anaconda (some issues on mixture of netcdf libraries have been detected). Make sure, that if you use anaconda, that the netcdf libraries installed are with netcdf4 capabilities.
use_ncconfig=False
netCDF4_dir = /usr/local
HDF5_dir = /usr/local
HDF5_libdir = /usr/lib/x86_64-linux-gnu/hdf5/serial
HDF5_INCDIR = /usr/include/hdf5/serial
# python setup.py build >& run_pysetup.log
# python setup.py install >& run_pyinstall.log
- Getting the scripts, no need to be root:
# exit
$ cd $HOME
$ svn co http://svn.lmd.jussieu.fr/LMDZ_WRF/trunk/tools PyNCplot
- Now all the scripts are held in ${HOME}/PyNCplot. It might be desirable to set an environment variable to make life easier:
$ export pyHOME=${HOME}/PyNCplot
- Finally one need to compile the Fortran modules using the same python to run the scripts. This is done using a standard `Makefile' and the tool f2py to link Fortran compiled codes to python. There are different versions for different LMD/IPSL and French HPC machines. For a standard linux 64-bits machine (debain 7) there is one example as `Makefile.foudre'. Follow the instructions there in after linking the appropriated file:
$ ln -s Makefile.[machine].[compiler] ./Makefile
- In order to create a python 'library' from the fortran codes, one need to follow these steps (example for machine called `foudre')
- Preparing the fortran-python bridge of the `diagnostics' related module
$ f2py -m module_ForDiag -h module_ForDiag.pyf module_generic.F90 module_ForDiagnosticsVars.F90 module_ForDiagnostics.F90 >& run_f2py_ForDiag_wrapper.log
- Creation of the binary objects of the Fortran codes
$ make
- Creation of the fortran-python `diagnostics' related module
$ f2py -m module_ForDiag -c --f90exec=/usr/bin/gfortran-4.7 module_ForDiag.pyf module_generic.F90 module_ForDiagnosticsVars.F90 module_ForDiagnostics.F90 >& run_f2py_ForDiag_compile.log
- Preparing the fortran-python bridge of the `interpolation' related module
$ f2py -m module_ForInt -h module_ForInt.pyf module_generic.F90 module_ForInterpolate.F90 >& run_f2py_ForInt_wrapper.log
- Creation of the fortran-python `diagnostics' related module
$ f2py -m module_ForInt -c --f90exec=/usr/bin/gfortran-4.7 module_ForInt.pyf module_generic.F90 module_ForInterpolate.F90 >& run_f2py_ForInt_compile.log
- At the end one should have:
module_ForDiag.so
module_ForInt.so