Index: /trunk/docs/docs_dev/Makefile
===================================================================
--- /trunk/docs/docs_dev/Makefile	(revision 2)
+++ /trunk/docs/docs_dev/Makefile	(revision 2)
@@ -0,0 +1,185 @@
+#+
+#
+# .. _Makefile:
+#
+# ========
+# Makefile
+# ========
+#
+# DESCRIPTION
+# ===========
+#
+# Makefile for Sphinx documentation
+#
+# SEE ALSO
+# ========
+#
+# :ref:`builddoc`
+#
+# :ref:`makefile_non_sphinx`
+#
+# TODO
+# ====
+#
+# moins bourrin dans l'usage de makefile_non_sphinx et la génération du
+# logo
+#
+#
+# EVOLUTIONS
+# ==========
+#
+# $Id: Makefile 30 2012-03-13 10:53:33Z pinsard $
+#
+# $URL: svn+ssh://pinsard@forge.ipsl.jussieu.fr/ipsl/forge/projets/fptools/svn/trunk/docs/docs_dev/Makefile $
+#
+# - fplod 20120424
+#
+#   * creation
+#
+#-
+
+#
+# You can set these variables from the command line.
+SPHINXOPTS    =
+SPHINXBUILD   = sphinx-build
+PAPER         =
+BUILDDIR      = ../../doc/
+
+# Internal variables.
+PAPEROPT_a4     = -D latex_paper_size=a4
+PAPEROPT_letter = -D latex_paper_size=letter
+ALLSPHINXOPTS   = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source
+
+.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest
+
+help:
+	@echo "Please use \`make <target>' where <target> is one of"
+	@echo "Please use \`make <target>' where <target> is one of"
+	@echo "  html       to make standalone HTML files"
+	@echo "  dirhtml    to make HTML files named index.html in directories"
+	@echo "  singlehtml to make a single large HTML file"
+	@echo "  pickle     to make pickle files"
+	@echo "  json       to make JSON files"
+	@echo "  htmlhelp   to make HTML files and a HTML help project"
+	@echo "  qthelp     to make HTML files and a qthelp project"
+	@echo "  devhelp    to make HTML files and a Devhelp project"
+	@echo "  epub       to make an epub"
+	@echo "  latex      to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
+	@echo "  latexpdf   to make LaTeX files and run them through pdflatex"
+	@echo "  text       to make text files"
+	@echo "  man        to make manual pages"
+	@echo "  changes    to make an overview of all changed/added/deprecated items"
+	@echo "  linkcheck  to check all external links for integrity"
+	@echo "  doctest    to run all doctests embedded in the documentation (if enabled)"
+
+clean:
+	@make -f makefile_non_sphinx clean
+	-rm -rf $(BUILDDIR)/*
+
+html:
+	@make -f makefile_non_sphinx all
+	$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
+	@echo
+	@echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
+
+dirhtml:
+	@make -f makefile_non_sphinx all
+	$(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
+	@echo
+	@echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
+
+singlehtml:
+	@make -f makefile_non_sphinx all
+	$(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
+	@echo
+	@echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
+
+pickle:
+	@make -f makefile_non_sphinx all
+	$(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
+	@echo
+	@echo "Build finished; now you can process the pickle files."
+
+json:
+	@make -f makefile_non_sphinx all
+	$(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
+	@echo
+	@echo "Build finished; now you can process the JSON files."
+
+htmlhelp:
+	@make -f makefile_non_sphinx all
+	$(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
+	@echo
+	@echo "Build finished; now you can run HTML Help Workshop with the" \
+	      ".hhp project file in $(BUILDDIR)/htmlhelp."
+
+qthelp:
+	@make -f makefile_non_sphinx all
+	$(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
+	@echo
+	@echo "Build finished; now you can run "qcollectiongenerator" with the" \
+	      ".qhcp project file in $(BUILDDIR)/qthelp, like this:"
+	@echo "# qcollectiongenerator $(BUILDDIR)/qthelp/VARAMMA.qhcp"
+	@echo "To view the help file:"
+	@echo "# assistant -collectionFile $(BUILDDIR)/qthelp/VARAMMA.qhc"
+devhelp:
+	@make -f makefile_non_sphinx all
+	$(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
+	@echo
+	@echo "Build finished."
+	@echo "To view the help file:"
+	@echo "# mkdir -p $$HOME/.local/share/devhelp/TROPFLUX"
+	@echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/TROPFLUX"
+	@echo "# devhelp"
+
+epub:
+	@make -f makefile_non_sphinx all
+	$(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
+	@echo
+	@echo "Build finished. The epub file is in $(BUILDDIR)/epub."
+
+latex:
+	@make -f makefile_non_sphinx all
+	$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
+	@echo
+	@echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
+	@echo "Run \`make all-pdf' or \`make all-ps' in that directory to" \
+	      "run these through (pdf)latex."
+
+latexpdf:
+	@make -f makefile_non_sphinx all
+	$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
+	@echo "Running LaTeX files through pdflatex..."
+	make -C $(BUILDDIR)/latex all-pdf
+	@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
+
+text:
+	@make -f makefile_non_sphinx all
+	$(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
+	@echo
+	@echo "Build finished. The text files are in $(BUILDDIR)/text."
+
+man:
+	@make -f makefile_non_sphinx all
+	$(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
+	@echo
+	@echo "Build finished. The manual pages are in $(BUILDDIR)/man."
+
+changes:
+	@make -f makefile_non_sphinx all
+	$(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
+	@echo
+	@echo "The overview file is in $(BUILDDIR)/changes."
+
+linkcheck:
+	@make -f makefile_non_sphinx all
+	$(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
+	@echo
+	@echo "Link check complete; look for any errors in the above output " \
+	      "or in $(BUILDDIR)/linkcheck/output.txt."
+
+doctest:
+	@make -f makefile_non_sphinx all
+	$(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
+	@echo "Testing of doctests in the sources finished, look at the " \
+	      "results in $(BUILDDIR)/doctest/output.txt."
Index: /trunk/docs/docs_dev/makefile_non_sphinx
===================================================================
--- /trunk/docs/docs_dev/makefile_non_sphinx	(revision 2)
+++ /trunk/docs/docs_dev/makefile_non_sphinx	(revision 2)
@@ -0,0 +1,163 @@
+#+
+# .. _makefile_non_sphinx:
+#
+# ===================
+# makefile_non_sphinx
+# ===================
+#
+# DESCRIPTION
+# ===========
+#
+# génération des manuels à partir des fichiers non assimilables directement
+# par sphinx 
+#
+# SEE ALSO
+# ========
+# 
+# :ref:`builddoc`
+#
+# :ref:`Makefile`
+#
+# :ref:`extract_rst.sh <fptools:extract_rst.sh>`
+#
+# :ref:`for_doc.sh`
+#
+# TODO
+# ====
+#
+# improve dependencies
+#
+# autodoc not ok may be see  autodoc-process-docstring 
+#
+# sort pb within index_manuals for matlab scripts because severals
+# directories. and for probably the same reason no next/previous
+# continuation
+#
+# IDL and matlab in man_troff
+#
+# EVOLUTIONS
+# ==========
+#
+# $Id: makefile_non_sphinx 532 2012-04-18 12:44:46Z pinsard $
+#
+# $URL$
+#
+# - fplod 20120424
+#   
+#   * creation
+#
+#-
+#
+LIST_SRCSH = \
+$(shell find ../.. ! \( -name '.svn' -prune \) -name "*.sh"; \
+        echo "Makefile"; \
+	echo "makefile_non_sphinx" \
+	| sort)
+
+LIST_SRCSH_RST = \
+	$(shell echo "$(LIST_SRCSH)" | \
+	sed -e "s+../../adm+source/manuals/+g" \
+	-e "s+../../src+source/manuals/+g" \
+	-e "s+../../docs/docs_dev+source/manuals/+g" \
+	-e "s+Makefile+source/manuals/Makefile.rst+g" \
+	-e "s+makefile_non_sphinx+source/manuals/makefile_non_sphinx.rst+g" \
+	-e "s+\.sh+.sh.rst+g")
+
+LIST_SRCIDL = \
+$(shell find ../.. ! \( -name '.svn' -prune \) -name "*.pro" | sort)
+
+LIST_SRCIDL_RST = \
+$(shell echo "$(LIST_SRCIDL)" | \
+	sed -e "s+\.\./\.\./src+source/manuals/+g" \
+	    -e "s+\.\./\.\.+source/manuals/+g" \
+	    -e "s+\.pro+.pro.rst+g")
+
+LIST_SRCMATLAB = \
+$(shell find ../.. ! \( -name '.svn' -prune \) -name "*.m" | \
+        grep -v external_matlab | sort)
+
+LIST_SRCMATLAB_RST = \
+$(shell echo "$(LIST_SRCMATLAB)" | \
+	sed \
+	    -e "s+../../src/+source/manuals/+g" \
+	    -e "s+\.m+.m.rst+g")
+
+LIST_SRCFERRET = \
+$(shell find ../.. ! \( -name '.svn' -prune \) -name "*.jnl" | sort)
+
+LIST_SRCFERRET_RST = \
+$(shell echo "$(LIST_SRCFERRET)" | \
+	sed -e "s+../../src/+source/manuals/+g" \
+	    -e "s+\.jnl+.jnl.rst+g")
+
+LIST_RST = \
+$(shell echo $(LIST_SRCSH_RST) \
+$(LIST_SRCIDL_RST) \
+$(LIST_SRCFERRET_RST) \
+$(LIST_SRCODV_RST) \
+$(LIST_SRCMATLAB_RST) | tr ' ' '\n' | sort | tr '\n' ' ')
+
+.PHONY : \
+help \
+clean \
+all
+
+help :
+	@echo "Following commands are available to build outputs :"
+	@echo "\$$ make -f makefile_non_sphinx clean"
+	@echo "\$$ make -f makefile_non_sphinx all"
+
+clean :
+	-@rm source/manuals/myimage*.png
+	-@rm $(LIST_RST) 2> /dev/null
+	-@rm source/manuals/manuals_non_sphinx.rst 2> /dev/null
+
+all : \
+source/manuals/manuals_non_sphinx.rst \
+$(LIST_RST)
+	@for_doc.sh
+
+source/manuals/manuals_non_sphinx.rst : \
+$(LIST_RST)
+	@echo ".. _manuals_non_sphinx:" > $@
+	@echo " " >> $@
+	@echo " " >> $@
+	@echo "non sphinx manuals" | tr [:print:] = >> $@
+	@echo "non sphinx manuals" >> $@
+	@echo "non sphinx manuals" | tr [:print:] = >> $@
+	@echo " " >> $@
+	@echo ".. toctree::" >> $@
+	@echo "   :maxdepth: 1" >> $@
+	@echo "   :glob:" >> $@
+	@echo " " >> $@
+	@echo $(LIST_RST)
+	@for file in $(LIST_RST); \
+	do \
+		echo "   $$(basename $${file} .rst)"; \
+		echo " "; \
+	done >> $@
+	@echo " " >> $@
+
+source/manuals/%.sh.rst : ../../src/%.sh
+	@extract_rst.sh -i $< -l sh -o $@
+
+source/manuals/%.sh.rst : ../../adm/%.sh
+	@extract_rst.sh -i $< -l sh -o $@
+
+source/manuals/makefile_non_sphinx.rst : ../../docs/docs_dev/makefile_non_sphinx
+	@extract_rst.sh -i $< -l sh -o $@
+
+source/manuals/Makefile.rst : ../../docs/docs_dev/Makefile
+	@extract_rst.sh -i $< -l sh -o $@
+
+source/manuals/%.pro.rst : ../../src/%.pro
+	@extract_rst.sh -i $< -l IDL -o $@
+
+source/manuals/%.pro.rst : ../../%.pro
+	@extract_rst.sh -i $< -l IDL -o $@
+
+source/manuals/%.m.rst : ../../src/%.m 
+	@extract_rst.sh -i $< -l matlab -o $@
+
+source/manuals/%.jnl.rst : ../../src/%.jnl  
+	@extract_rst.sh -i $< -l ferret -o $@
Index: /trunk/docs/docs_dev/source/conf.py
===================================================================
--- /trunk/docs/docs_dev/source/conf.py	(revision 2)
+++ /trunk/docs/docs_dev/source/conf.py	(revision 2)
@@ -0,0 +1,279 @@
+# -*- coding: utf-8 -*-
+#
+# TWICE documentation build configuration file, created by
+# sphinx-quickstart on Wed Mar 24 16:54:51 2010.
+#
+# This file is execfile()d with the current directory set to its containing dir.
+#
+# Note that not all possible configuration values are present in this
+# autogenerated file.
+#
+# All configuration values have a default; values that are commented out
+# serve to show the default.
+#+
+#
+# TODO
+# ====
+#
+# - fplod 20100618T151933Z aedon.locean-ipsl.upmc.fr (Darwin)
+#
+#   * find a way to produce olr_split.sh.1 even if graphviz inside source
+#   * find a way to avoid hard coded man pages name here (should be in
+#     adm/makefile)
+#   * use a specific index.rst for man troff
+#
+# - fplod 20100610T135910Z aedon.locean-ipsl.upmc.fr (Darwin)
+#
+#   * how to detected "Deprecated" sphinx features (this file was created
+#     using sphinx 0.6.5 or less
+#
+# EVOLUTIONS
+# ==========
+#
+# $Id$
+#
+# $URL$ 
+#
+# - fplod 20120424 
+#
+#   * creation
+#
+#-
+
+import sys, os
+
+# If extensions (or modules to document with autodoc) are in another directory,
+# add these directories to sys.path here. If the directory is relative to the
+# documentation root, use os.path.abspath to make it absolute, like shown here.
+#sys.path.insert(0, os.path.abspath('.'))
+sys.path.insert(0, os.path.abspath('../../../src/'))
+
+# -- General configuration -----------------------------------------------------
+
+# Add any Sphinx extension module names here, as strings. They can be extensions
+# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
+#extensions = ['sphinx.ext.intersphinx', 'sphinx.ext.todo', 'sphinx.ext.coverage', 'sphinx.ext.pngmath', 'sphinx.ext.ifconfig']
+extensions = ['sphinx.ext.autodoc',
+	      'sphinx.ext.doctest',
+              'sphinx.ext.todo',
+	      'sphinx.ext.intersphinx',
+	      'sphinx.ext.coverage',
+	      'sphinx.ext.pngmath',
+	      'sphinx.ext.ifconfig',
+	      'sphinx.ext.viewcode',
+	      'sphinx.ext.graphviz',
+	      'sphinx.ext.inheritance_diagram' ]
+
+# Add any paths that contain templates here, relative to this directory.
+templates_path = ['_templates']
+
+# The suffix of source filenames.
+source_suffix = '.rst'
+
+# The encoding of source files.
+source_encoding = 'iso-8859-15'
+
+# The master toctree document.
+master_doc = 'index'
+
+# General information about the project.
+project = u'TWICE'
+copyright = u'2008, 2009, 2010, 2011, 2012, CNRS'
+
+# The version info for the project you're documenting, acts as replacement for
+# |version| and |release|, also used in various other places throughout the
+# built documents.
+#
+# The short X.Y version.
+version = '0.1.0'
+# The full version, including alpha/beta/rc tags.
+release = '0.1.0'
+
+# The language for content autogenerated by Sphinx. Refer to documentation
+# for a list of supported languages.
+#language = None
+
+# There are two options for replacing |today|: either, you set today to some
+# non-false value, then it is used:
+#today = ''
+# Else, today_fmt is used as the format for a strftime call.
+#today_fmt = '%Y%m%d'
+
+# List of directories, relative to source directory, that shouldn't be searched
+# for source files.
+exclude_patterns = ['_build', 'prolog.rst']
+
+# Included at the beginning of every source file that is read.
+with open('prolog.rst', 'r') as pr:
+    rst_prolog = pr.read()
+
+rst_prolog
+
+# The reST default role (used for this markup: `text`) to use for all documents.
+#default_role = None
+
+# If true, '()' will be appended to :func: etc. cross-reference text.
+#add_function_parentheses = True
+
+# If true, the current module name will be prepended to all description
+# unit titles (such as .. function::).
+add_module_names = True
+
+# If true, sectionauthor and moduleauthor directives will be shown in the
+# output. They are ignored by default.
+#show_authors = False
+
+# The name of the Pygments (syntax highlighting) style to use.
+pygments_style = 'sphinx'
+
+# A list of ignored prefixes for module index sorting.
+#modindex_common_prefix = []
+
+todo_include_todos = True
+
+# graphviz attributes
+inheritance_graph_attrs = dict(rankdir="LR", size='"6.0, 8.0"',
+                               fontsize=14, ratio='compress')
+
+# Warn about all references where the target cannot be found.
+nitpicky = True
+
+# -- Options for HTML output ---------------------------------------------------
+
+# The theme to use for HTML and HTML Help pages.  Major themes that come with
+# Sphinx are currently 'default' and 'sphinxdoc'.
+html_theme = 'default'
+
+# Theme options are theme-specific and customize the look and feel of a theme
+# further.  For a list of options available for each theme, see the
+# documentation.
+#html_theme_options = {}
+
+# Add any paths that contain custom themes here, relative to this directory.
+#html_theme_path = []
+
+# The name for this set of Sphinx documents.  If None, it defaults to
+# "<project> v<release> documentation".
+#html_title = None
+
+# A shorter title for the navigation bar.  Default is the same as html_title.
+#html_short_title = None
+
+# The name of an image file (relative to this directory) to place at the top
+# of the sidebar.
+#html_logo = None
+
+# The name of an image file (within the static path) to use as favicon of the
+# docs.  This file should be a Windows icon file (.ico) being 16x16 or 32x32
+# pixels large.
+#html_favicon = None
+
+# Add any paths that contain custom static files (such as style sheets) here,
+# relative to this directory. They are copied after the builtin static files,
+# so a file named "default.css" will overwrite the builtin "default.css".
+html_static_path = ['_static']
+
+# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
+# using the given strftime format.
+#html_last_updated_fmt = '%b %d, %Y'
+
+# If true, SmartyPants will be used to convert quotes and dashes to
+# typographically correct entities.
+#html_use_smartypants = True
+
+# Custom sidebar templates, maps document names to template names.
+#html_sidebars = {}
+
+# Additional templates that should be rendered to pages, maps page names to
+# template names.
+#html_additional_pages = {}
+
+# If false, no module index is generated.
+#html_domain_indices = True
+
+# If false, no index is generated.
+#html_use_index = True
+
+# If true, the index is split into individual pages for each letter.
+#html_split_index = False
+
+# If true, links to the reST sources are added to the pages.
+#html_show_sourcelink = True
+
+#html_show_sphinx = True
+#html_show_copyright = True
+
+# If true, an OpenSearch description file will be output, and all pages will
+# contain a <link> tag referring to it.  The value of this option must be the
+# base URL from which the finished HTML is served.
+#html_use_opensearch = ''
+
+# If nonempty, this is the file name suffix for HTML files (e.g. ".xhtml").
+#html_file_suffix = ''
+
+# Output file base name for HTML help builder.
+htmlhelp_basename = 'TWICEdoc'
+
+
+# -- Options for LaTeX output --------------------------------------------------
+
+# The paper size ('letter' or 'a4').
+#latex_paper_size = 'letter'
+
+# The font size ('10pt', '11pt' or '12pt').
+#latex_font_size = '10pt'
+
+# Grouping the document tree into LaTeX files. List of tuples
+# (source start file, target name, title, author, documentclass [howto/manual]).
+latex_documents = [
+  ('index', 'twice_dev.tex', u'TWICE developpers documentation',
+   u'CNRS', 'manual'),
+]
+
+# The name of an image file (relative to this directory) to place at the top of
+# the title page.
+#latex_logo = None
+
+# For "manual" documents, if this is true, then toplevel headings are parts,
+# not chapters.
+#latex_use_parts = False
+
+# Additional stuff for the LaTeX preamble.
+#latex_preamble = ''
+
+# Documents to append as an appendix to all manuals.
+#latex_appendices = []
+
+# If false, no module index is generated.
+#latex_domain_indices = True
+
+
+# -- Options for manual page output --------------------------------------------
+
+# One entry per manual page. List of tuples
+# (source start file, name, description, authors, manual section).
+man_pages = [
+    ('index', project, u'TWICE developpers documentation', [u'fp'], 1),
+    ('cat_clim_ecmwf.sh', 'cat_clim_ecmwf.sh', u'cat_clim_ecmwf.sh Documentation', [u'fp'], 1),
+    ('cat_clim_olr.sh', 'cat_clim_olr.sh', u'cat_clim_olr.sh Documentation', [u'fp'], 1),
+    ('create_gif.sh', 'create_gif.sh', u'create_gif.sh Documentation', [u'fp'], 1),
+    ('concat-files.sh', 'concat-files.sh', u'concat-files.sh Documentation', [u'fp'], 1),
+    ('create_nc.sh', 'create_nc.sh', u'create_nc.sh Documentation', [u'fp'], 1),
+    ('dlogd.sh', 'dlogd.sh', u'dlogd.sh Documentation', [u'fp'], 1),
+    ('elogd.sh', 'elogd.sh', u'elogd.sh Documentation', [u'fp'], 1),
+    ('plogd.sh', 'plogd.sh', u'plogd.sh Documentation', [u'fp'], 1),
+    ('tlogd.sh', 'tlogd.sh', u'tlogd.sh Documentation', [u'fp'], 1),
+    ('is_leap_year.sh', 'is_leap_year.sh', u'is_leap_year.sh Documentation', [u'fp'], 1),
+    ('olr_split.sh', 'olr_split.sh', u'olr_split.sh Documentation', [u'fp'], 1),
+    ('paper01_pre.sh', 'paper01_pre.sh', u'paper01_pre.sh Documentation', [u'fp'], 1),
+    ('traite_amsuab.sh', 'traite_amsuab.sh', u'traite_amsuab.sh Documentation', [u'fp'], 1),
+    ('traite_msg-prod.sh', 'traite_msg-prod.sh', u'traite_msg-prod.sh Documentation', [u'fp'], 1),
+    ('aramma_profile.sh', 'project_profile.sh', u'project_profile.sh Documentation', [u'fp'], 1),
+    ('script_cat_climeraint2d.sh', 'script_cat_climeraint2d.sh', u'script_cat_climeraint2d.sh Documentation', [u'fp'], 1),
+    ('get_msg.sh', 'get_msg.sh', u'get_msg.sh Documentation', [u'fp'], 1),
+    ('get_amsu.sh', 'get_amsu.sh', u'get_amsu.sh Documentation', [u'fp'], 1),
+    ('extract_zone_nc.sh', 'extract_zone_nc.sh', u'extract_zone_nc.sh Documentation', [u'fp'], 1),
+]
+
+# intersphinx
+intersphinx_mapping = {'fptools' : ('http://www.locean-ipsl.upmc.fr/~fplod/fptools/fptools_ws/doc/html/', None)}
Index: /trunk/docs/docs_dev/source/guides/builddoc.rst
===================================================================
--- /trunk/docs/docs_dev/source/guides/builddoc.rst	(revision 2)
+++ /trunk/docs/docs_dev/source/guides/builddoc.rst	(revision 2)
@@ -0,0 +1,77 @@
+.. +
+..
+.. TODO
+.. =====
+..
+.. translation
+..
+.. doxygen
+..
+.. idldoc 
+..
+.. wiki
+..
+.. checklink
+.. 
+.. EVOLUTIONS
+.. ==========
+..
+.. $Id$
+..
+.. $URL$
+..
+.. - fplod 20120424
+..
+..   * creation
+..
+.. -
+
+.. |project| replace:: TWICE
+.. |project_id| replace:: twice
+
+.. _builddoc:
+
+Build Documentation
+-------------------
+
+Documentation |project|
+~~~~~~~~~~~~~~~~~~~~~~~
+La documentation est construite à partir des fichiers ReStructuredText_ 
+dans :file:`${PROJECT}/adm/` et des commentaires dans les sources 
+sous :file:`${PROJECT}/src/`.
+
+.. _ReStructuredText: http://docutils.sourceforge.net/rst.html
+
+Sphinx_ est utilisé pour produire la documentation sous forme HTML et PDF:
+
+.. _Sphinx: http://sphinx.pocoo.org/
+
+.. parsed-literal::
+
+ $ cd ${|project|}/adm/
+ $ make clean
+ $ make before
+ $ make html_dev
+
+et regarder le résultat dans :file:`../doc/html/sphinx/index.html`.
+
+Si le résultat est convainquant, on peut produire les autres formats de 
+documentations (HTML single, PDF et troff):
+
+.. parsed-literal::
+
+ $ make all
+
+Install Documentation |project|
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+La mise à disposition des documentations produites ci-dessus sur l'URL
+http://www.locean-ipsl.upmc.fr/~fplod/twice/twice_ws/doc/html/sphinx/index.html
+est réservée à Françoise Pinsard pour des raisons de protections de fichiers et
+de politique de login.
+
+L'installation se fait ainsi:
+
+.. parsed-literal::
+
+ $ make install_all
Index: /trunk/docs/docs_dev/source/guides/coding_rules.rst
===================================================================
--- /trunk/docs/docs_dev/source/guides/coding_rules.rst	(revision 2)
+++ /trunk/docs/docs_dev/source/guides/coding_rules.rst	(revision 2)
@@ -0,0 +1,243 @@
+.. +
+..
+..
+.. TODO
+.. ====
+..
+.. justification
+..
+.. tools
+..
+.. add reference to pylint and PEP
+..
+.. emphase good and bad examples
+..
+.. ne pas utiliser de mot clé : ex test en shell, image en matlab 
+..
+.. EVOLUTIONS
+.. ==========
+..
+.. $URL$
+..
+.. - fplod 20120424
+..
+..   * creation
+..
+.. _
+
+.. _coding_rules:
+
+Coding rules
+============
+
+.. _files_extension:
+
+Files extension
+---------------
+
+Shell scripts : :file:`.sh`
+
+IDL scripts : :file:`.pro`
+
+Octave/Matlab scripts : :file:`.m`
+
+
+Files contents
+--------------
+ 
+No multiple statement 
+
+bad::
+
+ a=1;b=2
+
+good::
+
+ a=1
+ b=2
+
+No comment after a statement
+
+
+bad::
+
+ yyyy=2010 # default yyyy value
+
+good::
+
+ # default yyyy value
+ yyyy=2010
+
+Lines length
+~~~~~~~~~~~~
+
+Lines length should be shorter than 79 characters.
+
+Exception : long URL
+
+++ see continuation lines in ++
+
+Comments
+~~~~~~~~
+
+Comments should describe functionalities and implementation choices.
+
+A good way to see if there are enougth comments is to read files without instructions (:samp:`sed -e "/^#/d" file.sh`) : do you understand ?
+
++todo+ see also headers
+
+Tabs, blanks
+~~~~~~~~~~~~
+
+No trailing blank
+ justification : for example, when a trailing blank is after \ (continuation lin) in a shell script, it won't work anymore
+
+No trailing empty line
+
+No tab
+
+No multiple blanks except leading ones.
+
+Indentation at least 3 in block IF, WHILE, etc.
+
+Indentation at least 3 when multiple lines statement
+
+Shell scripts
+~~~~~~~~~~~~~
+
+First line ::
+
+#! /bin/sh
+
+
+IDL scripts
+~~~~~~~~~~~
+
+Unabbreviated keywords
+......................
+
+justification : avoiding confusion, either to find help
+
+Continuation lines
+..................
+
+bad example::
+  
+    +todo+ first part , $
+    +toto+ second part
+
+good example::
+
+    +todo+ first part $
+    , second part 
+
+Explicit IF ... ENDIF block
+...........................
+
+same for loop (while, until, etc.)
+::
+
+ IF (yyyy LT 1999) THEN PRINT, 'too soon'
+
+::
+
+ IF (yyyy LT 1999) THEN BEGIN
+    PRINT, 'too soon'
+ ENDIF
+
+Interaction with system
+.......................
+
+No :command:`spawn`
+
+ justification : error handling, portability (unix, windows)
+
+Test with NaN
+.............
+
+bad ::
+
+ myvar EQ !VALUES.F_NAN
+
+good
+
+ finite(myvar) EQ 0
+
+cf. dave fanning +todo link
+
+Test with float
+...............
+
+bad ::
+
+ myvar1 EQ myvar2
+
+good+todo+
+ 
+ +- espilon machin
+
+
+Octave/Matlab scripts
+~~~~~~~~~~~~~~~~~~~~~
+
+Footers
+.......
+
+Add demo and test
+
+ justification : robustness
+
+ see :ref:`rundemotest`
+
+Functions
+.........
+
+Use function calling form rather than procedure
+
+ justification : error handling
+
+bad ::
+
+  load ginette
+    
+good ::
+
+  data=load('ginette')
+
+Interaction with system
+.......................
+
+No :command:`!`
+
+ justification : error handling, portability (unix, windows)
+
+bad::
+  
+  !echo $ARCH
+
+good::
+
+  my_ev=getenv('ARCH')
+
+Test with float
+...............
+
+bad ::
+
+ myvar1 == myvar2
+
+good+todo+::
+ 
+ matlab +- espilon machin
+ octave assert(myvar1,myvar2)
+
+IF block
+........
+
+always an :command:`else` if :command:`elseif`
+
+switch block
+............
+
+always an :command:`otherwise`
+
Index: /trunk/docs/docs_dev/source/guides/contact.rst
===================================================================
--- /trunk/docs/docs_dev/source/guides/contact.rst	(revision 2)
+++ /trunk/docs/docs_dev/source/guides/contact.rst	(revision 2)
@@ -0,0 +1,26 @@
+.. +
+..
+.. TODO
+.. ====
+..
+.. emails
+..
+.. EVOLUTIONS
+.. ==========
+..
+.. $Id: contact.rst 443 2011-12-05 09:14:55Z pinsard $
+..
+.. - fplod 20140424
+..
+..   * creation 
+..
+.. -
+
+.. _contact:
+
+Contact
+=======
+
+Laurence Eymard pour la science
+
+Françoise Pinsard pour la gestion du projet sous trac et svn
Index: /trunk/docs/docs_dev/source/guides/contributing.rst
===================================================================
--- /trunk/docs/docs_dev/source/guides/contributing.rst	(revision 2)
+++ /trunk/docs/docs_dev/source/guides/contributing.rst	(revision 2)
@@ -0,0 +1,38 @@
+.. +
+..
+.. EVOLUTIONS
+.. ==========
+..
+.. $Id$
+..
+.. - fplod 201204024
+..
+..   * creation
+..
+.. -
+
+.. |project| replace:: TWICE
+
+.. _contributing:
+
+==============
+ Contributing
+==============
+
+Development is tracked with svn_.
+
+Installing a *svn* client is not needed unless you want
+to participate in |project| development.
+
+.. _svn: +todo+
+
+You will need a login on forge.ipsl.jussieu.fr to commit your change
+and add/answer tickets.
+
+See :ref:`Contact <contact>` to ask for login or any trouble on your forge.ipsl.jussieu.fr account.
+
+You will find in 
+:ref:`svn Basic Commands <svnbasiccommands>` how to commit your change
+
+You will find in
+:ref:`builddoc` how to build HTML, PDF and troff versions of documentations.
Index: /trunk/docs/docs_dev/source/guides/forge.rst
===================================================================
--- /trunk/docs/docs_dev/source/guides/forge.rst	(revision 2)
+++ /trunk/docs/docs_dev/source/guides/forge.rst	(revision 2)
@@ -0,0 +1,390 @@
+=================================
+Travail sur forge.ipsl.jussieu.fr
+=================================
+
+.. _travail_forge_projet:
+
+Création du projet
+==================
+
+Olivier Thauvin a crée le projet |project_svn| avec moi comme contact et
+administrateur sous le compte <systemitem class="username">pinsard</systemitem>.
+
+Je modifie le mot de passe du compte <systemitem class="username">|project_svn|@forge.ipsl.jussieu.fr</systemitem> associé à ce projet
+après avoir sélectionné le projet
+++ guibutton |project_svn|
+dans la liste de mes projets
+https://forge.ipsl.jussieu.fr/admin/
+
+.. caution::
+
+.. _motdepasse|project_svn|:
+mot de passe <systemitem class="username">|project_svn|@forge.ipsl.jussieu.fr</systemitem>
+
+Le changement de mot de passe du compte <systemitem class="username">|project_svn|@forge.ipsl.jussieu.fr</systemitem> associé à ce projet
+après avoir sélectionné le projet
+<guibutton>|project_svn|</guibutton>
+dans la colonne de gauche de la page
+https://forge.ipsl.jussieu.fr/admin/" doit être accompagné par la modification dans
+:file:`/ipsl/forge/projet/|project_svn|/trac/conf/trac.ini` de la ligne
+de connections à la base de données
+<programlisting>
+database = postgres://<replaceable>projet</replaceable>:<replaceable>motdepasse</replaceable>@forge.ipsl.jussieu.fr/<replaceable>projet</replaceable>_trac
+</programlisting>
+sous peine de problème d'accès à la page <link xl:href="http://forge.ipsl.jussieu.fr/|project_svn|"/>.
+</para>
+</caution>
+
+Toujours dans cette page de gestion de projet, je complète cette création en remplissant les champs
+<guilabel>Url:</guilabel>, <guilabel>Description</guilabel>, <guilabel>Contact</guilabel> et <guilabel>Mail</guilabel>.
+On constate que ces trois premières informations apparaissent dans la page d'accueil
+<link xl:href="http://forge.ipsl.jussieu.fr/"/>.
+
+.. _travail_forge_utilisateurs:
+
+Création et association d'utilisateurs
+======================================
+
+Le compte de  <person><personname><firstname>Jérôme</firstname> <surname>Vialard</surname></personname></person> existe (jv).
+Le compte de  <person><personname><firstname>Praveen</firstname></personname></person> aussi (praveen).
+
+J'ajoute tout ce petit monde aux utilisateurs du projet |project_svn|.
+
+.. _travail_trac:
+
+Travail sur <application class="software">trac</application>
+============================================================
+
+.. _travail_trac_config:
+
+Configuration de <application class="software">trac</application>
+==================================================================
+
+
+Lors de la création du projet un fichier
+<filename>/ipsl/forge/projets/<replaceable>projet</replaceable>/trac/conf/trac.ini</filename> donnant au projet une configuration par défaut choisie par
+Olivier est créé.
+
+On doit modifier les lignes suivantes :
+<programlisting>
+link = http://trac.edgewall.com/
+descr = My example project
+</programlisting>
+en mettant la même chose que dans l'url et la description du projet sous
+<link xl:href="http://forge.ipsl.jussieu.fr/"/> (cf. <xref linkend="travail_forge_projet"/>).
+
+Je choisis aussi de modifier la ligne suivante
+<programlisting>
+ticket_show_details = false
+</programlisting>
+par
+<programlisting>
+ticket_show_details = true
+</programlisting>
+pour pouvoir voir les changements de tickets dans la <literal>timeline</literal> en plus des seules ouvertures et fermetures de tickets.
+
+On pourra aussi associer un logo, une mailing list, des notification sur les tickets, etc, mais ++ pas d'urgence
+
+.. _copieavantmodif:
+
+<tip xml:id="copieavantmodif">
+Copie avant modification
+++++++++++++++++++++++++
+
+Il peut être prudent de copier la version courante du fichier de configuration
+avant de faire une modification. On peut procéder ainsi
+<screen>
+ <prompt>$</prompt> <userinput><command>cd</command> <filename class="directory">trac/conf/</filename></userinput>
+ <prompt>$</prompt> <userinput>fileorig=<filename>trac.ini</filename></userinput>
+<!--++dblatex
+ <prompt>$</prompt> <userinput><command>cp</command> <parameter>${fileorig}</parameter> <filename>${fileorig}_$(date -u +"%Y%m%d%H%M%S")</filename></userinput>
+-->
+ <prompt>$</prompt> <userinput>cp ${fileorig} ${fileorig}_$(date -u +"%Y%m%d%H%M%S")</userinput>
+</screen>
+
+</tip>
+
+Voir l'avertissement concernant le changement de <xref linkend="motdepasse|project_svn|"/>.
+
+.. _travail_trac_permission:
+
+Autorisations
+-------------
+
+Des permissions sont accordées par défaut lors de la création du projet.
+
+Il faut les modifier pour éviter en particuliers des spams sur les tickets.
+
+On commence par créer un <quote>groupe</quote> <token>developer</token>
+en tapant la commande suivante pour chaque contributeur (utilisateur déclaré
+dans <xref linkend="travail_forge_utilisateurs"/>) au projet :
+<screen>
+ <prompt>|project_svn|@forge$</prompt> <userinput><command>trac-admin</command> <filename class="directory">/ipsl/forge/projets/|project_svn|/trac</filename> <parameter>permission</parameter> <parameter>add</parameter> <parameter><replaceable>utilisateur</replaceable></parameter> <parameter>developer</parameter></userinput>
+</screen>
+
+Puis on supprime les accès aux actions sensibles aux inconnus et on n'autorise ces mêmes actions qu'aux contributeurs :
+<screen>
+ <prompt>|project_svn|@forge$</prompt> <userinput><command>trac-admin</command> <filename class="directory">/ipsl/forge/projets/|project_svn|/trac</filename> <parameter>permission</parameter> <parameter>remove</parameter> <parameter>authenticated</parameter> <parameter>WIKI_CREATE</parameter></userinput>
+ <prompt>|project_svn|@forge$</prompt> <userinput><command>trac-admin</command> <filename class="directory">/ipsl/forge/projets/|project_svn|/trac</filename> <parameter>permission</parameter> <parameter>remove</parameter> <parameter>anonymous</parameter> <parameter>WIKI_CREATE</parameter></userinput>
+ <prompt>|project_svn|@forge$</prompt> <userinput><command>trac-admin</command> <filename class="directory">/ipsl/forge/projets/|project_svn|/trac</filename> <parameter>permission</parameter> <parameter>remove</parameter> <parameter>authenticated</parameter> <parameter>WIKI_MODIFY</parameter></userinput>
+ <prompt>|project_svn|@forge$</prompt> <userinput><command>trac-admin</command> <filename class="directory">/ipsl/forge/projets/|project_svn|/trac</filename> <parameter>permission</parameter> <parameter>remove</parameter> <parameter>anonymous</parameter> <parameter>WIKI_MODIFY</parameter></userinput>
+ <prompt>|project_svn|@forge$</prompt> <userinput><command>trac-admin</command> <filename class="directory">/ipsl/forge/projets/|project_svn|/trac</filename> <parameter>permission</parameter> <parameter>remove</parameter> <parameter>authenticated</parameter> <parameter>TICKET_MODIFY</parameter></userinput>
+ <prompt>|project_svn|@forge$</prompt> <userinput><command>trac-admin</command> <filename class="directory">/ipsl/forge/projets/|project_svn|/trac</filename> <parameter>permission</parameter> <parameter>remove</parameter> <parameter>anonymous</parameter> <parameter>TICKET_MODIFY</parameter></userinput>
+ <prompt>|project_svn|@forge$</prompt> <userinput><command>trac-admin</command> <filename class="directory">/ipsl/forge/projets/|project_svn|/trac</filename> <parameter>permission</parameter> <parameter>remove</parameter> <parameter>anonymous</parameter> <parameter>TICKET_CREATE</parameter></userinput>
+ <prompt>|project_svn|@forge$</prompt> <userinput><command>trac-admin</command> <filename class="directory">/ipsl/forge/projets/|project_svn|/trac</filename> <parameter>permission</parameter> <parameter>remove</parameter> <parameter>authenticated</parameter> <parameter>TICKET_CREATE</parameter></userinput>
+ <prompt>|project_svn|@forge$</prompt> <userinput><command>trac-admin</command> <filename class="directory">/ipsl/forge/projets/|project_svn|/trac</filename> <parameter>permission</parameter> <parameter>add</parameter> <parameter>developer</parameter> <parameter>WIKI_ADMIN</parameter></userinput>
+ <prompt>|project_svn|@forge$</prompt> <userinput><command>trac-admin</command> <filename class="directory">/ipsl/forge/projets/|project_svn|/trac</filename> <parameter>permission</parameter> <parameter>add</parameter> <parameter>developer</parameter> <parameter>MILESTONE_ADMIN</parameter></userinput>
+ <prompt>|project_svn|@forge$</prompt> <userinput><command>trac-admin</command> <filename class="directory">/ipsl/forge/projets/|project_svn|/trac</filename> <parameter>permission</parameter> <parameter>add</parameter> <parameter>developer</parameter> <parameter>TICKET_ADMIN</parameter></userinput>
+</screen>
+
+Cette organisation facilite l'ajout d'un utilisateur. Il n'y a que son adhésion
+au <quote>groupe</quote> <literal>developer</literal> à faire.
+
+On peut vérifier que la sortie de la commande suivante :
+<screen>
+ <prompt>|project_svn|@forge$</prompt> <userinput><command>trac-admin</command> <filename class="directory">/ipsl/forge/projets/|project_svn|/trac</filename> <parameter>permission</parameter> <parameter>list</parameter></userinput>
+</screen>
+donne bien
+<screen>
+<computeroutput>
+User        Action         
+---------------------------
+anonymous   BROWSER_VIEW   
+anonymous   CHANGESET_VIEW 
+anonymous   FILE_VIEW      
+anonymous   LOG_VIEW       
+anonymous   MILESTONE_VIEW 
+anonymous   REPORT_SQL_VIEW
+anonymous   REPORT_VIEW    
+anonymous   ROADMAP_VIEW   
+anonymous   SEARCH_VIEW    
+anonymous   TICKET_VIEW    
+anonymous   TIMELINE_VIEW  
+anonymous   WIKI_VIEW      
+developer  MILESTONE_ADMIN
+developer  TICKET_ADMIN   
+developer  WIKI_ADMIN     
+jv          developer     
+pinsard     developer     
+praveen     developer     
+
+
+Available actions:
+ BROWSER_VIEW, CHANGESET_VIEW, CONFIG_VIEW, EMAIL_VIEW, FILE_VIEW,
+ LOG_VIEW, MILESTONE_ADMIN, MILESTONE_CREATE, MILESTONE_DELETE,
+ MILESTONE_MODIFY, MILESTONE_VIEW, PERMISSION_ADMIN, PERMISSION_GRANT,
+ PERMISSION_REVOKE, REPORT_ADMIN, REPORT_CREATE, REPORT_DELETE,
+ REPORT_MODIFY, REPORT_SQL_VIEW, REPORT_VIEW, ROADMAP_ADMIN, ROADMAP_VIEW,
+ SEARCH_VIEW, TICKET_ADMIN, TICKET_APPEND, TICKET_CHGPROP, TICKET_CREATE,
+ TICKET_EDIT_CC, TICKET_EDIT_DESCRIPTION, TICKET_MODIFY, TICKET_VIEW,
+ TIMELINE_VIEW, TRAC_ADMIN, WIKI_ADMIN, WIKI_CREATE, WIKI_DELETE,
+ WIKI_MODIFY, WIKI_VIEW
+
+</computeroutput>
+</screen>
+
+.. _travail_trac_wiki">
+Wiki
+----
+
+La page <token>WikiStart</token> à la création du projet renseigne sur
+<application class="software">trac</application>.
+On doit remplacer cette page avec les informations concernant le projet.
+Ce remplacement peut se faire dans un premier temps par la modification clicodromique en étant loggué sous <link xl:href="http://forge.ipsl.jussieu.fr/|project_svn|/"/> avec le menu <menuchoice><guilabel>loggin</guilabel></menuchoice>.
+Pour assurer la cohérence entre <quote>guides</quote> et Wiki, les pages sont
+ créées par process. cf <xref linkend="documentation_|project_svn|_guide"/>.
+
+.. _travail_trac_roadmap
+
+Roadmap
+-------
+
+La <quote>roadmap</quote> est l'ensemble des étapes d'un projet.
+Quatre étapes nommées <quote>milestone<replaceable>x</replaceable></quote> sont définies à la création du projet.
+
+Il faut définir et renseigner les étapes du projet <token role="projet">|project_svn|</token> soit par clicodrome sur la page <link xl:href="http://forge.ipsl.jussieu.fr/|project_svn|/roadmap/"/> soit avec la commande <command>trac-admin</command>.
+
+<caution>
+<title>Ordre des étapes</title>
+<para>
+On ne maîtrise pas l'ordre des étapes avec <userinput>trac-admin <replaceable>path</replaceable> milestone</userinput>. Elles apparaissent dans l'ordre alphanumérique.
+</para>
+</caution>
+
+<screen>
+ <prompt>|project_svn|@forge$</prompt> <userinput><command>trac-admin</command> <filename class="directory">/ipsl/forge/projets/|project_svn|/trac</filename> <parameter>milestone</parameter> <parameter>rename</parameter> <parameter>milestone1</parameter> <parameter>"consolidation"</parameter></userinput>
+ <prompt>|project_svn|@forge$</prompt> <userinput><command>trac-admin</command> <filename class="directory">/ipsl/forge/projets/|project_svn|/trac</filename> <parameter>milestone</parameter> <parameter>rename</parameter> <parameter>milestone2</parameter> <parameter>"Nouvelles fonctionnalités"</parameter></userinput>
+ <prompt>|project_svn|@forge$</prompt> <userinput><command>trac-admin</command> <filename class="directory">/ipsl/forge/projets/|project_svn|/trac</filename> <parameter>milestone</parameter> <parameter>rename</parameter> <parameter>milestone3</parameter> <parameter>"++"</parameter></userinput>
+ <prompt>|project_svn|@forge$</prompt> <userinput><command>trac-admin</command> <filename class="directory">/ipsl/forge/projets/|project_svn|/trac</filename> <parameter>milestone</parameter> <parameter>rename</parameter> <parameter>milestone4</parameter> <parameter>"++"</parameter></userinput>
+</screen>
+
+On pourra vérifier l'ensemble des étapes du projet avec la commande suivante :
+<screen>
+ <prompt>|project_svn|@forge$</prompt> <userinput><command>trac-admin</command> <filename class="directory">/ipsl/forge/projets/|project_svn|/trac</filename> <parameter>milestone</parameter> <parameter>list</parameter></userinput>
+</screen>
+
+<caution>
+<title>Description d'une milestone</title>
+<para>
+La création des milestones via le clicodrome sur la page <link xl:href="http://forge.ipsl.jussieu.fr/|project_svn|/roadmap/"/> permet d'ajouter une description
+si on y est autorisé (<literal>MILESTONE_ADMIN</literal>) ce que je ne sais pas faire avec <command>trac-admin</command>.
+</para>
+</caution>
+
+.. _travail_svn:
+Travail sur <application class="software">svn</application>
+===========================================================
+
+
+.. _travail_svn_organisation
+
+Organisation de l'arborescence de base de <application class="software">svn</application>
+-----------------------------------------------------------------------------------------
+
+Le dépôt <application class="software">svn</application> à la création est vide.
+Il faut créer les répertoires conventionnels <filename class="directory">trunk</filename>, <filename class="directory">branches</filename> et <filename class="directory">tags</filename> :
+<screen>
+ <prompt>fplod@aedon$</prompt> <userinput><command>cd</command> <filename class="directory">/tmp/</filename></userinput>
+ <prompt>fplod@aedon$</prompt> <userinput><command>mkdir</command> <filename class="directory">/tmp/pour_|project_svn|_svn/</filename></userinput>
+ <prompt>fplod@aedon$</prompt> <userinput><command>cd</command> <filename class="directory">/tmp/pour_|project_svn|_svn/</filename></userinput>
+ <prompt>fplod@aedon$</prompt> <userinput><command>svn</command> <option>checkout</option> <parameter>svn+ssh://pinsard@forge.ipsl.jussieu.fr/ipsl/forge/projets/|project_svn|/svn/</parameter> <filename class="directory">|project_svn|_ws</filename></userinput>
+<computeroutput>Checked out revision 0.</computeroutput>
+ <prompt>fplod@aedon$</prompt> <userinput><command>cd</command> <filename class="directory">/tmp/pour_|project_svn|_svn/|project_svn|_ws/</filename></userinput>
+ <prompt>fplod@aedon$</prompt> <userinput><command>svn</command> <option>mkdir</option> <filename class="directory">trunk</filename></userinput>
+<computeroutput>A trunk</computeroutput>
+ <prompt>fplod@aedon$</prompt> <userinput><command>svn</command> <option>mkdir</option> <filename class="directory">branches</filename></userinput>
+<computeroutput>A branches</computeroutput>
+ <prompt>fplod@aedon$</prompt> <userinput><command>svn</command> <option>mkdir</option> <filename class="directory">tags</filename></userinput>
+<computeroutput>A tags</computeroutput>
+ <prompt>fplod@aedon$</prompt> <userinput><command>svn</command> <option>commit</option> \</userinput>
+<userinput><option>--message</option> <parameter>"create tags, branches and trunk directories"</parameter></userinput>
+<computeroutput>
+Adding branches
+Adding tags
+Adding trunk
+
+Committed revision 1.
+</computeroutput>
+</screen>
+
+On peut vouloir choisir de continuer à travailler dans ce <quote>working space</quote> mais comme il est dans <filename class="directory">/tmp/</filename>, je préfère le détruire :
+<screen>
+ <prompt>fplod@aedon$</prompt> <userinput><command>cd</command></userinput>
+ <prompt>fplod@aedon$</prompt> <userinput><command>rm</command> <option>-fr</option> <filename class="directory">/tmp/pour_|project_svn|_svn/</filename></userinput>
+</screen>
+
+.. _travail_svn_import
+
+Importation du travail existant
+-------------------------------
+
+.. _travail_svn_import_pinsard:
+
+Importation de mon travail
+++++++++++++++++++++++++++
+J'ai mis en place qqes outils de configuration de projet (environnement, gestion des traces, gestion des doc) : il faut donc importer ce travail sous le dépôt.
+
+Ils sont pour l'instant dans <filename class="directory">/usr/home/fplod/incas/|project_svn|/|project_svn|_ws/</filename>.
+
+Pour l'instant il n'y a aucun source dans le dépôt svn.
+
+Je passe par une arborescence intermédiaire :
+<screen>
+ <prompt>fplod@aedon$</prompt> <userinput><command>mkdir</command> <option>-p</option> <filename class="directory">/tmp/pour_|project_svn|_svn/</filename></userinput>
+ <prompt>fplod@aedon$</prompt> <userinput><command>cd</command> <filename class="directory">/tmp/pour_|project_svn|_svn/</filename></userinput>
+ <prompt>fplod@aedon$</prompt> <userinput><command>svn</command> <option>checkout</option> <parameter>svn+ssh://pinsard@forge.ipsl.jussieu.fr/ipsl/forge/projets/|project_svn|/svn/trunk/</parameter> <filename class="directory">|project_svn|_ws</filename></userinput>
+</screen>
+
+Je dépose mes fichiers dans cette arborescence :
+<screen>
+ <prompt>fplod@aedon$</prompt> <userinput><command>cd</command> <filename class="directory">|project_svn|_ws</filename></userinput>
+ <prompt>fplod@aedon$</prompt> <userinput><command>cp</command> <option>-rp</option> <filename>/usr/home/fplod/incas/|project_svn|/|project_svn|_ws/</filename> <filename class="directory">.</filename></userinput>
+ <prompt>fplod@aedon$</prompt> <userinput><command>svn</command> <option>add</option> <filename>src</filename></userinput>
+ <prompt>fplod@aedon$</prompt> <userinput><command>svn</command> <option>add</option> <filename>adm</filename></userinput>
+</screen>
+
+Je m'assure que tout à l'air ok :
+<screen>
+ <prompt>fplod@aedon$</prompt> <userinput><command>svn</command> <parameter>status</parameter></userinput>
+<computeroutput>
+A       adm
+A       adm/install.sh
+A       adm/guides
+A       adm/guides/future.rst
+A       adm/guides/bibliography.rst
+A       adm/guides/coding_rules.rst
+A       adm/guides/generate_tropflux.rst
+A       adm/guides/README.rst
+A       adm/guides/history.rst
+A       adm/guides/data_content.rst
+A       adm/guides/glossary.rst
+A       adm/guides/generate_statistics.rst
+A       adm/sphinx
+A       adm/sphinx/conf.py
+A       adm/sphinx/Makefile
+A       adm/extract_rst.sh
+A       adm/makefile
+A       adm/index.rst
+A       adm/index_guides.rst
+A       src
+A       src/dlogd.sh
+A       src/tlogd.sh
+A       src/elogd.sh
+A       src/tropflux_profile.sh
+A       src/plogd.sh
+</computeroutput>
+</screen>
+
+Comme tout semble correct, on fait le commit et on détruit cet espace de travail temporaire :
+<screen>
+ <prompt>fplod@aedon$</prompt> <userinput><command>svn</command> <parameter>commit</parameter> \</userinput>
+<userinput><option>--message</option> <parameter>"first commit with original work of Francoise Pinsard"</parameter></userinput>
+<computeroutput>
+&hellip;
+Transmitting file data ............................
+Committed revision 2.
+</computeroutput>
+ <prompt>fplod@aedon$</prompt> <userinput><command>cd</command></userinput>
+ <prompt>fplod@aedon$</prompt> <userinput>rm -rf /tmp/pour_|project_svn|_svn/</userinput>
+</screen>
+
+L'importation est terminée.
+
+Je pourrais détruire ces fichiers originaux de départ et les remplacer par leur versions extraites du dépôt :
+<screen>
+ <prompt>fplod@aedon$</prompt> <userinput><command>cd</command> <filename class="directory">/usr/home/fplod/incas/|project_svn|/|project_svn|_ws/</filename></userinput>
+ <prompt>fplod@aedon$</prompt> <userinput><command>rm</command> <filename>src</filename></userinput>
+ <prompt>fplod@aedon$</prompt> <userinput><command>rm</command> <filename>adm</filename></userinput>
+</screen>
+
+Je les remplace par leur versions extraites du dépôt :
+<screen>
+ <prompt>fplod@aedon$</prompt> <userinput><command>cd</command> <filename class="directory">/usr/home/fplod/incas/|project_svn|/|project_svn|_ws/</filename></userinput>
+ <prompt>fplod@aedon$</prompt> <userinput><command>svn</command> <option>checkout</option> svn+ssh://pinsard@forge.ipsl.jussieu.fr/ipsl/forge/projets/|project_svn|/svn/trunk/ .</userinput>
+</screen>
+.. _travail_svn_import_jv:
+Importation du travail de Jérôme Vialard
+========================================
+Jérôme a développé des shells de récupération de données : il faut donc importer son travail sous le dépôt.
+
+Jérôme m'a envoyé ses fichiers par mail (20101123). Je les recupère dans <filename class="directory">/usr/home/fplod/incas/tropflux/tropflux_ws/src</filename>.
+
+Je les ajoute à mon ws et je comitte
+<screen>
+ <prompt>fplod@aedon$</prompt> <userinput><command>svn</command> <option>add</option> <filename>get*</filename></userinput>
+ <prompt>fplod@aedon$</prompt> <userinput><command>svn</command> <parameter>commit</parameter> \</userinput>
+<userinput><option>--message</option> <parameter>"first commit with original work of Jerome Vialard"</parameter></userinput>
+<computeroutput>
+Adding         src/get_olr
+Adding         src/get_olrnint
+Adding         src/get_pirata_netcdf
+Adding         src/get_rama_netcdf
+Adding         src/get_tao_netcdf
+Transmitting file data .....
+Committed revision 3.
+</computeroutput>
+</screen>
+
+L'importation est terminée.
+
+Les fichiers originaux de Jérôme ne seront plus la référence de travail à partir de maintenant (20101213).
Index: /trunk/docs/docs_dev/source/guides/glossary.rst
===================================================================
--- /trunk/docs/docs_dev/source/guides/glossary.rst	(revision 2)
+++ /trunk/docs/docs_dev/source/guides/glossary.rst	(revision 2)
@@ -0,0 +1,24 @@
+.. +
+..
+.. EVOLUTIONS
+.. ==========
+..
+.. $Id: glossary.rst 443 2011-12-05 09:14:55Z pinsard $
+..
+.. $URL$
+..
+..
+.. - fplod 20120424
+..
+..   * creation
+..
+.. -
+
+Glossary
+========
+
+.. glossary::
+   :sorted:
+
+   TWICE
+      Towards microWave use over sea ICE
Index: /trunk/docs/docs_dev/source/guides/installing.rst
===================================================================
--- /trunk/docs/docs_dev/source/guides/installing.rst	(revision 2)
+++ /trunk/docs/docs_dev/source/guides/installing.rst	(revision 2)
@@ -0,0 +1,26 @@
+.. +
+..
+.. EVOLUTIONS
+.. ==========
+..
+.. $Id$
+..
+.. - fplod 20120424
+..
+..   * creation
+..
+.. -
+
+.. _installing:
+
+============
+ Installing
+============
+
+Before installing TWICE, be sure to have all the
+:ref:`required software <requirements>` on your system.
+
+You will find in 
+:ref:`svn Basic Commands <svnbasiccommands>` how to download
+TWICE.
+
Index: /trunk/docs/docs_dev/source/guides/requirements.rst
===================================================================
--- /trunk/docs/docs_dev/source/guides/requirements.rst	(revision 2)
+++ /trunk/docs/docs_dev/source/guides/requirements.rst	(revision 2)
@@ -0,0 +1,96 @@
+.. +
+..
+.. DESCRIPTION
+.. ===========
+..
+.. requirements of the project
+..
+.. TODO
+.. ====
+..
+.. precision sur les differences d'implementation de NetCDF entre octave et matlab
+..
+.. EVOLUTIONS
+.. ==========
+..
+.. $Id$
+..
+.. $URL$
+..
+.. - fplod 20120424
+..
+..   * creation
+..
+.. -
+
+.. _requirements:
+
+Requirements
+============
+
+TWICE is written using unix shell scripts using NCO_, IDL_, Matlab_ or Octave_.
+
+IDL
+---
+
+.. _IDL: http://nco.sourceforge.net/
+
+IDL need to be completed by SAXO_.
+
+.. _SAXO: http://forge.ipsl.jussieu.fr
+
+Octave
+------
+
+.. _Octave: http://www.gnu.org/software/octave/
+
+octave need to be completed by ``octcdf`` and ``image`` packages.
+
+Minimal version is 3.2.
+
+``image`` package can be found downloaded via http://octave.sourceforge.net/image/index.html
+
+``octcdf`` package can be found downloaded via http://octave.sourceforge.net/octcdf/index.html
+
+``spline-gcvspl`` package can be found downloaded via http://octave.sourceforge.net/spline-gcvspl/index.html
+
+Matlab
+------
+
+.. _Matlab: http://www.mathworks.com/
+
+Matlab should be use as an alternative to octave. 
+
+Matlab to be completed by NetCDF toolbox/package.
+
+NCO
+---
+
+.. _NCO: http://nco.sourceforge.net/
+
+
+Sphinx
+------
+
+.. _Sphinx: http://sphinx.pocoo.org/
+
+Sphinx_ is used to build documentation in HTML, PDF and nroff formats. (cf. :ref:`builddoc`)
+
+LaTeX
+-----
+
+LateX is used by Sphinx_ to build documentation in PDF and may be used for building documentation in HTML if there are mathematical expressions in ReST documents.
+
+.. note::
+
+   On MacOS, LaTeX can be installed using macport.
+
+   Following packages are needed :
+
+   - ``texlive-latex-recommended``
+   - ``texlive-latex-extra``
+   - ``texlive-fonts-recommended``
+
+   If some documents are written in French is used, you may need to add
+   ``texlive-lang-french``.
+
Index: /trunk/docs/docs_dev/source/guides/rundemotest.rst
===================================================================
--- /trunk/docs/docs_dev/source/guides/rundemotest.rst	(revision 2)
+++ /trunk/docs/docs_dev/source/guides/rundemotest.rst	(revision 2)
@@ -0,0 +1,103 @@
+.. +
+..
+.. TODO
+.. =====
+..
+.. scons 
+..
+.. dependencies
+..
+.. pyIDL
+..
+.. replaceable in examples instructions (possible in samp with curly braces !)
+..
+.. EVOLUTIONS
+.. ==========
+..
+.. $Id$
+..
+.. $URL: svn+ssh://pinsard@forge.ipsl.jussieu.fr/ipsl/forge/projets/twice/svn/trunk/docs/docs_dev/source/guides/rundemotest.rst $
+..
+.. - fplod 20120424
+..
+..   * creation
+..
+.. -
+
+.. _rundemotest:
+
+Demo and test
+-------------
+
+PROJECT is written different languages : MATLAB or octave, IDL, ferret.
+
+octave and Python give us the opportunity to embed unit demo and tests
+in source files (see :ref:`coding_rules`)
+
+Test and demo must be run before :command:`commit`.
+
+.. note::
+
+   We do not know yet how to handle source files dependencies so it is 
+   up to contributors to define test sequences.
+
+Python
+~~~~~~
+::
+
+ $ cd ${PROJECT}/src
+ $ nosetests --with-doctest -v 
+
+octave
+~~~~~~
+
+All demos can be launched wtih one octave command::
+
+ $ cd ${PROJECT}/src
+ $ octave
+ octave> twice_startup
+
+.. parsed-literal::
+
+ $ cd ${PROJECT}/src
+ $ octave
+ octave> demo('module_to_be_demonstrated')
+ octave> test('module_to_be_tested')
+
+MATLAB 
+~~~~~~
+
+MATLAB do not understand doctest features like octave.
+
+To run demo and tests, we need first extract doctests from source files::
+
+ $ cd ${PROJECT}/adm
+ $ make clean
+ $ make before
+ $ make matlab_demo
+ $ make matlab_test
+
+Then MATLAB codes for demo and tests are available in 
+:file:`${PROJECT}/adm/demo` and :file:`${PROJECT}/adm/test`.
+
+.. warning::
+
+   MATLAB do not understand :command:`fail` and :command:`assert` is not use
+   like in octave ... so tests might not be significant.
+
+To run them::
+
+ $ cd ${PROJECT}/src
+ $ matlab -nodesktop 
+ matlab> add_path('../adm/demo')
+ matlab> module_to_be_demonstrated_demo
+ matlab> add_path('../adm/test')
+ matlab> module_to_be_tested_test
+
+IDL
+~~~
+
+We do not yet have a doctest like solution for IDL. PyIDL will be studied.
+Until then, some IDL source files dedicated to test and demo must be written
+in :file:`${PROJECT}/src/demo` and :file:`${PROJECT}/src/test`.
+
Index: /trunk/docs/docs_dev/source/guides/svnbasiccommands.rst
===================================================================
--- /trunk/docs/docs_dev/source/guides/svnbasiccommands.rst	(revision 2)
+++ /trunk/docs/docs_dev/source/guides/svnbasiccommands.rst	(revision 2)
@@ -0,0 +1,196 @@
+.. +
+..
+.. EVOLUTIONS
+.. ==========
+.. 
+.. $Id: svnbasiccommands.rst 443 2011-12-05 09:14:55Z pinsard $
+.. 
+.. - fplod 20120424
+.. 
+..   * creation
+..
+.. -
+
+.. |project| replace:: twice
+.. |dollar| replace:: \$ 
+
+.. _svnbasiccommands:
+
+======================
+``svn`` basic commands
+======================
+
+:author: Sébastien Masson <Sebastien.Masson_at_locean-ipsl.upmc.fr>
+
+$Id: svnbasiccommands.rst 443 2011-12-05 09:14:55Z pinsard $
+
+.. help:
+
+svn help
+========
+
+::
+
+ $ svn help
+
+Help on a specific command (for example `add`):
+
+::
+
+ $ svn help add 
+
+.. download:
+
+Download |project|
+==================
+
+To download |project| in the directory :file:`${HOME}/twice_ws` execute (with the appropriate login)::
+
+ $ svn checkout svn+ssh://**YOUR_LOGIN**@forge.ipsl.jussieu.fr/ipsl/forge/projets/twice/svn/trunk ${HOME}/twice_ws
+
+.. update:
+ 
+Update |project|
+================
+
+To update everything, go to the directory where you installed |project| (for example :file:`${HOME}/twice_ws`) and execute::
+
+ $ svn update
+
+You can also specify |project| when calling svn update, for example::
+
+ $ svn update ${HOME}/twice_ws
+
+Or you can specify one or several files you want to update::
+
+ $ svn update ${HOME}/twice_ws/src/*.m
+
+.. compare:
+ 
+Compare your version with the reference deposit
+===============================================
+
+To compare your version with the reference deposit as it was at the time you download (or updated) |project|, execute::
+
+ $ svn status
+
+To compare your version with the latest version of the reference deposit, execute::
+
+ $ svn status -u
+
+.. addfile:
+
+Add a new file
+==============
+
+Add a new file to |project|::
+
+ $ svn add **file_name**
+
+If **file_name** is not in the working space (here :file:`${HOME}/twice_ws`), you must copy it::
+
+ $ cp -p **another_directory** ${HOME}/twice_ws/
+
+For example
+
+create a :file:`aaa` file
+::
+
+   $ touch aaa 
+   $ ls -l aaa
+   -rw-r--r-- 1 smasson lodyc 0 Oct 29 09:59 aaa
+
+check your deposit, :file:`aaa` file is signaled as unknown
+::
+
+   $ svn status 
+   ?      aaa
+ 
+
+add :file:`aaa` file to the svn deposit
+::
+
+ $ svn add aaa 
+ A         aaa
+
+
+check that :file:`aaa` has been add to the deposit
+::
+
+ $ svn status 
+ A      aaa
+
+
+.. createdir:
+
+Create a directory file
+=======================
+
+::
+
+ $ svn mkdir **directory_name**
+
+For example::
+
+ # create the directory and add it to the svn deposit in one unique command
+ $ svn mkdir AAA 
+ A         AAA
+
+or::
+
+ # create the directory
+ $ mkdir AAA 
+ # check your deposit, :file:`AAA` is signaled as unknown
+ $ svn status 
+ ?      AAA
+
+ # add it to the svn deposit
+ $ svn add AAA 
+ A         AAA
+
+.. deletefile:
+
+Delete an existing file
+=======================
+
+::
+
+ # works for file or directory
+ $ svn rm --force aaa 
+
+.. addversion:
+
+Add automatic version number in a file
+======================================
+
+Edit your file and add somewhere `\$Id\$`.
+
+Next execute the following svn command::
+
+ $ svn propset svn:keywords Id *YOUR_FILE_NAME*
+
+Next time you download/update your file, `\$Id\$` will be automatically replaced by the version tag.
+
+.. commit:
+
+Commit your changes
+===================
+
+Commit all your changes with one command::
+
+ $ svn commit --username **YOUR_LOGIN** --message "A SHORT DESCRIPTION" ${HOME}/twice_ws
+
+or commit your change on one specific file (for example :file:`${HOME}/twice_ws/src/aaa`)::
+
+ $ svn commit --username **YOUR_LOGIN** \
+   --message "A SHORT DESCRIPTION" \
+   ${HOME}/twice_ws/src/aaa
+
+.. version:
+
+More info on your version
+=========================
+
+::
+
+ $ svn info ${HOME}/twice_ws
Index: /trunk/docs/docs_dev/source/guides/using.rst
===================================================================
--- /trunk/docs/docs_dev/source/guides/using.rst	(revision 2)
+++ /trunk/docs/docs_dev/source/guides/using.rst	(revision 2)
@@ -0,0 +1,22 @@
+.. +
+..
+.. EVOLUTIONS
+.. ==========
+..
+.. $Id: using.rst 443 2011-12-05 09:14:55Z pinsard $
+..
+.. - fplod 20120424
+..
+..   * creation
+..
+.. -
+
+.. _using:
+
+=====
+Using 
+=====
+
+
+:ref:`compute EOF <read_me>`
+
Index: /trunk/docs/docs_dev/source/index.rst
===================================================================
--- /trunk/docs/docs_dev/source/index.rst	(revision 2)
+++ /trunk/docs/docs_dev/source/index.rst	(revision 2)
@@ -0,0 +1,40 @@
+.. +
+..
+.. EVOLUTIONS
+.. ==========
+.. 
+.. $Id: index.rst 518 2012-04-13 13:05:27Z pinsard $
+..
+.. - fplod 20120424
+..
+..   * creation
+..
+.. -
+
+.. _index:
+
+======================
+TWICE Documentations
+======================
+
+
+.. only:: html
+
+   **Download** offline version (`.pdf <../latex/twice_dev.pdf>`__)
+
+.. toctree::
+   :maxdepth: 2
+
+   index_guides.rst
+   manuals/index.rst
+
+   guides/bibliography.rst
+   guides/glossary.rst
+
+Indices and tables
+==================
+
+* :ref:`genindex`
+* :ref:`modindex`
+* :ref:`search`
+
Index: /trunk/docs/docs_dev/source/index_guides.rst
===================================================================
--- /trunk/docs/docs_dev/source/index_guides.rst	(revision 2)
+++ /trunk/docs/docs_dev/source/index_guides.rst	(revision 2)
@@ -0,0 +1,34 @@
+.. +
+..
+.. EVOLUTIONS
+.. ==========
+..
+.. $Id: index_guides.rst 517 2012-04-13 10:58:01Z pinsard $
+..
+.. - fplod 20110424
+..
+..   * creation
+..
+.. -
+
+.. _index_guides:
+
+==============
+TWICE guides
+==============
+
+.. toctree::
+   :maxdepth: 1
+   :glob:
+
+   guides/requirements
+   guides/installing
+   guides/data_content
+   guides/coding_rules
+   guides/rundemotest
+   guides/builddoc
+   guides/using
+   guides/contributing
+   guides/forge
+   guides/svnbasiccommands
+   guides/contact
Index: /trunk/docs/docs_dev/source/manuals/index.rst
===================================================================
--- /trunk/docs/docs_dev/source/manuals/index.rst	(revision 2)
+++ /trunk/docs/docs_dev/source/manuals/index.rst	(revision 2)
@@ -0,0 +1,27 @@
+.. +
+..
+.. EVOLUTIONS
+.. ==========
+..
+.. $Id$
+.. 
+.. $URL$
+..
+.. - fplod 20120424
+..
+..   * creation hand written
+..
+.. -
+
+.. manuals:
+ 
+=================
+|project| manuals
+=================
+ 
+.. toctree::
+   :maxdepth: 1
+
+   manuals_python.rst
+   manuals_non_sphinx.rst
+
Index: /trunk/docs/docs_dev/source/prolog.rst
===================================================================
--- /trunk/docs/docs_dev/source/prolog.rst	(revision 2)
+++ /trunk/docs/docs_dev/source/prolog.rst	(revision 2)
@@ -0,0 +1,33 @@
+.. +
+..
+.. DESCRIPTION
+.. ===========
+..
+.. definition of links and associated text
+..
+.. SEE ALSO
+.. ========
+..
+.. :ref:`conf.py`
+..
+.. TODO
+.. ====
+..
+.. EVOLUTIONS
+.. ==========
+..
+.. $Id: prolog.rst 71 2012-03-30 14:17:16Z pinsard $
+..
+.. $URL: svn+ssh://pinsard@forge.ipsl.jussieu.fr/ipsl/forge/projets/pulsation/svn/trunk/docs/docs_dev/source/prolog.rst $
+..
+.. - fplod 20120424
+..
+..   * creation
+..
+.. -
+
+.. |project_svn| replace:: twice 
+
+.. |contact| replace:: Francoise.Pinsard_at_locean-ipsl.upmc.fr
+
+.. |project| replace:: TWICE
Index: /trunk/src/cm_project.pro
===================================================================
--- /trunk/src/cm_project.pro	(revision 2)
+++ /trunk/src/cm_project.pro	(revision 2)
@@ -0,0 +1,32 @@
+;+
+;
+; .. _cm_project.pro:
+;
+; ==============
+; cm_project.pro
+; ==============
+;
+; DESCRIPTION
+; ===========
+;
+; define commons for PROJECT 
+;
+; SEE ALSO
+; ========
+;
+; :ref:`project_init.pro`
+;
+; EVOLUTIONS
+; ==========
+;
+; $Id: cm_project.pro 335 2011-08-10 09:46:39Z pinsard $
+;
+; $URL: svn+ssh://pinsard@forge.ipsl.jussieu.fr/ipsl/forge/projets/varamma/svn/trunk/src/cm_project.pro $
+;
+; - fplod 20120424
+;
+;   * creation
+;
+;-
+COMMON project, project_env, project_id_env, project_od_env
+COMMON timeperiod, yyyymmddb_min, yyyymmdde_max
Index: /trunk/src/project_init.pro
===================================================================
--- /trunk/src/project_init.pro	(revision 2)
+++ /trunk/src/project_init.pro	(revision 2)
@@ -0,0 +1,127 @@
+;+
+;
+; .. _project_init.pro:
+;
+; ================
+; project_init.pro 
+; ================
+;
+; DESCRIPTION
+; ===========
+;
+; This is the SAXO initialisation file.
+;
+; It ++::
+;
+;   idl -startupfile project_init.pro
+;
+; or::
+;
+;   idl -IDL_STARTUP project_init.pro
+;
+; or::
+;
+;   idl
+;   @project_init
+;
+;
+; SEE ALSO
+; ========
+;
+; :ref:`project_profile.sh`
+;
+; :ref:`cm_project.pro`
+;
+; TODO
+; ====
+;
+; learn to write IF .. ELSE in a @file
+;
+; improve SAXO behaviour in batch mode using fstat and interactive structure field
+; to avoid ``Error occurred at: LOADCT`` and ``% FILE_TEST: String expression required in this context: MYUNIQUETMPDIR``
+;
+; EVOLUTIONS
+; ==========
+;
+; $Id: project_init.pro 535 2012-04-20 10:01:16Z pinsard $
+;
+; $URL: svn+ssh://pinsard@forge.ipsl.jussieu.fr/ipsl/forge/projets/project/svn/trunk/src/project_init.pro $
+;
+; - fplod 20120424
+;
+;   * creation
+;
+;-
+; 
+; SAXO environment
+saxo_dir_env=GETENV('SAXO_DIR')
+;
+; project environment #1
+project_env_temp=GETENV('PROJECT')
+project_id_env_temp=GETENV('PROJECT_ID')
+project_od_env_temp=GETENV('PROJECT_OD')
+;
+; path definition
+!path = expand_path('+' + project_env_temp + '/src') $
+      + path_sep(/search_path) + expand_path('+' + saxo_dir_env) $
+      + path_sep(/search_path) + expand_path('+' + !dir)
+;
+; project environment #2
+@cm_project
+project_env=project_env_temp
+project_id_env=project_id_env_temp
+project_od_env=project_od_env_temp
+;
+; compatibility with the old version
+;
+keep_compatibility, 0
+;
+; define all the commons
+;
+@cm_4cal
+@cm_4data
+@cm_4mesh
+@cm_4data
+@cm_4ps
+@cm_general
+;
+key_performance = 0
+;
+yyyymmddb_min=20000101L
+yyyymmdde_max=20121231L
+;
+; define default directories
+;
+homedir = isadirectory(project_env + '/src/', title = 'Select the default HOME directory')
+iodir = isadirectory(project_id_env, title = 'Select the default IO directory')
+psdir = isadirectory(project_od_env, title = 'Select the default postscripts directory')
+imagedir = isadirectory(project_od_env, title = 'Select the default images directory')
+animdir = isadirectory(project_od_env, title = 'Select the default animations directory')
+;
+; define printer parameters
+;
+printer_human_names = ''
+printer_machine_names = ''
+print_command = ''
+;
+; colors ...
+;
+device, decomposed = 0
+device, retain = 2
+lct, 39
+;
+; postscript parameters ...
+;
+key_portrait = 0
+page_size = [20.9903, 29.7039]
+windowsize_scale = 1.00000
+archive_ps = 0
+;
+;========================================================
+; end of the part that should be modified by the users...
+;========================================================
+;
+; if needed, keep compatibility with the old version
+;
+@updateold
+;
Index: /trunk/src/project_profile.sh
===================================================================
--- /trunk/src/project_profile.sh	(revision 2)
+++ /trunk/src/project_profile.sh	(revision 2)
@@ -0,0 +1,381 @@
+#! /bin/sh
+#+
+#
+# .. program:: project_profile.sh
+#
+# .. _project_profile.sh:
+#
+# ==================
+# project_profile.sh
+# ==================
+#
+# SYNOPSIS
+# ========
+#
+# Online usage::
+#
+#  $ . ./project_profile.sh -d directory -i indir -o outdir -t tempdir -s saxo_dir -idl_cmd idl_cmd
+#
+# In ${HOME}/.profile, add the following line::
+#
+#  . project_profile.sh -d directory  -i indir -o outdir -t tempdir -s saxo_dir
+#
+# DESCRIPTION
+# ===========
+#
+# .. option:: -d  <directory>
+# .. option:: -i  <indir>
+# .. option:: -o  <outdir>
+# .. option:: -t  <tempdir>
+# .. option:: -s  <saxo_dir>
+# .. option:: -idl_cmd  <idl_cmd>
+#
+# define PROJECT environment
+#
+# ${PROJECT} is the base directory of tools.
+#
+# ${PROJECT_LOG} is the directory where log files will be written.
+#
+# ${PROJECT_ID} is the directory where input files must be.
+#
+# ${PROJECT_OD} is the directory where output files will be written.
+#
+# ${SAXO_DIR} is the base directory of SAXO tools
+#
+# PATH is completed with ${PROJECT}/src/ and ${PROJECT}/adm/.
+#
+# FER_GO is completed with ${PROJECT}/src/.
+#
+# IDL_STARTUP is set to tell IDL where find tools.
+#
+# If :option:`-idl_cmd` is used, **idl_cmd** will be used as the IDL command when launched from
+# scripts. By default, ${IDL_CMD} is set to `idl`. 
+#
+# MATLABPATH is initialize to tell matlab where find tools.
+#
+#
+# SEE ALSO
+# ========
+#
+# for matlab/octave environment :
+#
+# :ref:`project_startup.m`
+#
+# for IDL/gdl and SAXO environment :
+#
+# :ref:`project_init.pro`
+# :ref:`cm_project.pro`
+#
+# EXAMPLES
+# ========
+#
+# For fplod, on halios.locean-ipsl.upmc.fr with gdl::
+#
+#  cd /usr/home/fplod/incas/project/project_ws/
+#  . ./src/project_profile.sh \
+#    -d $(pwd) \
+#    -i /usr/temp/${LOGNAME}/project_d/ \
+#    -o /usr/temp/${LOGNAME}/project_d/ \
+#    -t /usr/temp/${LOGNAME}/log/ \
+#    -s /usr/home/fplod/SAXO_DIR/ \
+#    -idl_cmd gdl
+#
+# For fplod on cratos.locean-ipsl.umpc.fr with default IDL version::
+#
+#  cd ${HOME}/incas/project/project_ws/
+#  . ./src/project_profile.sh \
+#    -d $(pwd) \
+#    -i /usr/temp/${LOGNAME}/project_d/ \
+#    -o /usr/temp/${LOGNAME}/project_d/ \
+#    -t /usr/temp/${LOGNAME}/log/ \
+#    -s ${HOME}/SAXO_DIR/
+#
+# For fplod on cratos.locean-ipsl.umpc.fr with IDL version 6.4::
+#
+#  cd ${HOME}/incas/project/project_ws/
+#  . ./src/project_profile.sh \
+#    -d $(pwd) \
+#    -i /usr/temp/${LOGNAME}/project_d/ \
+#    -o /usr/temp/${LOGNAME}/project_d/ \
+#    -t /usr/temp/${LOGNAME}/log/ \
+#    -s ${HOME}/SAXO_DIR/ \
+#    -idl_cmd  /usr/local_linux/idl/idl_6.4/idl64/bin/idl
+#
+# For pinsard on camelot.ipsl.polytechnique.fr or merlin15-c.climserv::
+#
+#  cd ${HOME}/project/
+#  . ./src/project_profile.sh \
+#   -d $(pwd) \
+#   -i /homedata/${LOGNAME}/project_d/ \
+#   -o /homedata/${LOGNAME}/project_d/ \
+#   -t /homedata/${LOGNAME}/log/ \
+#   -s ${HOME}/SAXO_DIR/
+#
+# For pinsard on loholt1 to use idl 6-4::
+#
+#  cd ${HOME}/project/
+#  . ./src/project_profile.sh \
+#   -d $(pwd) \
+#   -i /homedata/${LOGNAME}/project_d/ \
+#   -o /homedata/${LOGNAME}/project_d/ \
+#   -t /homedata/${LOGNAME}/log/ \
+#   -s ${HOME}/SAXO_DIR/ \
+#   -idl_cmd /opt/idl-6.4/idl/bin/idl
+#
+# .. todo::
+#
+# ++ option bavarde
+#
+# ++ machine dependant
+#
+# ++ besoin de posix
+#
+# usage of PROJECT* instead of PROJECT* everywhere
+#
+# EVOLUTIONS
+# ==========
+#
+# $Id: project_profile.sh 532 2012-04-18 12:44:46Z pinsard $
+#
+# - fplod 20120424
+#
+#   * creation
+#
+#-
+system=$(uname)
+case "${system}" in
+   AIX|IRIX64)
+      echo " www : no specific posix checking"
+   ;;
+   *)
+      set -o posix
+   ;;
+esac
+unset system
+#
+set -u
+#
+LANG=C
+#
+# as this script might be launch in .profile, command is forced.
+command=project_profile.sh
+#
+usage="Usage : ${command} -d directory -i indir -o outdir -t tempdir -s saxo_dir [-idl_cmd idl_cmd]"
+#
+# default
+idl_cmd=idl
+#
+while [ ${#} -gt 0 ]
+do
+   case ${1} in
+      -d)
+         # directory for application choosen by user (see svn checkout command used)
+         directory=${2}
+         shift
+      ;;
+      -i)
+         # directory for inputs choosen by user
+         indir=${2}
+         shift
+      ;;
+      -o)
+         # directory for outputs choosen by user
+         outdir=${2}
+         shift
+      ;;
+      -t)
+         # directory for temporary outputs choosen by user
+         tempdir=${2}
+         shift
+      ;;
+      -s)
+         # directory for SAXO tools
+         saxo_dir=${2}
+         shift
+      ;;
+      -idl_cmd)
+         # command for idl
+         idl_cmd=${2}
+         shift
+      ;;
+      *)
+         # other choice
+         echo "eee : unknown option ${1}"
+         echo "${usage}"
+         # nb : no exit because this file should be launched by login process
+      ;;
+   esac
+   # next flag
+   shift
+done
+unset usage
+#
+# check for ${directory}
+if [ ! -d ${directory} ]
+then
+   echo " eee : ${directory} not found"
+   # nb : no exit because this file should be launched by login process
+fi
+#
+# check for permission on directory
+if [ ! -x ${directory} ]
+then
+   echo " eee : ${directory} not reachable"
+   # nb : no exit because this file should be launched by login process
+fi
+#
+PROJECT=${directory}
+export PROJECT
+unset drectory
+#
+# add PROJECT tools to PATH
+# if not already done
+suppath=$(echo ${PROJECT}/src | tr -s "/")
+echo ${PATH} | grep -q "${suppath}:"
+test_path=${?}
+if [ ${test_path} -ne 0 ]
+then
+   PATH=${suppath}:${PATH}
+   export PATH
+else
+   # option bavarde oui/non pas encore implantée ++
+   echo "${command} : iii : ${suppath} already in \${PATH}"
+fi
+unset test_path
+suppath=$(echo ${PROJECT}/adm| tr -s "/")
+echo ${PATH} | grep -q "${suppath}:"
+test_path=${?}
+if [ ${test_path} -ne 0 ]
+then
+   PATH=${suppath}:${PATH}
+   export PATH
+else
+   # option bavarde oui/non pas encore implantée ++
+   echo "${command} : iii : ${suppath} already in \${PATH}"
+fi
+unset test_path
+#
+# add PROJECT manuals to MANPATH
+# if not already done
+suppath=$(echo ${PROJECT}/doc/man | tr -s "/")
+set +u
+echo ${MANPATH} | grep -q "${suppath}:"
+test_manpath=${?}
+if [ ${test_manpath} -ne 0 ]
+then
+   MANPATH=${suppath}:${MANPATH}
+   export MANPATH
+else
+   # option bavarde oui/non pas encore implantée ++
+   echo "${command} : iii : ${suppath} already in \${MANPATH}"
+fi
+set -u
+unset test_manpath
+unset suppath
+#
+PROJECT_LOG=${tempdir}
+export PROJECT_LOG
+unset tempdir
+if [ ! -d ${PROJECT_LOG} ]
+then
+   mkdir -p ${PROJECT_LOG}
+   status=${?}
+   if [ ${status} -ne 0 ]
+   then
+      echo "${command} : eee : can not create \${PROJECT_LOG}"
+      # nb : no exit because this file should be launched by login process
+   else
+      echo "${command} : iii : creation of \${PROJECT_LOG}"
+   fi
+   unset status
+fi
+# check for permission on PROJECT_LOG
+if [ ! -x ${PROJECT_LOG} ]
+then
+   echo " eee : ${PROJECT_LOG} not reachable"
+   # nb : no exit because this file should be launched by login process
+fi
+#
+# check for permission on PROJECT_LOG
+if [ ! -w ${PROJECT_LOG} ]
+then
+   echo " eee : ${PROJECT_LOG} not writable"
+   # nb : no exit because this file shouldreachable be launched by login process
+fi
+#
+EDITOR=vi
+export EDITOR
+#
+# io directories
+PROJECT_ID=${indir}
+export PROJECT_ID
+unset indir
+if [ ! -d ${PROJECT_ID} ]
+then
+   mkdir -p ${PROJECT_ID}
+   echo "${command} : iii : creation of \${PROJECT_ID}"
+fi
+# check for permission on PROJECT_ID
+if [ ! -x ${PROJECT_ID} ]
+then
+   echo " eee : ${PROJECT_ID} not reachable"
+   # nb : no exit because this file should be launched by login process
+fi
+#
+PROJECT_OD=${outdir}
+export PROJECT_OD
+unset outdir
+if [ ! -d ${PROJECT_OD} ]
+then
+    mkdir -p ${PROJECT_OD}
+    echo "${command} : iii : creation of \${PROJECT_OD}"
+fi
+# check for permission on PROJECT_OD
+if [ ! -x ${PROJECT_OD} ]
+then
+   echo " eee : ${PROJECT_OD} not reachable"
+   # nb : no exit because this file should be launched by login process
+fi
+if [ ! -w ${PROJECT_OD} ]
+then
+   echo " eee : ${PROJECT_OD} not writable"
+   # nb : no exit because this file should be launched by login process
+fi
+#
+# setup for ferret
+set +u
+FER_GO="${FER_GO} ${PROJECT}/src"
+export FER_GO
+set -u
+#
+# setup for matlab
+MATLABPATH=${PROJECT}
+export MATLABPATH
+#
+# set up for idl
+IDL_CMD=${idl_cmd}
+export IDL_CMD
+unset idl_cmd
+#
+# SAXO environment
+SAXO_DIR=${saxo_dir}
+export SAXO_DIR
+unset saxo_dir
+#
+PROJECT=${PROJECT}
+export PROJECT
+PROJECT_ID=${PROJECT_ID}
+export PROJECT_ID
+PROJECT_OD=${PROJECT_OD}
+export PROJECT_OD
+PROJECT_LOG=${PROJECT_LOG}
+export PROJECT_LOG
+#
+# IDL startup
+IDL_STARTUP=${PROJECT}/src/project_init.pro
+export IDL_STARTUP
+#
+# end
+unset command
+set +u
+# nb : no exit because this file should be launched by login process
Index: /trunk/src/project_startup.m
===================================================================
--- /trunk/src/project_startup.m	(revision 2)
+++ /trunk/src/project_startup.m	(revision 2)
@@ -0,0 +1,172 @@
+% PROJECT_STARTUP initialisation of matlab/octave environment for PROJECT project
+
+%+
+%
+% .. _project_startup.m:
+%
+% =================
+% project_startup.m
+% =================
+%
+% DESCRIPTION
+% ===========
+%
+% initialisation of matlab/octave environment for PROJECT project
+%
+% Define :
+%  - path for matlab/octave commands used in PROJECT project
+%  - IO directories in global variables
+%
+% This file can be either run classicaly when current directory
+% is ${PROJECT}::
+%
+%  project_startup
+%
+%
+% If linked or copy to ./startup.m, it will be automaticaly
+% run by matlab at start.
+%
+% If linked or copy to ${HOME}/.octaverc, it will be automaticaly
+% run by octave at start.
+%
+% SEE ALSO
+% ========
+%
+% :ref:`project_profile.sh`
+%
+% TODO
+% ====
+%
+% Minimal version octave : 3.0 still true ?!
+%
+% intwarning error
+%
+% intwarning octave
+%
+% EVOLUTIONS
+% ==========
+%
+% $Id: project_startup.m 325 2011-08-04 15:30:01Z pinsard $
+%
+% $URL: svn+ssh://pinsard@forge.ipsl.jussieu.fr/ipsl/forge/projets/project/svn/trunk/src/project_startup.m $
+%
+% - fplod 20120424
+%
+%   * creation
+%
+%-
+%
+%clear all
+%
+matlab_minimal_version_required = '7.4';
+octave_minimal_version_required = '3.0.2';
+%
+%disp('iii : adding path to PROJECT matlab tools')
+%
+% test if PROJECT environment set
+global PROJECT;
+PROJECT=getenv('PROJECT');
+%if ( isempty(PROJECT) )
+% error('eee : PROJECT environment not set');
+%else
+% disp(['iii : PROJECT =' PROJECT])
+%end
+%
+% add path
+addpath(PROJECT);
+%
+% IO directories
+% test if PROJECT_ID environment set
+
+global PROJECT_ID;
+PROJECT_ID=getenv('PROJECT_ID');
+%if ( isempty(PROJECT_ID) )
+% error('eee : PROJECT_ID environment not set');
+%end
+%
+% test if PROJECT_OD environment set
+global PROJECT_OD;
+PROJECT_OD=getenv('PROJECT_OD');
+%if ( isempty(PROJECT_OD) )
+% error('eee : PROJECT_OD environment not set');
+%end
+%
+global application;
+global application_version;
+%
+% detect if either octave or matlab running
+if exist('matlabpath','builtin')
+ application='matlab';
+ tmp=ver(application);
+ application_version=tmp.Version;
+ clear tmp;
+ if verLessThan('matlab', matlab_minimal_version_required)
+  disp(['matlab_minimal_version_required = ', matlab_minimal_version_required]);
+  disp(['application_version =', application_version]);
+  warning('www : you have trouble running an older matlab version');
+ end
+end
+if exist('OCTAVE_VERSION','builtin')
+ application='octave';
+ application_version=version; %% WARNING : do not add () because of matlab 6
+end
+%
+global netcdf_open_available
+netcdf_open=which('netcdf.open');
+if (isempty(netcdf_open))
+  netcdf_open_available=0;
+else
+  netcdf_open_available=1;
+end
+clear netcdf_open
+%
+% set up terminal
+switch application
+  case {'matlab'}
+  case {'octave'}
+       if ismac()
+          setenv('GNUTERM','X11');
+       end
+  otherwise
+      error(['unknown application version running ', application , ' ' ,application_version]);
+end
+
+% severe warning and errors
+switch application
+  case {'matlab'}
+     switch application_version
+        case {'7.4'}
+           intwarning('on')
+        case {'7.10','7.11'}
+             disp([ 'non intwarning when matlab is running']);
+        otherwise
+           error(['unknown application version running ', application , ' ' ,application_version]);
+     end
+
+     s = warning('on', 'MATLAB:intConvertNaN');
+     % turn on MATLAB:divideByZero
+     s = warning('on', 'MATLAB:divideByZero');
+     % show warnings
+     %++debug warning('query','all');
+     %++debug intwarning('query')
+  case {'octave'}
+     switch application_version
+        case {'3.0.2'}
+             disp([ 'non intwarning when octave is running']);
+        case {'3.2.3','3.2.4'}
+             intwarning('on')
+        case {'3.4.0'}
+             disp([ 'no more intwarning when octave is running']);
+        otherwise
+           error(['unknown application version running ', application , ' ' ,application_version]);
+     end
+     s = warning('on', 'Octave:divideByZero');
+     % show warnings
+     %++ debug warning('query','all')
+     %++ 33 s=warning('query','all')
+     %++ 33 s.identifier
+     %++ 33 s.state
+  otherwise
+     error('unknown application running');
+end
+more on
