}}}
[[PageOutline(1-2,Table of contents,pullout)]]
----
# Important tools used in the IPSL climate modeling framework #
The following tools are used for all steps from setup to post processing. They must be available on the [wiki:Doc/ComputingCenters computing machine] (except [#Forge forge]).
The [wiki:Doc/ComputingCenters/SharedFiles common] account configuration files allow you to access the proper version of the tools (e.g. {{{module load}}}).
## Forge ##
The `forge.ipsl.fr` machine is a forge [https://trac.edgewall.org/ trac]
* Welcome page of the [wiki:Doc User guide] as TracWiki and its attached documents
* Source code archives with the [http://subversion.apache.org/ svn] server
* Problem tracker (tickets)
## Remote and secure connections ##
* {{{ssh}}} and associated commands ({{{scp}}}, {{{rsync}}}, protocol {{{svn+ssh}}})
## Shell ##
* bash : recommended for interactive mode --- You can read 2016 IPSL documentation on Bash [attachment:20160324_bash.pdf here]
* ksh : used in batch scripts
* awk gnu ({{{[g]awk}}})
* make gnu ({{{[g]make}}})
## Version control ##
* Official website: [http://subversion.apache.org/ subversion]
* Basic command: [wiki:Doc/Tools/External/SvnBasic svn]
* Online subversion manual: http://svnbook.red-bean.com/index.en.html
You can read some 2016 IPSL slides on svn [attachment:20160324_svn.pdf here]
## C++ compilers ##
## Fortran compilers ##
To learn how to use Fortran, IDRIS training: http://www.idris.fr/formations/fortran/
Some Fortran compilers :
* [https://software.intel.com/en-us/fortran-compilers Intel]
* [https://gcc.gnu.org/fortran GNU fortran]
* [http://www.g95.org g95]
* [https://www.nag.com/nag-compiler NAG]
* [https://www.pgroup.com/index.htm Portland]
## FORTRAN libraries ##
* [http://www.unidata.ucar.edu/software/netcdf/ NetCDF4 parallel]
* [https://support.hdfgroup.org/HDF5/doc/fortran/index.html HDF5 parallel]
* MPI/OpenMP
## Generating executables ##
Default for [wiki:Doc/Compile compiling] the models: [https://www.metoffice.gov.uk/research/weather/weather-science-it/fcm FCM].
## Batch manager ##
* slurm and slurm {{{ccc_*}}}
* torque-maui
* !LoadLeveler
## Mail program ##
* mail[x]
## NetCDF tools ##
* [http://nco.sourceforge.net/ nco]
* [https://code.zmaw.de/projects/cdo cdo]
You can read 2016 IPSL documentation on nco / cdo / netcdf [attachment:20160324_cdo_nco.pdf here]
# Tools for analyze and visualization of NetCDF files #
* [https://ferretop.pmel.noaa.gov/Ferret/ Ferret]
* [http://www.ncl.ucar.edu NCL]
* [http://meteora.ucsd.edu/~pierce/ncview_home_page.html ncview]
* [https://www.harrisgeospatial.com/docs/using_idl_home.html IDL]
* [http://forge.ipsl.fr/saxo/ SAXO]
You can read 2016 IPSL documentation on ferret [attachment:20160324_ferret.pdf here]
# A few tips for further reading #
## Unix ##
Google "Unix Tutorial" is a good starting point.
* Unix introduction -- You can read 2016 IPSL documentation on Unix [attachment:20160324_unix.pdf here]
* Linux Documentation: http://www.tldp.org/guides.html
* Advanced Bash-Scripting guide. Mendel Cooper : http://tldp.org/LDP/abs/html/
* Bash guide for beginners.Machtelt Garrels http://tille.garrels.be/training/bash/
* Portable shell programming : http://www.gnu.org/software/autoconf/manual/autoconf.html#Portable-Shell
## Text editors ##
### Emacs ###
* Official website: http://www.gnu.org/software/emacs/ -- You can find a list of emacs commands [attachment:20160324_emacs_commands.pdf here]
### vi and vim ###
* vim documentation : http://www.vim.org/docs.php -- You can read 2016 IPSL documentation on vi / vim [attachment:20160324_vi.pdf here]
## Programming and scripting languages ##
### Python ###
* Python and CDAT tips: http://www.johnny-lin.com/cdat_tips/
* Python and memory management:
* problem http://www.evanjones.ca/python-memory.html
* mailing list archive: http://mail.python.org/pipermail/python-list/
You can read 2016 IPSL documentation on Python [attachment:20160324_python.pdf here]
# !BootCamp IPSL presentations - documentations - hands on sessions #
{24 of march 2016}
* Unix [attachment:20160324_unix.pdf]
* vi [attachment:20160324_vi.pdf]
* emacs [attachment:20160324_emacs_commands.pdf]
* shell bash [attachment:20160324_bash.pdf] TP [attachment:test.bash]
* netcdf [attachment:20160324_netcdf.pdf]
* cdo - nco [attachment:20160324_cdo_nco.pdf]
* Ferret [attachment:20160324_ferret.pdf]
* python [attachment:20160324_python.pdf] TP [attachment:fibonacci.py] [attachment:plotting_topo.py] [attachment:reading_nc.py]
* svn [attachment:20160324_svn.pdf]
All the !HandsOn (TP and netcdf files) were available on IDRIS (Ergon) and TGCC (Curie) : $(ccc_home --cccwork -u igcmg)/TRAINING/MODIPSL_HandsOn_20181127/ -- '''there were not update to new computers centers'''.