<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Mwolff</id>
		<title>Planets - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Mwolff"/>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php/Special:Contributions/Mwolff"/>
		<updated>2026-06-10T04:31:21Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.27.7</generator>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Some_Ferret_tips_and_pointers&amp;diff=3263</id>
		<title>Some Ferret tips and pointers</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Some_Ferret_tips_and_pointers&amp;diff=3263"/>
				<updated>2026-04-29T08:40:25Z</updated>
		
		<summary type="html">&lt;p&gt;Mwolff: /* Commands used on a Macbook Pro with the M3 ARM chipset (April 2026) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Ferret ==&lt;br /&gt;
Ferret is a NetCDF vizualisation tool which can be used to postprocess and visualize PCM outputs.&lt;br /&gt;
&lt;br /&gt;
This free software is from NOAA (National Oceanic and Atmospheric Administration) and the relevant webpage where you can learn how to install and use it is here:  https://ferret.pmel.noaa.gov/Ferret/&lt;br /&gt;
&lt;br /&gt;
[For Mac users] It is recommended to use/migrate-to PyFerret.  However, there is a bug in later versions that can render plotting problematic even in the Linux environment.  Fortunately, there is a work around, which we will address specifically for the Mac environment (a post to the Ferret listserv is referenced, and it deals specifically with Linux).  See [[Some_Ferret_tips_and_pointers#Installation_tips| section below]].&lt;br /&gt;
&lt;br /&gt;
== For first timers ==&lt;br /&gt;
Ferret is essentially a command line tool so the first thing you'll need to do is launch it from your terminal&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ferret&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
(on some system, e.g. Ubuntu, the executable is called '''ferret_c''' (and the related package '''ferret_viz''') because another unrelated software also called '''ferret''' exists).&lt;br /&gt;
&lt;br /&gt;
Once under Ferret you should see the Ferret prompt:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes?&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To load a datafile, for example '''diagfi.nc''' issue command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes? use diagfi.nc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Once the file has been loaded, you can query for its contents with the command '''show data'''. This will let you know about available fields (and their shapes: usually i along longitudes, j along latitudes, k along pseudo-altitudes and l along time). e.g&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes? show data&lt;br /&gt;
     currently SET data sets:&lt;br /&gt;
    1&amp;gt; ./diagfi.nc  (default)&lt;br /&gt;
 name     title                             I         J         K         L&lt;br /&gt;
 AIRE                                      1:65      1:49      ...       ...&lt;br /&gt;
 PHISINIT                                  1:65      1:49      ...       ...&lt;br /&gt;
 TSURF                                     1:65      1:49      ...       1:1464&lt;br /&gt;
 PS                                        1:65      1:49      ...       1:1464&lt;br /&gt;
 TEMP                                      1:65      1:49      1:73      1:1464&lt;br /&gt;
 U                                         1:65      1:49      1:73      1:1464&lt;br /&gt;
 V                                         1:65      1:49      1:73      1:1464&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
In the example above the file contains '''AIRE''' and '''PHISINIT''', which are 2D (indexed along i and j indexes, i.e. longitude and latitude == surface fields), '''TSURF''', '''PS''', which are 3D (indexed along i, j and l indexes, i.e. longitude, latitude and time == surface fields evolving in time) and '''TEMP''', '''U''' and '''V''', which are 4D).&lt;br /&gt;
&lt;br /&gt;
== Various tips and pointers ==&lt;br /&gt;
* Don't kill the Ferret graphic plot window (by clicking on the cross at the top right corner); Ferret won't recover, you'll have to exit and start again...&lt;br /&gt;
* One can refer to a field coordinates either via indexes '''i''', '''j''', '''k''', '''l''' or via associated real world coordinates '''x''', '''y''', '''z''', '''t'''.&lt;br /&gt;
&lt;br /&gt;
==== How to make a 1D plot ====&lt;br /&gt;
You simply need to specify along which coordinate the variable is fixed and not mention the one along which it should be plotted, e.g.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes? plot/i=13/j=15 PS&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Or equivalently&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes? plot PS[i=13,j=15]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Or similarly using real world coordinates, e.g.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes? plot PS[x=12,y=35]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that when using real world coordinate, if the sought coordinates are not exactly those of the underlying grid then Ferret will use the nearest neighbor (and not interpolate to the desired coordinates).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
One may limit the range of the coordinate along which the plot is made by explicitly providing the interval boundaries, e.g. to plot PS value at grid indexes i=13 and j=15 but for l ranging from 240 to 480:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes? plot PS[i=13,j=15,l=240:480]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== How to make a 2D map ====&lt;br /&gt;
Same story as for a 1D plot, one needs to specify along which the coordinates the variable is fixed and not mention the remaining two along which the map should be made. e.g.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes? shade TSURF[l=120]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that with &amp;quot;shade&amp;quot; the output maps is raw (cell values are displayed as homogeneous tiles); if you want Ferret to smooth between grid points then use &amp;quot;fill&amp;quot;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes? fill TSURF[l=120]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== How to list data values ====&lt;br /&gt;
Just use &amp;quot;list&amp;quot; instead of &amp;quot;plot&amp;quot; or &amp;quot;shade&amp;quot; etc. to get the values of the field&lt;br /&gt;
&lt;br /&gt;
==== How to compute an average ====&lt;br /&gt;
There are some operators which can be applied along axes, namely &amp;quot;@ave&amp;quot; for averaging (there are also &amp;quot;@min&amp;quot; for extracting minimum value, &amp;quot;@max&amp;quot; for extracting the maximum value and &amp;quot;&amp;quot;@sum&amp;quot; for computing the sum) which can be used on variables.&lt;br /&gt;
For example to display the map of the time average over the whole time series of TSURF:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes? shade TSURF[l=@ave]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Or to display the latitude-altitude map of the zonal value of TEMP at time index 12:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes? shade TEMP[x=@ave,l=12]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Operators can be combined and applied along different direction; for instance to display the time averaged zonal value of TEMP:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes? shade TEMP[x=@ave,l=@ave]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The operators can also be applied to a sub-set of the axis; for instance to display the temporal average evaluated between time steps 48 and 96 of the zonal value of TEMP:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes? shade TEMP[x=@ave,l=48:96@ave]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Saving the figure ====&lt;br /&gt;
After the plot command use the &amp;quot;FRAME&amp;quot; command (and specify output file name, which has to be .gif), e.g.:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes? shade TEMP[x=@ave,l=@ave]&lt;br /&gt;
yes? FRAME/FILE=&amp;quot;mygreatplot.gif&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Creating intermediate variables ====&lt;br /&gt;
You can create your own intermediate variable combining existing ones using the command &amp;quot;let&amp;quot;, e.g. with&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes? let MASS_MTOT=MTOT*AIRE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
where &amp;quot;MTOT&amp;quot; is the column amount of water vapor (in kg/m2) and &amp;quot;AIRE&amp;quot; is the mesh area (in m2) we create a new field &amp;quot;MASS_MTOT&amp;quot; which is the mass of water vapor (in kg) in each column.&lt;br /&gt;
&lt;br /&gt;
You can then use your variable just like any other, including applying operations on it. For instance you can sum over longitudes and latitudes &amp;quot;MASS_MTOT&amp;quot; to plot the time evolution of the total planetary amount of water vapor (in kg) with:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes? plot MASS_MTOT[i=1:64@sum,j=@sum]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
where by the way we sum only over the first 64 longitude points as the 65th (longitude +180°) is redundant with the 1st (longitude -180°).&lt;br /&gt;
&lt;br /&gt;
==== Writing instructions as jnl scripts ====&lt;br /&gt;
You can write up some (ASCII) text file containing a series of Ferret commands, and save it as a &amp;quot;journal&amp;quot; script with the extension &amp;quot;.jnl&amp;quot;, e.g. &amp;quot;myscript.jnl&amp;quot;. To load it in your Ferret session simply use the command &amp;quot;go&amp;quot;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes? go myscript&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installation tips ==&lt;br /&gt;
&lt;br /&gt;
=== Ubuntu ferret_c environment ===&lt;br /&gt;
On the Ubuntu Linux where Ferret comes as &amp;quot;ferret_c&amp;quot;, if the executable crashes when attempting to pot with a message of the likes of&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 PPL+ error: Unable to read &amp;quot;default.spk&amp;quot; to set shade and fill colors.&lt;br /&gt;
&lt;br /&gt;
           *** NOTE: Fonts directory is undefined. Check the Ferret environment.&lt;br /&gt;
 **ERROR: file undefined or not found: fondat.dat&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This is most likely because it is missing some necessary environment variable. The cure is easy: you should &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
source /usr/share/ferret-vis/bin/ferret_paths&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
before running ferret_c (and possibly add that command in your .bashrc to not have to issue it every time you want to run Ferret).&lt;br /&gt;
&lt;br /&gt;
===Mac OSX (PyFerret) and Graphics bug===&lt;br /&gt;
&lt;br /&gt;
====Miniconda====&lt;br /&gt;
conda is the preferred environment for the install.  miniconda (a subset of conda) is a lighter-weight option which is a good choice.  Installation instructions for both may be found [https://docs.conda.io/projects/conda/en/latest/user-guide/install/macos.html here].&lt;br /&gt;
&lt;br /&gt;
====PyFerret====&lt;br /&gt;
Once one has a conda installation of some type, the instructions are straight-forward.  The official installation documentation is [https://github.com/NOAA-PMEL/PyFerret/blob/master/README.md here].&lt;br /&gt;
&lt;br /&gt;
====Commands used on a Macbook Pro with the M3 ARM chipset (April 2026)====&lt;br /&gt;
&lt;br /&gt;
* Install miniconda using script&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bash Miniconda3-latest-MacOSX-arm64.sh      #can &amp;quot;yes&amp;quot; to activate, but we will deactivate&lt;br /&gt;
&lt;br /&gt;
 # do not automatically activate on startup&lt;br /&gt;
conda config --set auto_activate_base false    &lt;br /&gt;
&lt;br /&gt;
# initialize for tcsh (it will write code into one's .tcshrc file)&lt;br /&gt;
/Users/mwolff/miniconda3/bin/conda init tcsh    &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Install pyferret (latest version)&lt;br /&gt;
It is recommended that one use virtual environments, and alias the environment activation for simplicity.  The following section is to install pyferret in virtual environment called FERRET.&lt;br /&gt;
&lt;br /&gt;
Note: the pyferret command from the official site did NOT work for me.  It complained about not finding the needed packages.  For reference, this command was &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# line below did not work.  it is here for reference&lt;br /&gt;
conda create -n FERRET -c conda-forge pyferret ferret_datasets --yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In addition, the numpy version in the Anaconda distribution has changed (since I last did this in 2024), as has the syntax to find the relevant package channel.  So you need to restrict to it be less than version 2 and to specify the architecture with environment variable.  Use the following instead [syntax is for zsh or bash]:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CONDA_SUBDIR=osx-64 conda create -n FERRET -c conda-forge pyferret ferret_datasets &amp;quot;numpy&amp;lt;2&amp;quot; --yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This can be activated using an alias for brevity.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
alias FERRET &amp;quot;conda activate FERRET&amp;quot;  #(t)csh&lt;br /&gt;
alias FERRET=&amp;quot;conda activate FERRET&amp;quot;  # zsh or bash&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Dealing with plotting bug.  As can be seen in the post on the Ferret group [https://www.pmel.noaa.gov/maillists/tmap/ferret_users/fu_2019/msg01059.html here], there can be problems for plotting with the latest version(s), even on Linux.  Below, we use a set of commands that works for Mac OSX.&lt;br /&gt;
&lt;br /&gt;
Install a slightly older version of pyferret (i.e., one where the plotting works) using the command in the referenced post in the last paragrph):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# We have had to change the channel from the example in the referenced ferret group post as described, and the zsh/bash command is:&lt;br /&gt;
&lt;br /&gt;
CONDA_SUBDIR=osx-64 conda create -n oldFERRET -c conda-forge/label/cf202003 pyferret ferret_datasets &amp;quot;numpy&amp;lt;2&amp;quot; --yes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assuming an alias oldFERRET that activates this older version, a plotting test can be runs as&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[mwolff@renaudin ~ % oldFERRET&lt;br /&gt;
(oldFERRET) mwolff@renaudin ~ % pyferret&lt;br /&gt;
 	NOAA/PMEL TMAP&lt;br /&gt;
 	PyFerret v7.5 (optimized)&lt;br /&gt;
 	Darwin 17.7.0 - 12/16/19&lt;br /&gt;
 	29-Apr-26 10:04     &lt;br /&gt;
&lt;br /&gt;
yes? use coads_climatology&lt;br /&gt;
yes? fill sst[l=1]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Ferret_testplot_coads.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:FAQ]]&lt;/div&gt;</summary>
		<author><name>Mwolff</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Some_Ferret_tips_and_pointers&amp;diff=3262</id>
		<title>Some Ferret tips and pointers</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Some_Ferret_tips_and_pointers&amp;diff=3262"/>
				<updated>2026-04-29T08:37:30Z</updated>
		
		<summary type="html">&lt;p&gt;Mwolff: /* Commands used on a Macbook Pro with the M3 ARM chipset (April 2026) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Ferret ==&lt;br /&gt;
Ferret is a NetCDF vizualisation tool which can be used to postprocess and visualize PCM outputs.&lt;br /&gt;
&lt;br /&gt;
This free software is from NOAA (National Oceanic and Atmospheric Administration) and the relevant webpage where you can learn how to install and use it is here:  https://ferret.pmel.noaa.gov/Ferret/&lt;br /&gt;
&lt;br /&gt;
[For Mac users] It is recommended to use/migrate-to PyFerret.  However, there is a bug in later versions that can render plotting problematic even in the Linux environment.  Fortunately, there is a work around, which we will address specifically for the Mac environment (a post to the Ferret listserv is referenced, and it deals specifically with Linux).  See [[Some_Ferret_tips_and_pointers#Installation_tips| section below]].&lt;br /&gt;
&lt;br /&gt;
== For first timers ==&lt;br /&gt;
Ferret is essentially a command line tool so the first thing you'll need to do is launch it from your terminal&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ferret&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
(on some system, e.g. Ubuntu, the executable is called '''ferret_c''' (and the related package '''ferret_viz''') because another unrelated software also called '''ferret''' exists).&lt;br /&gt;
&lt;br /&gt;
Once under Ferret you should see the Ferret prompt:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes?&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To load a datafile, for example '''diagfi.nc''' issue command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes? use diagfi.nc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Once the file has been loaded, you can query for its contents with the command '''show data'''. This will let you know about available fields (and their shapes: usually i along longitudes, j along latitudes, k along pseudo-altitudes and l along time). e.g&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes? show data&lt;br /&gt;
     currently SET data sets:&lt;br /&gt;
    1&amp;gt; ./diagfi.nc  (default)&lt;br /&gt;
 name     title                             I         J         K         L&lt;br /&gt;
 AIRE                                      1:65      1:49      ...       ...&lt;br /&gt;
 PHISINIT                                  1:65      1:49      ...       ...&lt;br /&gt;
 TSURF                                     1:65      1:49      ...       1:1464&lt;br /&gt;
 PS                                        1:65      1:49      ...       1:1464&lt;br /&gt;
 TEMP                                      1:65      1:49      1:73      1:1464&lt;br /&gt;
 U                                         1:65      1:49      1:73      1:1464&lt;br /&gt;
 V                                         1:65      1:49      1:73      1:1464&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
In the example above the file contains '''AIRE''' and '''PHISINIT''', which are 2D (indexed along i and j indexes, i.e. longitude and latitude == surface fields), '''TSURF''', '''PS''', which are 3D (indexed along i, j and l indexes, i.e. longitude, latitude and time == surface fields evolving in time) and '''TEMP''', '''U''' and '''V''', which are 4D).&lt;br /&gt;
&lt;br /&gt;
== Various tips and pointers ==&lt;br /&gt;
* Don't kill the Ferret graphic plot window (by clicking on the cross at the top right corner); Ferret won't recover, you'll have to exit and start again...&lt;br /&gt;
* One can refer to a field coordinates either via indexes '''i''', '''j''', '''k''', '''l''' or via associated real world coordinates '''x''', '''y''', '''z''', '''t'''.&lt;br /&gt;
&lt;br /&gt;
==== How to make a 1D plot ====&lt;br /&gt;
You simply need to specify along which coordinate the variable is fixed and not mention the one along which it should be plotted, e.g.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes? plot/i=13/j=15 PS&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Or equivalently&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes? plot PS[i=13,j=15]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Or similarly using real world coordinates, e.g.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes? plot PS[x=12,y=35]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that when using real world coordinate, if the sought coordinates are not exactly those of the underlying grid then Ferret will use the nearest neighbor (and not interpolate to the desired coordinates).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
One may limit the range of the coordinate along which the plot is made by explicitly providing the interval boundaries, e.g. to plot PS value at grid indexes i=13 and j=15 but for l ranging from 240 to 480:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes? plot PS[i=13,j=15,l=240:480]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== How to make a 2D map ====&lt;br /&gt;
Same story as for a 1D plot, one needs to specify along which the coordinates the variable is fixed and not mention the remaining two along which the map should be made. e.g.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes? shade TSURF[l=120]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that with &amp;quot;shade&amp;quot; the output maps is raw (cell values are displayed as homogeneous tiles); if you want Ferret to smooth between grid points then use &amp;quot;fill&amp;quot;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes? fill TSURF[l=120]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== How to list data values ====&lt;br /&gt;
Just use &amp;quot;list&amp;quot; instead of &amp;quot;plot&amp;quot; or &amp;quot;shade&amp;quot; etc. to get the values of the field&lt;br /&gt;
&lt;br /&gt;
==== How to compute an average ====&lt;br /&gt;
There are some operators which can be applied along axes, namely &amp;quot;@ave&amp;quot; for averaging (there are also &amp;quot;@min&amp;quot; for extracting minimum value, &amp;quot;@max&amp;quot; for extracting the maximum value and &amp;quot;&amp;quot;@sum&amp;quot; for computing the sum) which can be used on variables.&lt;br /&gt;
For example to display the map of the time average over the whole time series of TSURF:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes? shade TSURF[l=@ave]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Or to display the latitude-altitude map of the zonal value of TEMP at time index 12:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes? shade TEMP[x=@ave,l=12]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Operators can be combined and applied along different direction; for instance to display the time averaged zonal value of TEMP:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes? shade TEMP[x=@ave,l=@ave]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The operators can also be applied to a sub-set of the axis; for instance to display the temporal average evaluated between time steps 48 and 96 of the zonal value of TEMP:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes? shade TEMP[x=@ave,l=48:96@ave]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Saving the figure ====&lt;br /&gt;
After the plot command use the &amp;quot;FRAME&amp;quot; command (and specify output file name, which has to be .gif), e.g.:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes? shade TEMP[x=@ave,l=@ave]&lt;br /&gt;
yes? FRAME/FILE=&amp;quot;mygreatplot.gif&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Creating intermediate variables ====&lt;br /&gt;
You can create your own intermediate variable combining existing ones using the command &amp;quot;let&amp;quot;, e.g. with&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes? let MASS_MTOT=MTOT*AIRE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
where &amp;quot;MTOT&amp;quot; is the column amount of water vapor (in kg/m2) and &amp;quot;AIRE&amp;quot; is the mesh area (in m2) we create a new field &amp;quot;MASS_MTOT&amp;quot; which is the mass of water vapor (in kg) in each column.&lt;br /&gt;
&lt;br /&gt;
You can then use your variable just like any other, including applying operations on it. For instance you can sum over longitudes and latitudes &amp;quot;MASS_MTOT&amp;quot; to plot the time evolution of the total planetary amount of water vapor (in kg) with:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes? plot MASS_MTOT[i=1:64@sum,j=@sum]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
where by the way we sum only over the first 64 longitude points as the 65th (longitude +180°) is redundant with the 1st (longitude -180°).&lt;br /&gt;
&lt;br /&gt;
==== Writing instructions as jnl scripts ====&lt;br /&gt;
You can write up some (ASCII) text file containing a series of Ferret commands, and save it as a &amp;quot;journal&amp;quot; script with the extension &amp;quot;.jnl&amp;quot;, e.g. &amp;quot;myscript.jnl&amp;quot;. To load it in your Ferret session simply use the command &amp;quot;go&amp;quot;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes? go myscript&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installation tips ==&lt;br /&gt;
&lt;br /&gt;
=== Ubuntu ferret_c environment ===&lt;br /&gt;
On the Ubuntu Linux where Ferret comes as &amp;quot;ferret_c&amp;quot;, if the executable crashes when attempting to pot with a message of the likes of&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 PPL+ error: Unable to read &amp;quot;default.spk&amp;quot; to set shade and fill colors.&lt;br /&gt;
&lt;br /&gt;
           *** NOTE: Fonts directory is undefined. Check the Ferret environment.&lt;br /&gt;
 **ERROR: file undefined or not found: fondat.dat&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This is most likely because it is missing some necessary environment variable. The cure is easy: you should &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
source /usr/share/ferret-vis/bin/ferret_paths&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
before running ferret_c (and possibly add that command in your .bashrc to not have to issue it every time you want to run Ferret).&lt;br /&gt;
&lt;br /&gt;
===Mac OSX (PyFerret) and Graphics bug===&lt;br /&gt;
&lt;br /&gt;
====Miniconda====&lt;br /&gt;
conda is the preferred environment for the install.  miniconda (a subset of conda) is a lighter-weight option which is a good choice.  Installation instructions for both may be found [https://docs.conda.io/projects/conda/en/latest/user-guide/install/macos.html here].&lt;br /&gt;
&lt;br /&gt;
====PyFerret====&lt;br /&gt;
Once one has a conda installation of some type, the instructions are straight-forward.  The official installation documentation is [https://github.com/NOAA-PMEL/PyFerret/blob/master/README.md here].&lt;br /&gt;
&lt;br /&gt;
====Commands used on a Macbook Pro with the M3 ARM chipset (April 2026)====&lt;br /&gt;
&lt;br /&gt;
* Install miniconda using script&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bash Miniconda3-latest-MacOSX-arm64.sh      #can &amp;quot;yes&amp;quot; to activate, but we will deactivate&lt;br /&gt;
&lt;br /&gt;
 # do not automatically activate on startup&lt;br /&gt;
conda config --set auto_activate_base false    &lt;br /&gt;
&lt;br /&gt;
# initialize for tcsh (it will write code into one's .tcshrc file)&lt;br /&gt;
/Users/mwolff/miniconda3/bin/conda init tcsh    &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Install pyferret (latest version)&lt;br /&gt;
It is recommended that one use virtual environments, and alias the environment activation for simplicity.  The following section is to install pyferret in virtual environment called FERRET.&lt;br /&gt;
&lt;br /&gt;
Note: the pyferret command from the official site did NOT work for me.  It complained about not finding the needed packages.  For reference, this command was &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# line below did not work.  it is here for reference&lt;br /&gt;
conda create -n FERRET -c conda-forge pyferret ferret_datasets --yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In addition, the numpy version in the Anaconda distribution has changed (since I last did this in 2024), as has the syntax to find the relevant package channel.  So you need to restrict to it be less than version 2 and to specify the architecture with environment variable.  Use the following instead [syntax is for zsh or bash]:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CONDA_SUBDIR=osx-64 conda create -n FERRET -c conda-forge pyferret ferret_datasets &amp;quot;numpy&amp;lt;2&amp;quot; --yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This can be activated using an alias for brevity.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
alias FERRET &amp;quot;conda activate FERRET&amp;quot;  #(t)csh&lt;br /&gt;
alias FERRET=&amp;quot;conda activate FERRET&amp;quot;  # zsh or bash&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Dealing with plotting bug.  As can be seen in the post on the Ferret group [https://www.pmel.noaa.gov/maillists/tmap/ferret_users/fu_2019/msg01059.html here], there can be problems for plotting with the latest version(s), even on Linux.  Below, we use a set of commands that works for Mac OSX.&lt;br /&gt;
&lt;br /&gt;
Install a slightly older version of pyferret (i.e., one where the plotting works) using the command in the referenced post in the last paragrph):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# we have had to change the channel from the example in the referenced ferret group post (to install for Mac OS). Implementing the recent changes described above, the zsh/bash command is:&lt;br /&gt;
CONDA_SUBDIR=osx-64 conda create -n oldFERRET -c conda-forge/label/cf202003 pyferret ferret_datasets &amp;quot;numpy&amp;lt;2&amp;quot; --yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assuming an alias oldFERRET that activates this older version, a plotting test can be runs as&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[mwolff@renaudin ~ % oldFERRET&lt;br /&gt;
(oldFERRET) mwolff@renaudin ~ % pyferret&lt;br /&gt;
 	NOAA/PMEL TMAP&lt;br /&gt;
 	PyFerret v7.5 (optimized)&lt;br /&gt;
 	Darwin 17.7.0 - 12/16/19&lt;br /&gt;
 	29-Apr-26 10:04     &lt;br /&gt;
&lt;br /&gt;
yes? use coads_climatology&lt;br /&gt;
yes? fill sst[l=1]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Ferret_testplot_coads.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:FAQ]]&lt;/div&gt;</summary>
		<author><name>Mwolff</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Some_Ferret_tips_and_pointers&amp;diff=3261</id>
		<title>Some Ferret tips and pointers</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Some_Ferret_tips_and_pointers&amp;diff=3261"/>
				<updated>2026-04-29T08:20:02Z</updated>
		
		<summary type="html">&lt;p&gt;Mwolff: /* Commands used on a Macbook Pro with the M2 ARM chipset (summer 2023) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Ferret ==&lt;br /&gt;
Ferret is a NetCDF vizualisation tool which can be used to postprocess and visualize PCM outputs.&lt;br /&gt;
&lt;br /&gt;
This free software is from NOAA (National Oceanic and Atmospheric Administration) and the relevant webpage where you can learn how to install and use it is here:  https://ferret.pmel.noaa.gov/Ferret/&lt;br /&gt;
&lt;br /&gt;
[For Mac users] It is recommended to use/migrate-to PyFerret.  However, there is a bug in later versions that can render plotting problematic even in the Linux environment.  Fortunately, there is a work around, which we will address specifically for the Mac environment (a post to the Ferret listserv is referenced, and it deals specifically with Linux).  See [[Some_Ferret_tips_and_pointers#Installation_tips| section below]].&lt;br /&gt;
&lt;br /&gt;
== For first timers ==&lt;br /&gt;
Ferret is essentially a command line tool so the first thing you'll need to do is launch it from your terminal&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ferret&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
(on some system, e.g. Ubuntu, the executable is called '''ferret_c''' (and the related package '''ferret_viz''') because another unrelated software also called '''ferret''' exists).&lt;br /&gt;
&lt;br /&gt;
Once under Ferret you should see the Ferret prompt:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes?&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To load a datafile, for example '''diagfi.nc''' issue command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes? use diagfi.nc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Once the file has been loaded, you can query for its contents with the command '''show data'''. This will let you know about available fields (and their shapes: usually i along longitudes, j along latitudes, k along pseudo-altitudes and l along time). e.g&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes? show data&lt;br /&gt;
     currently SET data sets:&lt;br /&gt;
    1&amp;gt; ./diagfi.nc  (default)&lt;br /&gt;
 name     title                             I         J         K         L&lt;br /&gt;
 AIRE                                      1:65      1:49      ...       ...&lt;br /&gt;
 PHISINIT                                  1:65      1:49      ...       ...&lt;br /&gt;
 TSURF                                     1:65      1:49      ...       1:1464&lt;br /&gt;
 PS                                        1:65      1:49      ...       1:1464&lt;br /&gt;
 TEMP                                      1:65      1:49      1:73      1:1464&lt;br /&gt;
 U                                         1:65      1:49      1:73      1:1464&lt;br /&gt;
 V                                         1:65      1:49      1:73      1:1464&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
In the example above the file contains '''AIRE''' and '''PHISINIT''', which are 2D (indexed along i and j indexes, i.e. longitude and latitude == surface fields), '''TSURF''', '''PS''', which are 3D (indexed along i, j and l indexes, i.e. longitude, latitude and time == surface fields evolving in time) and '''TEMP''', '''U''' and '''V''', which are 4D).&lt;br /&gt;
&lt;br /&gt;
== Various tips and pointers ==&lt;br /&gt;
* Don't kill the Ferret graphic plot window (by clicking on the cross at the top right corner); Ferret won't recover, you'll have to exit and start again...&lt;br /&gt;
* One can refer to a field coordinates either via indexes '''i''', '''j''', '''k''', '''l''' or via associated real world coordinates '''x''', '''y''', '''z''', '''t'''.&lt;br /&gt;
&lt;br /&gt;
==== How to make a 1D plot ====&lt;br /&gt;
You simply need to specify along which coordinate the variable is fixed and not mention the one along which it should be plotted, e.g.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes? plot/i=13/j=15 PS&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Or equivalently&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes? plot PS[i=13,j=15]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Or similarly using real world coordinates, e.g.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes? plot PS[x=12,y=35]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that when using real world coordinate, if the sought coordinates are not exactly those of the underlying grid then Ferret will use the nearest neighbor (and not interpolate to the desired coordinates).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
One may limit the range of the coordinate along which the plot is made by explicitly providing the interval boundaries, e.g. to plot PS value at grid indexes i=13 and j=15 but for l ranging from 240 to 480:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes? plot PS[i=13,j=15,l=240:480]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== How to make a 2D map ====&lt;br /&gt;
Same story as for a 1D plot, one needs to specify along which the coordinates the variable is fixed and not mention the remaining two along which the map should be made. e.g.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes? shade TSURF[l=120]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that with &amp;quot;shade&amp;quot; the output maps is raw (cell values are displayed as homogeneous tiles); if you want Ferret to smooth between grid points then use &amp;quot;fill&amp;quot;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes? fill TSURF[l=120]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== How to list data values ====&lt;br /&gt;
Just use &amp;quot;list&amp;quot; instead of &amp;quot;plot&amp;quot; or &amp;quot;shade&amp;quot; etc. to get the values of the field&lt;br /&gt;
&lt;br /&gt;
==== How to compute an average ====&lt;br /&gt;
There are some operators which can be applied along axes, namely &amp;quot;@ave&amp;quot; for averaging (there are also &amp;quot;@min&amp;quot; for extracting minimum value, &amp;quot;@max&amp;quot; for extracting the maximum value and &amp;quot;&amp;quot;@sum&amp;quot; for computing the sum) which can be used on variables.&lt;br /&gt;
For example to display the map of the time average over the whole time series of TSURF:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes? shade TSURF[l=@ave]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Or to display the latitude-altitude map of the zonal value of TEMP at time index 12:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes? shade TEMP[x=@ave,l=12]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Operators can be combined and applied along different direction; for instance to display the time averaged zonal value of TEMP:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes? shade TEMP[x=@ave,l=@ave]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The operators can also be applied to a sub-set of the axis; for instance to display the temporal average evaluated between time steps 48 and 96 of the zonal value of TEMP:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes? shade TEMP[x=@ave,l=48:96@ave]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Saving the figure ====&lt;br /&gt;
After the plot command use the &amp;quot;FRAME&amp;quot; command (and specify output file name, which has to be .gif), e.g.:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes? shade TEMP[x=@ave,l=@ave]&lt;br /&gt;
yes? FRAME/FILE=&amp;quot;mygreatplot.gif&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Creating intermediate variables ====&lt;br /&gt;
You can create your own intermediate variable combining existing ones using the command &amp;quot;let&amp;quot;, e.g. with&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes? let MASS_MTOT=MTOT*AIRE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
where &amp;quot;MTOT&amp;quot; is the column amount of water vapor (in kg/m2) and &amp;quot;AIRE&amp;quot; is the mesh area (in m2) we create a new field &amp;quot;MASS_MTOT&amp;quot; which is the mass of water vapor (in kg) in each column.&lt;br /&gt;
&lt;br /&gt;
You can then use your variable just like any other, including applying operations on it. For instance you can sum over longitudes and latitudes &amp;quot;MASS_MTOT&amp;quot; to plot the time evolution of the total planetary amount of water vapor (in kg) with:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes? plot MASS_MTOT[i=1:64@sum,j=@sum]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
where by the way we sum only over the first 64 longitude points as the 65th (longitude +180°) is redundant with the 1st (longitude -180°).&lt;br /&gt;
&lt;br /&gt;
==== Writing instructions as jnl scripts ====&lt;br /&gt;
You can write up some (ASCII) text file containing a series of Ferret commands, and save it as a &amp;quot;journal&amp;quot; script with the extension &amp;quot;.jnl&amp;quot;, e.g. &amp;quot;myscript.jnl&amp;quot;. To load it in your Ferret session simply use the command &amp;quot;go&amp;quot;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes? go myscript&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installation tips ==&lt;br /&gt;
&lt;br /&gt;
=== Ubuntu ferret_c environment ===&lt;br /&gt;
On the Ubuntu Linux where Ferret comes as &amp;quot;ferret_c&amp;quot;, if the executable crashes when attempting to pot with a message of the likes of&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 PPL+ error: Unable to read &amp;quot;default.spk&amp;quot; to set shade and fill colors.&lt;br /&gt;
&lt;br /&gt;
           *** NOTE: Fonts directory is undefined. Check the Ferret environment.&lt;br /&gt;
 **ERROR: file undefined or not found: fondat.dat&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This is most likely because it is missing some necessary environment variable. The cure is easy: you should &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
source /usr/share/ferret-vis/bin/ferret_paths&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
before running ferret_c (and possibly add that command in your .bashrc to not have to issue it every time you want to run Ferret).&lt;br /&gt;
&lt;br /&gt;
===Mac OSX (PyFerret) and Graphics bug===&lt;br /&gt;
&lt;br /&gt;
====Miniconda====&lt;br /&gt;
conda is the preferred environment for the install.  miniconda (a subset of conda) is a lighter-weight option which is a good choice.  Installation instructions for both may be found [https://docs.conda.io/projects/conda/en/latest/user-guide/install/macos.html here].&lt;br /&gt;
&lt;br /&gt;
====PyFerret====&lt;br /&gt;
Once one has a conda installation of some type, the instructions are straight-forward.  The official installation documentation is [https://github.com/NOAA-PMEL/PyFerret/blob/master/README.md here].&lt;br /&gt;
&lt;br /&gt;
====Commands used on a Macbook Pro with the M3 ARM chipset (April 2026)====&lt;br /&gt;
&lt;br /&gt;
* Install miniconda using script&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bash Miniconda3-latest-MacOSX-arm64.sh      #can &amp;quot;yes&amp;quot; to activate, but we will deactivate&lt;br /&gt;
&lt;br /&gt;
 # do not automatically activate on startup&lt;br /&gt;
conda config --set auto_activate_base false    &lt;br /&gt;
&lt;br /&gt;
# initialize for tcsh (it will write code into one's .tcshrc file)&lt;br /&gt;
/Users/mwolff/miniconda3/bin/conda init tcsh    &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Install pyferret (latest version)&lt;br /&gt;
It is recommended that one use virtual environments, and alias the environment activation for simplicity.  The following section is to install pyferret in virtual environment called FERRET.&lt;br /&gt;
&lt;br /&gt;
Note: the pyferret command from the official site did NOT work for me.  It complained about not finding the needed packages.  For reference, this command was &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# line below did not work.  it is here for reference&lt;br /&gt;
conda create -n FERRET -c conda-forge pyferret ferret_datasets --yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In addition, the numpy version in the Anaconda distribution has changed, as has the syntax to find the relevant package channel.  So you need to restrict to be less than version 2 and use an environment variable.  So, use the following instead [syntax is for zsh or bash]:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CONDA_SUBDIR=osx-64 conda create -n FERRET -c conda-forge pyferret ferret_datasets &amp;quot;numpy&amp;lt;2&amp;quot; --yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This can be activated using an alias for brevity.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
alias FERRET &amp;quot;conda activate FERRET&amp;quot;  #(t)csh&lt;br /&gt;
alias FERRET=&amp;quot;conda activate FERRET&amp;quot;  # zsh or bash&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Dealing with plotting bug.  As can be seen in the post on the Ferret group [https://www.pmel.noaa.gov/maillists/tmap/ferret_users/fu_2019/msg01059.html here], there can be problems for plotting with the latest version(s), even on Linux.  Below, we use a set of commands that works for Mac OSX.&lt;br /&gt;
&lt;br /&gt;
Install a slightly older version of pyferret (i.e., one where the plotting works) using the command in the referenced post in the last paragrph):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# we have had to change the channel from the example in the referenced ferret group post (to install for Mac OS). Implementing the recent changes described above, the zsh/bash command is:&lt;br /&gt;
CONDA_SUBDIR=osx-64 conda create -n oldFERRET -c conda-forge/label/cf202003 pyferret ferret_datasets &amp;quot;numpy&amp;lt;2&amp;quot; --yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assuming an alias oldFERRET that activates this older version, a plotting test can be runs as&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[mwolff@renaudin ~ % oldFERRET&lt;br /&gt;
(oldFERRET) mwolff@renaudin ~ % pyferret&lt;br /&gt;
 	NOAA/PMEL TMAP&lt;br /&gt;
 	PyFerret v7.5 (optimized)&lt;br /&gt;
 	Darwin 17.7.0 - 12/16/19&lt;br /&gt;
 	29-Apr-26 10:04     &lt;br /&gt;
&lt;br /&gt;
yes? use coads_climatology&lt;br /&gt;
yes? fill sst[l=1]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Ferret_testplot_coads.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:FAQ]]&lt;/div&gt;</summary>
		<author><name>Mwolff</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Using_the_MESOIPSL_cluster&amp;diff=2441</id>
		<title>Using the MESOIPSL cluster</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Using_the_MESOIPSL_cluster&amp;diff=2441"/>
				<updated>2025-02-26T13:54:21Z</updated>
		
		<summary type="html">&lt;p&gt;Mwolff: /* Compiling the PCMs on Spirit */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page provides some information for those who use the MESOIPSL clusters (also known as &amp;quot;spirit&amp;quot;, replacing &amp;quot;ciclad&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
Note that there are two distinct MESOIPSL Spirit clusters, one in Sorbonne Université (SU), and one in Ecole Polytechnique (X). If you log on to &amp;quot;spirit1&amp;quot; or &amp;quot;spirit2&amp;quot; (as shown below) then you are on the SU-Spirit cluster whereas if you log on to &amp;quot;spiritx1&amp;quot; or &amp;quot;spiritx2&amp;quot; then you are on the X-Spirit cluster.&lt;br /&gt;
&lt;br /&gt;
If you need to run on GPUs, that is possible using the 3rd MESOIPSL cluster, HAL.&lt;br /&gt;
&lt;br /&gt;
== How to access the cluster ==&lt;br /&gt;
If you had an account on Ciclad, then you have one on Spirit. If you need to open an account (this is of course reserved to IPSL users) then proceed to this page: https://documentations.ipsl.fr/spirit/getting_started/account.html&lt;br /&gt;
&lt;br /&gt;
Once you have an account you can ssh to the cluster via either of the spirit1 or spirit2 login nodes:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ssh yourMESOIPSLlogin@spirit1.ipsl.fr&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
or equivalently&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ssh yourMESOIPSLlogin@spirit2.ipsl.fr&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
IMPORTANT: the required ssh authentication level is such that it requires ED25519 or RSA (4096 bits) key types. If your ssh to the machines fails, the first thing to check is that you indeed are using RSA keys.&lt;br /&gt;
&lt;br /&gt;
Here is probably also the right place to point to the MEOIPSL cluster's main page: https://documentations.ipsl.fr/spirit/&lt;br /&gt;
&lt;br /&gt;
== OS and disk space ==&lt;br /&gt;
As the welcome message will remind you:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Welcome to Ubuntu 20.04.5 LTS (GNU/Linux 5.4.0-125-generic x86_64)&lt;br /&gt;
CPU AMD EPYC 7402P 24-Core Processor 2.8GHz&lt;br /&gt;
=========================================================================&lt;br /&gt;
*        Mesocentre ESPRI IPSL (Cluster Spirit) JUSSIEU                 *&lt;br /&gt;
=========================================================================&lt;br /&gt;
** Disk Space :&lt;br /&gt;
- /home/login     (32Go and 300000 files max per user) : Backup every day.&lt;br /&gt;
- /data/login     ( 1To and 300000 files max per user) : NO BACKUP&lt;br /&gt;
- /scratchu/login ( 2To and 300000 files max per user) : NO BACKUP&lt;br /&gt;
- /bdd/ : Datasets&lt;br /&gt;
- /climserv-home/, /homedata ,/scratchx : SpiritX workspace ( READ-ONLY)&lt;br /&gt;
------------------------------------------------------------------------------&lt;br /&gt;
Migration Documentation ( Temporary URL )&lt;br /&gt;
https://documentations.ipsl.fr/spirit/spirit_clusters/migration_from_ciclad_climserv.html&lt;br /&gt;
**  Support Contact  mailto:meso-support@ipsl.fr&lt;br /&gt;
------------------------------------------------------------------------------&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This is Ubuntu Linux and the &amp;quot;HOME&amp;quot; is quite limited in size. Most work should be done on the '''data''' and/or '''scratchu''' disks.&lt;br /&gt;
&lt;br /&gt;
It is up to you to tailor your environment. By default it is quite bare; it is up to you to load the modules you'll need to have access to specific software or compilers or libraries (and versions thereof).&lt;br /&gt;
To know what modules are available:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
module avail&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
To load a given module, here the Panoply software:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
module load panoply&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Compiling the PCMs on Spirit ==&lt;br /&gt;
Dedicated arch files are available in the '''LMDZ.COMMON/arch''' subdirectory! They are labeled '''ifort_MESOIPSL''' (XIOS and DYNAMICO also have similarly named arch files). &lt;br /&gt;
 &lt;br /&gt;
Likewise there is a dedicated '''install_ioipsl_ifort_MESOIPSL.bash''' install script for IOIPSL available in '''LMDZ.COMMON/ioipsl'''&lt;br /&gt;
&lt;br /&gt;
To compile the utilities, you should define the three varibles below as indicated, where the first line may have caused problems if you already tried it:&lt;br /&gt;
&amp;lt;br&amp;gt; NETCDF_HOME=$NETCDF_FORTRAN_ROOT&lt;br /&gt;
&amp;lt;br&amp;gt;COMPILER=&amp;quot;ifort&amp;quot;&lt;br /&gt;
&amp;lt;br&amp;gt;COMPILER_OPTIONS=&amp;quot;-O2 -ip&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Example of a job to run a GCM simulation ==&lt;br /&gt;
Here to run using 24 MPI tasks with 2 OpenMP threads each:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#SBATCH --nodes=1&lt;br /&gt;
#SBATCH --ntasks-per-node=24&lt;br /&gt;
#SBATCH --cpus-per-task=2&lt;br /&gt;
#SBATCH --partition=zen4 # zen4: 64cores/node and 240GB of memory&lt;br /&gt;
##SBATCH --partition=zen16 # zen16: 32 cores/node core and 496GB of memory&lt;br /&gt;
#SBATCH -J job_mpi_omp&lt;br /&gt;
#SBATCH --time=0:55:00&lt;br /&gt;
#SBATCH --output %x.%j.out&lt;br /&gt;
&lt;br /&gt;
source ../trunk/LMDZ.COMMON/arch/arch-ifort_MESOIPSL.env&lt;br /&gt;
&lt;br /&gt;
export OMP_NUM_THREADS=2&lt;br /&gt;
export OMP_STACKSIZE=400M&lt;br /&gt;
&lt;br /&gt;
mpirun gcm_64x48x54_phymars_para.e &amp;gt; gcm.out 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that there is a per-user limitation of (maximum) 96 cores for a given job.&lt;br /&gt;
&lt;br /&gt;
== Sending data on Spirit ==&lt;br /&gt;
This function could be used to send data to your scratch directory on spirit. &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
function rsend {&lt;br /&gt;
    a=${1:-.}&lt;br /&gt;
    b=${2:-$a}&lt;br /&gt;
    c=${3:-spirit}&lt;br /&gt;
    rsync -avzl $a/ $c:/scratchx/$USER/$b/&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To be used as such: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
rsend folder # simply send folder to your scratch dir&lt;br /&gt;
rsend folder1 folder2 # send folder1 into folder2&lt;br /&gt;
rsend folder1 folder2 machine #send folder1 into folder2 on machine (depends on your ssh config)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:FAQ]]&lt;/div&gt;</summary>
		<author><name>Mwolff</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Using_the_MESOIPSL_cluster&amp;diff=2440</id>
		<title>Using the MESOIPSL cluster</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Using_the_MESOIPSL_cluster&amp;diff=2440"/>
				<updated>2025-02-26T13:53:45Z</updated>
		
		<summary type="html">&lt;p&gt;Mwolff: /* Compiling the PCMs on Spirit */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page provides some information for those who use the MESOIPSL clusters (also known as &amp;quot;spirit&amp;quot;, replacing &amp;quot;ciclad&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
Note that there are two distinct MESOIPSL Spirit clusters, one in Sorbonne Université (SU), and one in Ecole Polytechnique (X). If you log on to &amp;quot;spirit1&amp;quot; or &amp;quot;spirit2&amp;quot; (as shown below) then you are on the SU-Spirit cluster whereas if you log on to &amp;quot;spiritx1&amp;quot; or &amp;quot;spiritx2&amp;quot; then you are on the X-Spirit cluster.&lt;br /&gt;
&lt;br /&gt;
If you need to run on GPUs, that is possible using the 3rd MESOIPSL cluster, HAL.&lt;br /&gt;
&lt;br /&gt;
== How to access the cluster ==&lt;br /&gt;
If you had an account on Ciclad, then you have one on Spirit. If you need to open an account (this is of course reserved to IPSL users) then proceed to this page: https://documentations.ipsl.fr/spirit/getting_started/account.html&lt;br /&gt;
&lt;br /&gt;
Once you have an account you can ssh to the cluster via either of the spirit1 or spirit2 login nodes:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ssh yourMESOIPSLlogin@spirit1.ipsl.fr&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
or equivalently&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ssh yourMESOIPSLlogin@spirit2.ipsl.fr&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
IMPORTANT: the required ssh authentication level is such that it requires ED25519 or RSA (4096 bits) key types. If your ssh to the machines fails, the first thing to check is that you indeed are using RSA keys.&lt;br /&gt;
&lt;br /&gt;
Here is probably also the right place to point to the MEOIPSL cluster's main page: https://documentations.ipsl.fr/spirit/&lt;br /&gt;
&lt;br /&gt;
== OS and disk space ==&lt;br /&gt;
As the welcome message will remind you:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Welcome to Ubuntu 20.04.5 LTS (GNU/Linux 5.4.0-125-generic x86_64)&lt;br /&gt;
CPU AMD EPYC 7402P 24-Core Processor 2.8GHz&lt;br /&gt;
=========================================================================&lt;br /&gt;
*        Mesocentre ESPRI IPSL (Cluster Spirit) JUSSIEU                 *&lt;br /&gt;
=========================================================================&lt;br /&gt;
** Disk Space :&lt;br /&gt;
- /home/login     (32Go and 300000 files max per user) : Backup every day.&lt;br /&gt;
- /data/login     ( 1To and 300000 files max per user) : NO BACKUP&lt;br /&gt;
- /scratchu/login ( 2To and 300000 files max per user) : NO BACKUP&lt;br /&gt;
- /bdd/ : Datasets&lt;br /&gt;
- /climserv-home/, /homedata ,/scratchx : SpiritX workspace ( READ-ONLY)&lt;br /&gt;
------------------------------------------------------------------------------&lt;br /&gt;
Migration Documentation ( Temporary URL )&lt;br /&gt;
https://documentations.ipsl.fr/spirit/spirit_clusters/migration_from_ciclad_climserv.html&lt;br /&gt;
**  Support Contact  mailto:meso-support@ipsl.fr&lt;br /&gt;
------------------------------------------------------------------------------&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This is Ubuntu Linux and the &amp;quot;HOME&amp;quot; is quite limited in size. Most work should be done on the '''data''' and/or '''scratchu''' disks.&lt;br /&gt;
&lt;br /&gt;
It is up to you to tailor your environment. By default it is quite bare; it is up to you to load the modules you'll need to have access to specific software or compilers or libraries (and versions thereof).&lt;br /&gt;
To know what modules are available:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
module avail&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
To load a given module, here the Panoply software:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
module load panoply&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Compiling the PCMs on Spirit ==&lt;br /&gt;
Dedicated arch files are available in the '''LMDZ.COMMON/arch''' subdirectory! They are labeled '''ifort_MESOIPSL''' (XIOS and DYNAMICO also have similarly named arch files). &lt;br /&gt;
 &lt;br /&gt;
Likewise there is a dedicated '''install_ioipsl_ifort_MESOIPSL.bash''' install script for IOIPSL available in '''LMDZ.COMMON/ioipsl'''&lt;br /&gt;
&lt;br /&gt;
To compile the utilities, you should define the three varibles below as indicated, where the first line may have caused problems if you already tried it:&lt;br /&gt;
&amp;lt;br&amp;gt; NETCDF_HOME=$NETCDF_FORTRAN_ROOT&amp;lt;/br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;COMPILER=&amp;quot;ifort&amp;quot;&amp;lt;/br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;COMPILER_OPTIONS=&amp;quot;-O2 -ip&amp;quot;&amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Example of a job to run a GCM simulation ==&lt;br /&gt;
Here to run using 24 MPI tasks with 2 OpenMP threads each:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#SBATCH --nodes=1&lt;br /&gt;
#SBATCH --ntasks-per-node=24&lt;br /&gt;
#SBATCH --cpus-per-task=2&lt;br /&gt;
#SBATCH --partition=zen4 # zen4: 64cores/node and 240GB of memory&lt;br /&gt;
##SBATCH --partition=zen16 # zen16: 32 cores/node core and 496GB of memory&lt;br /&gt;
#SBATCH -J job_mpi_omp&lt;br /&gt;
#SBATCH --time=0:55:00&lt;br /&gt;
#SBATCH --output %x.%j.out&lt;br /&gt;
&lt;br /&gt;
source ../trunk/LMDZ.COMMON/arch/arch-ifort_MESOIPSL.env&lt;br /&gt;
&lt;br /&gt;
export OMP_NUM_THREADS=2&lt;br /&gt;
export OMP_STACKSIZE=400M&lt;br /&gt;
&lt;br /&gt;
mpirun gcm_64x48x54_phymars_para.e &amp;gt; gcm.out 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that there is a per-user limitation of (maximum) 96 cores for a given job.&lt;br /&gt;
&lt;br /&gt;
== Sending data on Spirit ==&lt;br /&gt;
This function could be used to send data to your scratch directory on spirit. &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
function rsend {&lt;br /&gt;
    a=${1:-.}&lt;br /&gt;
    b=${2:-$a}&lt;br /&gt;
    c=${3:-spirit}&lt;br /&gt;
    rsync -avzl $a/ $c:/scratchx/$USER/$b/&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To be used as such: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
rsend folder # simply send folder to your scratch dir&lt;br /&gt;
rsend folder1 folder2 # send folder1 into folder2&lt;br /&gt;
rsend folder1 folder2 machine #send folder1 into folder2 on machine (depends on your ssh config)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:FAQ]]&lt;/div&gt;</summary>
		<author><name>Mwolff</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Tool_Box_Mars_PCM&amp;diff=2437</id>
		<title>Tool Box Mars PCM</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Tool_Box_Mars_PCM&amp;diff=2437"/>
				<updated>2025-02-26T10:30:24Z</updated>
		
		<summary type="html">&lt;p&gt;Mwolff: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Post-processing tools provided with the Mars PCM ==&lt;br /&gt;
First and foremost there are a number of postprocessing utilities (self-standing tools) which can be found in the &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LMDZ.MARS/util&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
directory; you certainly want to first read the README file there.&lt;br /&gt;
&lt;br /&gt;
Current contents of this directory is:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
aeroptical.def     extract.F90          lslin.def        startarchive2icosa/&lt;br /&gt;
aeroptical.F90     extract.points.def   lslin.F90        streamfunction.F90&lt;br /&gt;
aeropt_mod.F90     extract.profile.def  README           xvik/&lt;br /&gt;
compile            hrecast.def          simu_MCS.def     zrecast.auto.def&lt;br /&gt;
concatnc.def       hrecast.F90          simu_MCS.F90     zrecast.F90&lt;br /&gt;
concatnc.F90       localtime.def        solzenangle.def  zrecast.manual.def&lt;br /&gt;
expandstartfi.F90  localtime.F90        solzenangle.F90&lt;br /&gt;
&amp;lt;/pre&amp;gt;  &lt;br /&gt;
the ''compile'' script is an example of how to compile any of the utilities, which you will have to adapt to your needs (mostly concerns setting the right path to the NetCDF library). All the post-processing tools are meant to be run interactively (asking the user for some instructions), hence the ''*.def'' files as it is most of the time more convenient (once one knows the tools and questions it will ask) to redirect this list of answers to the standard input of the tool, e.g.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
zrecast.e &amp;lt; zrecast.manual.def&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Main programs (other than GCM) but included in the Mars PCM package ==&lt;br /&gt;
There are a few other main programs that are included with the GCM. &lt;br /&gt;
&lt;br /&gt;
Advanced stuff: In practice these main programs are located under ''LMDZ.MARS/dynphy_lonlat/phymars/'' as they are at the interface between lon-lat dynamics and the Mars physics package (i.e. need to use both and thus can only be applied in that context).&lt;br /&gt;
&lt;br /&gt;
=== start2archive ===&lt;br /&gt;
A main program to collect multiple &amp;lt;code&amp;gt;start.nc&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;startfi.nc&amp;lt;/code&amp;gt; files from a series simulations and store them in a &amp;lt;code&amp;gt;start_archive.nc&amp;lt;/code&amp;gt; file. For this one simply needs to run the &amp;lt;code&amp;gt;startarchive&amp;lt;/code&amp;gt; program in the directory. It will automatically fetch code&amp;gt;start.nc&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;startfi.nc&amp;lt;/code&amp;gt; files and generate &amp;lt;code&amp;gt;start_archive.nc&amp;lt;/code&amp;gt;. If a &amp;lt;code&amp;gt;start_archive.nc&amp;lt;/code&amp;gt; file is already present then the current &amp;lt;code&amp;gt;start.nc&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;startfi.nc&amp;lt;/code&amp;gt; files are added to the &amp;lt;code&amp;gt;start_archive.nc&amp;lt;/code&amp;gt; file (which can contain multiple initial states, as long as they are on the same grid and correspond to different dates.&lt;br /&gt;
&lt;br /&gt;
=== newstart ===&lt;br /&gt;
A main program to:&lt;br /&gt;
* extract (and interpolate) &amp;lt;code&amp;gt;restart.nc&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;restartfi.nc&amp;lt;/code&amp;gt; files from a &amp;lt;code&amp;gt;start_archive.nc&amp;lt;/code&amp;gt; file or from a pair of &amp;lt;code&amp;gt;start.nc&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;startfi.nc&amp;lt;/code&amp;gt; files. The subtle difference between the two setup is that grid interpolation (horizontal and/or vertical) is only possible if using a &amp;lt;code&amp;gt;start_archive.nc&amp;lt;/code&amp;gt; input file&lt;br /&gt;
* modify values and fields contained in the initial condition file&lt;br /&gt;
* Compiling &amp;lt;code&amp;gt;newstart&amp;lt;/code&amp;gt; is done using the [[The makelmdz fcm GCM Compilation Script|makelmdz_fcm]] utility. The program is then meant to be run interactively with the user providing options and choices when prompted.&lt;br /&gt;
* Once the program has run and finished without error, it will generate &amp;lt;code&amp;gt;restart.nc&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;restartfi.nc&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== xvik ===&lt;br /&gt;
A post-processing utility to analyse the modeled CO2 cycle&lt;br /&gt;
&lt;br /&gt;
== testphys1d ==&lt;br /&gt;
More than a pre- or post-processing tool, this is a 1D (single column) version of the PCM. More about it is on the dedicated page: [[Mars 1D testphys1d program]].&lt;br /&gt;
&lt;br /&gt;
Note that there is also a separate &amp;quot;self-standing&amp;quot; 1D model, the &amp;quot;1D thermal model&amp;quot;, which can be downloaded from this page: [http://www-planets.lmd.jussieu.fr/ http://www-planets.lmd.jussieu.fr/]. This is essentially a frozen version of ''testphys1d'' with some additional tweaks to make it more user-friendly.&lt;br /&gt;
&lt;br /&gt;
== Visualizing the outputs ==&lt;br /&gt;
The GCM and most of the post-processing tools mentioned above produce NetCDF files, which one most likely will need to visualize.&lt;br /&gt;
There are a number of tools available (free or not). Here is a selection:&lt;br /&gt;
* Ncview is a very basic tool, mostly useful for a simple quick look.&lt;br /&gt;
* Panoply is a user-friendly tool for viewing NetCDF data, available here: https://www.giss.nasa.gov/tools/panoply/&lt;br /&gt;
* Ferret is another nice tool for viewing and processing NetCDF data, see their official page: https://ferret.pmel.noaa.gov/Ferret/ and also [[Some Ferret tips and pointers|this page]]&lt;br /&gt;
* Many also like to write up their own python scripts&lt;br /&gt;
&lt;br /&gt;
== Maniuplating NetCDF files with external tools ==&lt;br /&gt;
In addition to the programs that come with the Mars PCM distribution, there are many public tools available that provide more general capabilities.   Here are some selections that you may&lt;br /&gt;
find to be of value:&lt;br /&gt;
* NetCDF Operators (NCO):  This toolbox is a combination of compiled programs and scripts for manipulating NetCDF files, including regridding and interpolating.  This public domain tools was developed at the University of California - Irvine and appears to be actively maintained.  Find it (along with documentation) at the official site: https://nco.sourceforge.net.  A reasonable tutorial, though it is html based and a few years old (like playing an Atari console game), may be downloaded here:  https://www.hydroshare.org/resource/4b5a903a02e64b078d5a581a010f45a4/&lt;br /&gt;
&lt;br /&gt;
[[Category:Mars-Model]]&lt;br /&gt;
[[Category:Mars-1D]]&lt;/div&gt;</summary>
		<author><name>Mwolff</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Tool_Box_Mars_PCM&amp;diff=2436</id>
		<title>Tool Box Mars PCM</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Tool_Box_Mars_PCM&amp;diff=2436"/>
				<updated>2025-02-26T10:29:00Z</updated>
		
		<summary type="html">&lt;p&gt;Mwolff: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Post-processing tools provided with the Mars PCM ==&lt;br /&gt;
First and foremost there are a number of postprocessing utilities (self-standing tools) which can be found in the &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LMDZ.MARS/util&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
directory; you certainly want to first read the README file there.&lt;br /&gt;
&lt;br /&gt;
Current contents of this directory is:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
aeroptical.def     extract.F90          lslin.def        startarchive2icosa/&lt;br /&gt;
aeroptical.F90     extract.points.def   lslin.F90        streamfunction.F90&lt;br /&gt;
aeropt_mod.F90     extract.profile.def  README           xvik/&lt;br /&gt;
compile            hrecast.def          simu_MCS.def     zrecast.auto.def&lt;br /&gt;
concatnc.def       hrecast.F90          simu_MCS.F90     zrecast.F90&lt;br /&gt;
concatnc.F90       localtime.def        solzenangle.def  zrecast.manual.def&lt;br /&gt;
expandstartfi.F90  localtime.F90        solzenangle.F90&lt;br /&gt;
&amp;lt;/pre&amp;gt;  &lt;br /&gt;
the ''compile'' script is an example of how to compile any of the utilities, which you will have to adapt to your needs (mostly concerns setting the right path to the NetCDF library). All the post-processing tools are meant to be run interactively (asking the user for some instructions), hence the ''*.def'' files as it is most of the time more convenient (once one knows the tools and questions it will ask) to redirect this list of answers to the standard input of the tool, e.g.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
zrecast.e &amp;lt; zrecast.manual.def&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Main programs (other than GCM) but included in the Mars PCM package ==&lt;br /&gt;
There are a few other main programs that are included with the GCM. &lt;br /&gt;
&lt;br /&gt;
Advanced stuff: In practice these main programs are located under ''LMDZ.MARS/dynphy_lonlat/phymars/'' as they are at the interface between lon-lat dynamics and the Mars physics package (i.e. need to use both and thus can only be applied in that context).&lt;br /&gt;
&lt;br /&gt;
=== start2archive ===&lt;br /&gt;
A main program to collect multiple &amp;lt;code&amp;gt;start.nc&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;startfi.nc&amp;lt;/code&amp;gt; files from a series simulations and store them in a &amp;lt;code&amp;gt;start_archive.nc&amp;lt;/code&amp;gt; file. For this one simply needs to run the &amp;lt;code&amp;gt;startarchive&amp;lt;/code&amp;gt; program in the directory. It will automatically fetch code&amp;gt;start.nc&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;startfi.nc&amp;lt;/code&amp;gt; files and generate &amp;lt;code&amp;gt;start_archive.nc&amp;lt;/code&amp;gt;. If a &amp;lt;code&amp;gt;start_archive.nc&amp;lt;/code&amp;gt; file is already present then the current &amp;lt;code&amp;gt;start.nc&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;startfi.nc&amp;lt;/code&amp;gt; files are added to the &amp;lt;code&amp;gt;start_archive.nc&amp;lt;/code&amp;gt; file (which can contain multiple initial states, as long as they are on the same grid and correspond to different dates.&lt;br /&gt;
&lt;br /&gt;
=== newstart ===&lt;br /&gt;
A main program to:&lt;br /&gt;
* extract (and interpolate) &amp;lt;code&amp;gt;restart.nc&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;restartfi.nc&amp;lt;/code&amp;gt; files from a &amp;lt;code&amp;gt;start_archive.nc&amp;lt;/code&amp;gt; file or from a pair of &amp;lt;code&amp;gt;start.nc&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;startfi.nc&amp;lt;/code&amp;gt; files. The subtle difference between the two setup is that grid interpolation (horizontal and/or vertical) is only possible if using a &amp;lt;code&amp;gt;start_archive.nc&amp;lt;/code&amp;gt; input file&lt;br /&gt;
* modify values and fields contained in the initial condition file&lt;br /&gt;
* Compiling &amp;lt;code&amp;gt;newstart&amp;lt;/code&amp;gt; is done using the [[The makelmdz fcm GCM Compilation Script|makelmdz_fcm]] utility. The program is then meant to be run interactively with the user providing options and choices when prompted.&lt;br /&gt;
* Once the program has run and finished without error, it will generate &amp;lt;code&amp;gt;restart.nc&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;restartfi.nc&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== xvik ===&lt;br /&gt;
A post-processing utility to analyse the modeled CO2 cycle&lt;br /&gt;
&lt;br /&gt;
== testphys1d ==&lt;br /&gt;
More than a pre- or post-processing tool, this is a 1D (single column) version of the PCM. More about it is on the dedicated page: [[Mars 1D testphys1d program]].&lt;br /&gt;
&lt;br /&gt;
Note that there is also a separate &amp;quot;self-standing&amp;quot; 1D model, the &amp;quot;1D thermal model&amp;quot;, which can be downloaded from this page: [http://www-planets.lmd.jussieu.fr/ http://www-planets.lmd.jussieu.fr/]. This is essentially a frozen version of ''testphys1d'' with some additional tweaks to make it more user-friendly.&lt;br /&gt;
&lt;br /&gt;
== Visualizing the outputs ==&lt;br /&gt;
The GCM and most of the post-processing tools mentioned above produce NetCDF files, which one most likely will need to visualize.&lt;br /&gt;
There are a number of tools available (free or not). Here is a selection:&lt;br /&gt;
* Ncview is a very basic tool, mostly useful for a simple quick look.&lt;br /&gt;
* Panoply is a user-friendly tool for viewing NetCDF data, available here: https://www.giss.nasa.gov/tools/panoply/&lt;br /&gt;
* Ferret is another nice tool for viewing and processing NetCDF data, see their official page: https://ferret.pmel.noaa.gov/Ferret/ and also [[Some Ferret tips and pointers|this page]]&lt;br /&gt;
* Many also like to write up their own python scripts&lt;br /&gt;
&lt;br /&gt;
== Maniuplating NetCDF files with external tools ==&lt;br /&gt;
In addition to the programs that come with the Mars PCM distribution, there are many public tools available that provide more general capabilities.   Here are some selections that you may&lt;br /&gt;
find to be of value:&lt;br /&gt;
* NetCDF Operators (NCO):  This toolbox is a combination of compiled programs and scripts for manipulating NetCDF files, including regridding and interpolating.  This public domain tools was developed at the University of California - Irvine and appears to be actively maintained.  Find it (along with documentation) at the official site: https://nco.sourceforge.net.  A reasonable tutorial, though it is html based and a few years old (like playing an Atari console game), may be downloaded here:  https://www.hydroshare.org/resource/4b5a903a02e64b078d5a581a010f45a4/&lt;br /&gt;
&lt;br /&gt;
[[Category:Mars-Model]]&lt;br /&gt;
[[Category:Mars-1D]]&lt;br /&gt;
[[Category:NetCDF-tools]]&lt;/div&gt;</summary>
		<author><name>Mwolff</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Some_pointers_about_the_subversion_(svn)_tool&amp;diff=1733</id>
		<title>Some pointers about the subversion (svn) tool</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Some_pointers_about_the_subversion_(svn)_tool&amp;diff=1733"/>
				<updated>2023-11-01T11:18:27Z</updated>
		
		<summary type="html">&lt;p&gt;Mwolff: /* The subversion (a.k.a svn) tool */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== The subversion (a.k.a. svn) tool ==&lt;br /&gt;
The subversion (svn) tool is what is used to keep track of the various versions of the PCM source codes. This is quite similar to the also well-known git tool.  But we do not wish to have a religious debate.&lt;br /&gt;
&lt;br /&gt;
== Some useful svn commands ==&lt;br /&gt;
&lt;br /&gt;
==== svn checkout ====&lt;br /&gt;
A checkout is simply downloading the (latest version of) reference code from the svn repository and saving a local copy. e.g. to download the entire PCM repository (i.e. &amp;quot;trunk&amp;quot; directory and sub-directories):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn checkout https://svn.lmd.jussieu.fr/Planeto/trunk&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
You can add an argument to rename the directory &amp;quot;trunk&amp;quot; to whatever you want, e.g. &amp;quot;PCM_sources&amp;quot;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn checkout https://svn.lmd.jussieu.fr/Planeto/trunk PCM_sources&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Note that if you don't want to download the entire repository (likely the case if using only one of the PCMs) you can start by downloading an empty image of the &amp;quot;trunk&amp;quot;:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn checkout https://svn.lmd.jussieu.fr/Planeto/trunk --depth empty&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
And later use &amp;quot;svn update&amp;quot; in &amp;quot;trunk&amp;quot; to only update desired sub-directories.&lt;br /&gt;
&lt;br /&gt;
It is also possible to download a given revision of the trunk with &amp;quot;--revision ###&amp;quot; (where ### is the revision number), e.g. to download revision 1567:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn --revision 1567 checkout https://svn.lmd.jussieu.fr/Planeto/trunk&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== svn update ====&lt;br /&gt;
To update your working copy to the latest revision, in your &amp;quot;trunk&amp;quot; directory issue command:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn update&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Note that you can &amp;quot;update&amp;quot; to any revision number (including past ones) by specifying revision number, e.g. to update (or revert) to revision 2567:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn update --revision 2567&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== svn status ====&lt;br /&gt;
To know what files have been changes (with respect to your reference revision) or deleted or added in your distribution, use&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn status&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
which will return a list of files/directories changes. In practice each item of the list is prefixed by &amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; if the file is not versioned (i.e. not part of the svn repository), &amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt; if it is missing (whereas it exists in the repository) or &amp;lt;code&amp;gt;M&amp;lt;/code&amp;gt; if it is a modified version (i.e. you edited the file and made some changes to it, with respect to the reference) &lt;br /&gt;
&lt;br /&gt;
==== svn diff ====&lt;br /&gt;
This command generates a &amp;quot;diff&amp;quot; between your local changes and local reference version, without extra arguments:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn diff&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
The report will be for all files in current directory and sub-directories. One may add as a third argument the name of a given file to have only the diff concerning that file.&lt;br /&gt;
&lt;br /&gt;
==== svn revert ====&lt;br /&gt;
If you have modified (or even deleted) a versioned file but want it back to its original pristine version, rather than undo the changes manually you can simply invoke:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn revert thefileyouwantrestored&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== svn log ====&lt;br /&gt;
If you want to list all the revision messages (when one commits changes, one usually documents it with a short summary) use&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn log&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Note that this will give you all the messages (logs) since the beginning of the repository...&lt;br /&gt;
&lt;br /&gt;
If you know which revision number's log you want, you can specify it using &amp;lt;code&amp;gt;--revision ###&amp;lt;/code&amp;gt;. e.g. to list the log for revision 666 only:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn log --revision 666&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
And to list the latest log without specifying the revision number:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn log --revision HEAD&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== For experts: how to commit your changes ==&lt;br /&gt;
IMPORTANT: This only concerns you if you are included in the core team of developers with commit privileges.&lt;br /&gt;
&lt;br /&gt;
# You must be online (committing requires to connect and interact with the svn server)&lt;br /&gt;
# You must have made you changes on (svn) versioned code, and that it is up-to-date with the repository (&amp;quot;svn update&amp;quot; is your friend).&lt;br /&gt;
# It is recommended that you have set your ''SVN_EDITOR'' environment variable to point to your favorite text editor. For instance &amp;quot;vi&amp;quot;:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
declare -x SVN_EDITOR=vim&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now that things are ready for the commit (you might want to check one last time with &amp;quot;svn diff&amp;quot; that all your changes are in place and that you cleaned up any intermediate stuff), you can, in the directory where you made the changes, run the command:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn commit&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Note that if you want to only commit some files and not all those you modified in the current directory and subdirectories, you can can specify explicitely the paths&amp;amp;names of files to commit as extra arguments to &amp;quot;svn commit&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Once the &amp;quot;svn commit&amp;quot; command launched, your editor will open up, pre-filled with the differences in the code implied by your changes automatically inserted. All you need to do is fill in the first part of the message with comments about your changes (e.g. bug fix of ... , added feature as ..., code tidying, etc.). usually a few lines suffice. It is common practice to state in the first line of the commit which PCM is concerned (&amp;quot;Mars PCM&amp;quot;, &amp;quot;Generic PCM&amp;quot;, &amp;quot;Venus PCM&amp;quot;, ...) and to sign the commit with your initials. Once you have entered your message, just save the file and this will automatically trigger the commit.&lt;br /&gt;
&lt;br /&gt;
Once the commit triggered, you will need to specify you svn account login and password, at least the first time (svn can save and store these so that you don't need to enter them every time).&lt;br /&gt;
&lt;br /&gt;
== Some typical svn errors you may run into ==&lt;br /&gt;
If when trying t use an svn command you get a message of the likes of:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
svn: E155036: The working copy at ....&lt;br /&gt;
is too old (format 29) to work with client version '1.10.2 (r1835932)' (expects format 31). You need to upgrade the working copy first.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This simply means that your svn tool has been upgraded to a more recent version and that you need to upgrade your current repository to follow up. In order to do that simply do&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn upgrade&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
And then you can keep using svn as before.&lt;br /&gt;
&lt;br /&gt;
== Some example commands of potential use in preparing a commit ==&lt;br /&gt;
&lt;br /&gt;
=== Removing a file from the commit list using ''svn revert'' ===&lt;br /&gt;
&lt;br /&gt;
In order to see only the files that are part of the versioned archive, it may be convenient to request only those (see [https://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php/Some_pointers_about_the_subversion_(svn)_tool#svn_status svn status] tutorial above).  However, this may reveal files that you do not intend to commit.  The example here is from the LMD.MARS/util directory where one had modified three (versioned) files&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
%svn status -q&lt;br /&gt;
M       aeroptical.F90&lt;br /&gt;
M       compile&lt;br /&gt;
M       simu_MCS.F90&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;compile&amp;quot; file was modified to find the NETCDF library on the local machine, but we do not want to add this to the archive (and annoy Ehouarn).  So, we execute the command below which will replace the current version of compile with that of the current revision with which one is working. '''NOTE''' that if you need that version of the file, you should copy it to a different location or file name since it is replaced with a &amp;quot;fresh&amp;quot; copy.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
% svn revert compile&lt;br /&gt;
Reverted 'compile'&lt;br /&gt;
&lt;br /&gt;
% svn status -q&lt;br /&gt;
M       aeroptical.F90&lt;br /&gt;
M       simu_MCS.F90&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
And now one is ready to proceed to the next step of the commit.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:FAQ]]&lt;/div&gt;</summary>
		<author><name>Mwolff</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Some_pointers_about_the_subversion_(svn)_tool&amp;diff=1732</id>
		<title>Some pointers about the subversion (svn) tool</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Some_pointers_about_the_subversion_(svn)_tool&amp;diff=1732"/>
				<updated>2023-11-01T11:16:47Z</updated>
		
		<summary type="html">&lt;p&gt;Mwolff: /* Some example commands potentially useful in preparing a commit */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== The subversion (a.k.a svn) tool ==&lt;br /&gt;
The subversion (svn) tool is what is used to keep track of the various versions of the PCM source codes. Quite similar to the also well known git tool.&lt;br /&gt;
&lt;br /&gt;
== Some useful svn commands ==&lt;br /&gt;
&lt;br /&gt;
==== svn checkout ====&lt;br /&gt;
A checkout is simply downloading the (latest version of) reference code from the svn repository and saving a local copy. e.g. to download the entire PCM repository (i.e. &amp;quot;trunk&amp;quot; directory and sub-directories):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn checkout https://svn.lmd.jussieu.fr/Planeto/trunk&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
You can add an argument to rename the directory &amp;quot;trunk&amp;quot; to whatever you want, e.g. &amp;quot;PCM_sources&amp;quot;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn checkout https://svn.lmd.jussieu.fr/Planeto/trunk PCM_sources&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Note that if you don't want to download the entire repository (likely the case if using only one of the PCMs) you can start by downloading an empty image of the &amp;quot;trunk&amp;quot;:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn checkout https://svn.lmd.jussieu.fr/Planeto/trunk --depth empty&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
And later use &amp;quot;svn update&amp;quot; in &amp;quot;trunk&amp;quot; to only update desired sub-directories.&lt;br /&gt;
&lt;br /&gt;
It is also possible to download a given revision of the trunk with &amp;quot;--revision ###&amp;quot; (where ### is the revision number), e.g. to download revision 1567:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn --revision 1567 checkout https://svn.lmd.jussieu.fr/Planeto/trunk&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== svn update ====&lt;br /&gt;
To update your working copy to the latest revision, in your &amp;quot;trunk&amp;quot; directory issue command:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn update&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Note that you can &amp;quot;update&amp;quot; to any revision number (including past ones) by specifying revision number, e.g. to update (or revert) to revision 2567:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn update --revision 2567&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== svn status ====&lt;br /&gt;
To know what files have been changes (with respect to your reference revision) or deleted or added in your distribution, use&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn status&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
which will return a list of files/directories changes. In practice each item of the list is prefixed by &amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; if the file is not versioned (i.e. not part of the svn repository), &amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt; if it is missing (whereas it exists in the repository) or &amp;lt;code&amp;gt;M&amp;lt;/code&amp;gt; if it is a modified version (i.e. you edited the file and made some changes to it, with respect to the reference) &lt;br /&gt;
&lt;br /&gt;
==== svn diff ====&lt;br /&gt;
This command generates a &amp;quot;diff&amp;quot; between your local changes and local reference version, without extra arguments:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn diff&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
The report will be for all files in current directory and sub-directories. One may add as a third argument the name of a given file to have only the diff concerning that file.&lt;br /&gt;
&lt;br /&gt;
==== svn revert ====&lt;br /&gt;
If you have modified (or even deleted) a versioned file but want it back to its original pristine version, rather than undo the changes manually you can simply invoke:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn revert thefileyouwantrestored&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== svn log ====&lt;br /&gt;
If you want to list all the revision messages (when one commits changes, one usually documents it with a short summary) use&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn log&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Note that this will give you all the messages (logs) since the beginning of the repository...&lt;br /&gt;
&lt;br /&gt;
If you know which revision number's log you want, you can specify it using &amp;lt;code&amp;gt;--revision ###&amp;lt;/code&amp;gt;. e.g. to list the log for revision 666 only:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn log --revision 666&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
And to list the latest log without specifying the revision number:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn log --revision HEAD&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== For experts: how to commit your changes ==&lt;br /&gt;
IMPORTANT: This only concerns you if you are included in the core team of developers with commit privileges.&lt;br /&gt;
&lt;br /&gt;
# You must be online (committing requires to connect and interact with the svn server)&lt;br /&gt;
# You must have made you changes on (svn) versioned code, and that it is up-to-date with the repository (&amp;quot;svn update&amp;quot; is your friend).&lt;br /&gt;
# It is recommended that you have set your ''SVN_EDITOR'' environment variable to point to your favorite text editor. For instance &amp;quot;vi&amp;quot;:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
declare -x SVN_EDITOR=vim&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now that things are ready for the commit (you might want to check one last time with &amp;quot;svn diff&amp;quot; that all your changes are in place and that you cleaned up any intermediate stuff), you can, in the directory where you made the changes, run the command:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn commit&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Note that if you want to only commit some files and not all those you modified in the current directory and subdirectories, you can can specify explicitely the paths&amp;amp;names of files to commit as extra arguments to &amp;quot;svn commit&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Once the &amp;quot;svn commit&amp;quot; command launched, your editor will open up, pre-filled with the differences in the code implied by your changes automatically inserted. All you need to do is fill in the first part of the message with comments about your changes (e.g. bug fix of ... , added feature as ..., code tidying, etc.). usually a few lines suffice. It is common practice to state in the first line of the commit which PCM is concerned (&amp;quot;Mars PCM&amp;quot;, &amp;quot;Generic PCM&amp;quot;, &amp;quot;Venus PCM&amp;quot;, ...) and to sign the commit with your initials. Once you have entered your message, just save the file and this will automatically trigger the commit.&lt;br /&gt;
&lt;br /&gt;
Once the commit triggered, you will need to specify you svn account login and password, at least the first time (svn can save and store these so that you don't need to enter them every time).&lt;br /&gt;
&lt;br /&gt;
== Some typical svn errors you may run into ==&lt;br /&gt;
If when trying t use an svn command you get a message of the likes of:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
svn: E155036: The working copy at ....&lt;br /&gt;
is too old (format 29) to work with client version '1.10.2 (r1835932)' (expects format 31). You need to upgrade the working copy first.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This simply means that your svn tool has been upgraded to a more recent version and that you need to upgrade your current repository to follow up. In order to do that simply do&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn upgrade&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
And then you can keep using svn as before.&lt;br /&gt;
&lt;br /&gt;
== Some example commands of potential use in preparing a commit ==&lt;br /&gt;
&lt;br /&gt;
=== Removing a file from the commit list using ''svn revert'' ===&lt;br /&gt;
&lt;br /&gt;
In order to see only the files that are part of the versioned archive, it may be convenient to request only those (see [https://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php/Some_pointers_about_the_subversion_(svn)_tool#svn_status svn status] tutorial above).  However, this may reveal files that you do not intend to commit.  The example here is from the LMD.MARS/util directory where one had modified three (versioned) files&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
%svn status -q&lt;br /&gt;
M       aeroptical.F90&lt;br /&gt;
M       compile&lt;br /&gt;
M       simu_MCS.F90&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;compile&amp;quot; file was modified to find the NETCDF library on the local machine, but we do not want to add this to the archive (and annoy Ehouarn).  So, we execute the command below which will replace the current version of compile with that of the current revision with which one is working. '''NOTE''' that if you need that version of the file, you should copy it to a different location or file name since it is replaced with a &amp;quot;fresh&amp;quot; copy.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
% svn revert compile&lt;br /&gt;
Reverted 'compile'&lt;br /&gt;
&lt;br /&gt;
% svn status -q&lt;br /&gt;
M       aeroptical.F90&lt;br /&gt;
M       simu_MCS.F90&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
And now one is ready to proceed to the next step of the commit.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:FAQ]]&lt;/div&gt;</summary>
		<author><name>Mwolff</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Some_pointers_about_the_subversion_(svn)_tool&amp;diff=1731</id>
		<title>Some pointers about the subversion (svn) tool</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Some_pointers_about_the_subversion_(svn)_tool&amp;diff=1731"/>
				<updated>2023-11-01T11:15:42Z</updated>
		
		<summary type="html">&lt;p&gt;Mwolff: /* Removing a file from the commit list using svn revert */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== The subversion (a.k.a svn) tool ==&lt;br /&gt;
The subversion (svn) tool is what is used to keep track of the various versions of the PCM source codes. Quite similar to the also well known git tool.&lt;br /&gt;
&lt;br /&gt;
== Some useful svn commands ==&lt;br /&gt;
&lt;br /&gt;
==== svn checkout ====&lt;br /&gt;
A checkout is simply downloading the (latest version of) reference code from the svn repository and saving a local copy. e.g. to download the entire PCM repository (i.e. &amp;quot;trunk&amp;quot; directory and sub-directories):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn checkout https://svn.lmd.jussieu.fr/Planeto/trunk&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
You can add an argument to rename the directory &amp;quot;trunk&amp;quot; to whatever you want, e.g. &amp;quot;PCM_sources&amp;quot;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn checkout https://svn.lmd.jussieu.fr/Planeto/trunk PCM_sources&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Note that if you don't want to download the entire repository (likely the case if using only one of the PCMs) you can start by downloading an empty image of the &amp;quot;trunk&amp;quot;:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn checkout https://svn.lmd.jussieu.fr/Planeto/trunk --depth empty&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
And later use &amp;quot;svn update&amp;quot; in &amp;quot;trunk&amp;quot; to only update desired sub-directories.&lt;br /&gt;
&lt;br /&gt;
It is also possible to download a given revision of the trunk with &amp;quot;--revision ###&amp;quot; (where ### is the revision number), e.g. to download revision 1567:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn --revision 1567 checkout https://svn.lmd.jussieu.fr/Planeto/trunk&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== svn update ====&lt;br /&gt;
To update your working copy to the latest revision, in your &amp;quot;trunk&amp;quot; directory issue command:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn update&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Note that you can &amp;quot;update&amp;quot; to any revision number (including past ones) by specifying revision number, e.g. to update (or revert) to revision 2567:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn update --revision 2567&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== svn status ====&lt;br /&gt;
To know what files have been changes (with respect to your reference revision) or deleted or added in your distribution, use&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn status&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
which will return a list of files/directories changes. In practice each item of the list is prefixed by &amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; if the file is not versioned (i.e. not part of the svn repository), &amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt; if it is missing (whereas it exists in the repository) or &amp;lt;code&amp;gt;M&amp;lt;/code&amp;gt; if it is a modified version (i.e. you edited the file and made some changes to it, with respect to the reference) &lt;br /&gt;
&lt;br /&gt;
==== svn diff ====&lt;br /&gt;
This command generates a &amp;quot;diff&amp;quot; between your local changes and local reference version, without extra arguments:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn diff&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
The report will be for all files in current directory and sub-directories. One may add as a third argument the name of a given file to have only the diff concerning that file.&lt;br /&gt;
&lt;br /&gt;
==== svn revert ====&lt;br /&gt;
If you have modified (or even deleted) a versioned file but want it back to its original pristine version, rather than undo the changes manually you can simply invoke:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn revert thefileyouwantrestored&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== svn log ====&lt;br /&gt;
If you want to list all the revision messages (when one commits changes, one usually documents it with a short summary) use&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn log&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Note that this will give you all the messages (logs) since the beginning of the repository...&lt;br /&gt;
&lt;br /&gt;
If you know which revision number's log you want, you can specify it using &amp;lt;code&amp;gt;--revision ###&amp;lt;/code&amp;gt;. e.g. to list the log for revision 666 only:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn log --revision 666&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
And to list the latest log without specifying the revision number:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn log --revision HEAD&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== For experts: how to commit your changes ==&lt;br /&gt;
IMPORTANT: This only concerns you if you are included in the core team of developers with commit privileges.&lt;br /&gt;
&lt;br /&gt;
# You must be online (committing requires to connect and interact with the svn server)&lt;br /&gt;
# You must have made you changes on (svn) versioned code, and that it is up-to-date with the repository (&amp;quot;svn update&amp;quot; is your friend).&lt;br /&gt;
# It is recommended that you have set your ''SVN_EDITOR'' environment variable to point to your favorite text editor. For instance &amp;quot;vi&amp;quot;:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
declare -x SVN_EDITOR=vim&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now that things are ready for the commit (you might want to check one last time with &amp;quot;svn diff&amp;quot; that all your changes are in place and that you cleaned up any intermediate stuff), you can, in the directory where you made the changes, run the command:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn commit&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Note that if you want to only commit some files and not all those you modified in the current directory and subdirectories, you can can specify explicitely the paths&amp;amp;names of files to commit as extra arguments to &amp;quot;svn commit&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Once the &amp;quot;svn commit&amp;quot; command launched, your editor will open up, pre-filled with the differences in the code implied by your changes automatically inserted. All you need to do is fill in the first part of the message with comments about your changes (e.g. bug fix of ... , added feature as ..., code tidying, etc.). usually a few lines suffice. It is common practice to state in the first line of the commit which PCM is concerned (&amp;quot;Mars PCM&amp;quot;, &amp;quot;Generic PCM&amp;quot;, &amp;quot;Venus PCM&amp;quot;, ...) and to sign the commit with your initials. Once you have entered your message, just save the file and this will automatically trigger the commit.&lt;br /&gt;
&lt;br /&gt;
Once the commit triggered, you will need to specify you svn account login and password, at least the first time (svn can save and store these so that you don't need to enter them every time).&lt;br /&gt;
&lt;br /&gt;
== Some typical svn errors you may run into ==&lt;br /&gt;
If when trying t use an svn command you get a message of the likes of:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
svn: E155036: The working copy at ....&lt;br /&gt;
is too old (format 29) to work with client version '1.10.2 (r1835932)' (expects format 31). You need to upgrade the working copy first.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This simply means that your svn tool has been upgraded to a more recent version and that you need to upgrade your current repository to follow up. In order to do that simply do&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn upgrade&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
And then you can keep using svn as before.&lt;br /&gt;
&lt;br /&gt;
== Some example commands potentially useful in preparing a commit ==&lt;br /&gt;
&lt;br /&gt;
=== Removing a file from the commit list using ''svn revert'' ===&lt;br /&gt;
&lt;br /&gt;
In order to see only the files that are part of the versioned archive, it may be convenient to request only those (see [https://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php/Some_pointers_about_the_subversion_(svn)_tool#svn_status svn status] tutorial above).  However, this may reveal files that you do not intend to commit.  The example here is from the LMD.MARS/util directory where one had modified three (versioned) files&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
%svn status -q&lt;br /&gt;
M       aeroptical.F90&lt;br /&gt;
M       compile&lt;br /&gt;
M       simu_MCS.F90&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;compile&amp;quot; file was modified to find the NETCDF library on the local machine, but we do not want to add this to the archive (and annoy Ehouarn).  So, we execute the command below which will replace the current version of compile with that of the current revision with which one is working. '''NOTE''' that if you need that version of the file, you should copy it to a different location or file name since it is replaced with a &amp;quot;fresh&amp;quot; copy.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
% svn revert compile&lt;br /&gt;
Reverted 'compile'&lt;br /&gt;
&lt;br /&gt;
% svn status -q&lt;br /&gt;
M       aeroptical.F90&lt;br /&gt;
M       simu_MCS.F90&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
And now one is ready to proceed to the next step of the commit.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:FAQ]]&lt;/div&gt;</summary>
		<author><name>Mwolff</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Some_pointers_about_the_subversion_(svn)_tool&amp;diff=1730</id>
		<title>Some pointers about the subversion (svn) tool</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Some_pointers_about_the_subversion_(svn)_tool&amp;diff=1730"/>
				<updated>2023-11-01T11:11:49Z</updated>
		
		<summary type="html">&lt;p&gt;Mwolff: /* Removing a file from the commit list using svn revert */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== The subversion (a.k.a svn) tool ==&lt;br /&gt;
The subversion (svn) tool is what is used to keep track of the various versions of the PCM source codes. Quite similar to the also well known git tool.&lt;br /&gt;
&lt;br /&gt;
== Some useful svn commands ==&lt;br /&gt;
&lt;br /&gt;
==== svn checkout ====&lt;br /&gt;
A checkout is simply downloading the (latest version of) reference code from the svn repository and saving a local copy. e.g. to download the entire PCM repository (i.e. &amp;quot;trunk&amp;quot; directory and sub-directories):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn checkout https://svn.lmd.jussieu.fr/Planeto/trunk&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
You can add an argument to rename the directory &amp;quot;trunk&amp;quot; to whatever you want, e.g. &amp;quot;PCM_sources&amp;quot;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn checkout https://svn.lmd.jussieu.fr/Planeto/trunk PCM_sources&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Note that if you don't want to download the entire repository (likely the case if using only one of the PCMs) you can start by downloading an empty image of the &amp;quot;trunk&amp;quot;:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn checkout https://svn.lmd.jussieu.fr/Planeto/trunk --depth empty&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
And later use &amp;quot;svn update&amp;quot; in &amp;quot;trunk&amp;quot; to only update desired sub-directories.&lt;br /&gt;
&lt;br /&gt;
It is also possible to download a given revision of the trunk with &amp;quot;--revision ###&amp;quot; (where ### is the revision number), e.g. to download revision 1567:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn --revision 1567 checkout https://svn.lmd.jussieu.fr/Planeto/trunk&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== svn update ====&lt;br /&gt;
To update your working copy to the latest revision, in your &amp;quot;trunk&amp;quot; directory issue command:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn update&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Note that you can &amp;quot;update&amp;quot; to any revision number (including past ones) by specifying revision number, e.g. to update (or revert) to revision 2567:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn update --revision 2567&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== svn status ====&lt;br /&gt;
To know what files have been changes (with respect to your reference revision) or deleted or added in your distribution, use&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn status&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
which will return a list of files/directories changes. In practice each item of the list is prefixed by &amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; if the file is not versioned (i.e. not part of the svn repository), &amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt; if it is missing (whereas it exists in the repository) or &amp;lt;code&amp;gt;M&amp;lt;/code&amp;gt; if it is a modified version (i.e. you edited the file and made some changes to it, with respect to the reference) &lt;br /&gt;
&lt;br /&gt;
==== svn diff ====&lt;br /&gt;
This command generates a &amp;quot;diff&amp;quot; between your local changes and local reference version, without extra arguments:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn diff&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
The report will be for all files in current directory and sub-directories. One may add as a third argument the name of a given file to have only the diff concerning that file.&lt;br /&gt;
&lt;br /&gt;
==== svn revert ====&lt;br /&gt;
If you have modified (or even deleted) a versioned file but want it back to its original pristine version, rather than undo the changes manually you can simply invoke:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn revert thefileyouwantrestored&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== svn log ====&lt;br /&gt;
If you want to list all the revision messages (when one commits changes, one usually documents it with a short summary) use&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn log&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Note that this will give you all the messages (logs) since the beginning of the repository...&lt;br /&gt;
&lt;br /&gt;
If you know which revision number's log you want, you can specify it using &amp;lt;code&amp;gt;--revision ###&amp;lt;/code&amp;gt;. e.g. to list the log for revision 666 only:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn log --revision 666&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
And to list the latest log without specifying the revision number:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn log --revision HEAD&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== For experts: how to commit your changes ==&lt;br /&gt;
IMPORTANT: This only concerns you if you are included in the core team of developers with commit privileges.&lt;br /&gt;
&lt;br /&gt;
# You must be online (committing requires to connect and interact with the svn server)&lt;br /&gt;
# You must have made you changes on (svn) versioned code, and that it is up-to-date with the repository (&amp;quot;svn update&amp;quot; is your friend).&lt;br /&gt;
# It is recommended that you have set your ''SVN_EDITOR'' environment variable to point to your favorite text editor. For instance &amp;quot;vi&amp;quot;:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
declare -x SVN_EDITOR=vim&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now that things are ready for the commit (you might want to check one last time with &amp;quot;svn diff&amp;quot; that all your changes are in place and that you cleaned up any intermediate stuff), you can, in the directory where you made the changes, run the command:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn commit&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Note that if you want to only commit some files and not all those you modified in the current directory and subdirectories, you can can specify explicitely the paths&amp;amp;names of files to commit as extra arguments to &amp;quot;svn commit&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Once the &amp;quot;svn commit&amp;quot; command launched, your editor will open up, pre-filled with the differences in the code implied by your changes automatically inserted. All you need to do is fill in the first part of the message with comments about your changes (e.g. bug fix of ... , added feature as ..., code tidying, etc.). usually a few lines suffice. It is common practice to state in the first line of the commit which PCM is concerned (&amp;quot;Mars PCM&amp;quot;, &amp;quot;Generic PCM&amp;quot;, &amp;quot;Venus PCM&amp;quot;, ...) and to sign the commit with your initials. Once you have entered your message, just save the file and this will automatically trigger the commit.&lt;br /&gt;
&lt;br /&gt;
Once the commit triggered, you will need to specify you svn account login and password, at least the first time (svn can save and store these so that you don't need to enter them every time).&lt;br /&gt;
&lt;br /&gt;
== Some typical svn errors you may run into ==&lt;br /&gt;
If when trying t use an svn command you get a message of the likes of:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
svn: E155036: The working copy at ....&lt;br /&gt;
is too old (format 29) to work with client version '1.10.2 (r1835932)' (expects format 31). You need to upgrade the working copy first.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This simply means that your svn tool has been upgraded to a more recent version and that you need to upgrade your current repository to follow up. In order to do that simply do&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn upgrade&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
And then you can keep using svn as before.&lt;br /&gt;
&lt;br /&gt;
== Some example commands potentially useful in preparing a commit ==&lt;br /&gt;
&lt;br /&gt;
=== Removing a file from the commit list using ''svn revert'' ===&lt;br /&gt;
&lt;br /&gt;
In order to see only the files that are part of the versioned archive, it may be convenient to request only those (see [https://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php/Some_pointers_about_the_subversion_(svn)_tool#svn_status svn status] tutorial above).  However, this may reveal files that you do not intend to commit.  The example here is from the LMD.MARS/util directory where one had modified three (versioned) files&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
%svn status -q&lt;br /&gt;
M       aeroptical.F90&lt;br /&gt;
M       compile&lt;br /&gt;
M       simu_MCS.F90&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;compile&amp;quot; file was modified to find the NETCDF library on the local machine, but we do not want to add this to the archive (and annoy Ehouarn).  So, we execute the command below which will replace the current version of compile with that of the current revision with which one is working. '''NOTE''' that if you need that version of the file, you should copy it to a different location or file name since it is replaced with a &amp;quot;fresh&amp;quot; copy.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
% svn revert compile&lt;br /&gt;
Reverted 'compile'&lt;br /&gt;
&lt;br /&gt;
% svn status -q&lt;br /&gt;
M       aeroptical.F90&lt;br /&gt;
M       simu_MCS.F90&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
And now one is ready to proceed to the next step of the commit.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:FAQ]]&lt;/div&gt;</summary>
		<author><name>Mwolff</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Some_pointers_about_the_subversion_(svn)_tool&amp;diff=1729</id>
		<title>Some pointers about the subversion (svn) tool</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Some_pointers_about_the_subversion_(svn)_tool&amp;diff=1729"/>
				<updated>2023-11-01T11:09:32Z</updated>
		
		<summary type="html">&lt;p&gt;Mwolff: /* Removing a file from the commit list using svn revert */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== The subversion (a.k.a svn) tool ==&lt;br /&gt;
The subversion (svn) tool is what is used to keep track of the various versions of the PCM source codes. Quite similar to the also well known git tool.&lt;br /&gt;
&lt;br /&gt;
== Some useful svn commands ==&lt;br /&gt;
&lt;br /&gt;
==== svn checkout ====&lt;br /&gt;
A checkout is simply downloading the (latest version of) reference code from the svn repository and saving a local copy. e.g. to download the entire PCM repository (i.e. &amp;quot;trunk&amp;quot; directory and sub-directories):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn checkout https://svn.lmd.jussieu.fr/Planeto/trunk&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
You can add an argument to rename the directory &amp;quot;trunk&amp;quot; to whatever you want, e.g. &amp;quot;PCM_sources&amp;quot;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn checkout https://svn.lmd.jussieu.fr/Planeto/trunk PCM_sources&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Note that if you don't want to download the entire repository (likely the case if using only one of the PCMs) you can start by downloading an empty image of the &amp;quot;trunk&amp;quot;:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn checkout https://svn.lmd.jussieu.fr/Planeto/trunk --depth empty&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
And later use &amp;quot;svn update&amp;quot; in &amp;quot;trunk&amp;quot; to only update desired sub-directories.&lt;br /&gt;
&lt;br /&gt;
It is also possible to download a given revision of the trunk with &amp;quot;--revision ###&amp;quot; (where ### is the revision number), e.g. to download revision 1567:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn --revision 1567 checkout https://svn.lmd.jussieu.fr/Planeto/trunk&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== svn update ====&lt;br /&gt;
To update your working copy to the latest revision, in your &amp;quot;trunk&amp;quot; directory issue command:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn update&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Note that you can &amp;quot;update&amp;quot; to any revision number (including past ones) by specifying revision number, e.g. to update (or revert) to revision 2567:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn update --revision 2567&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== svn status ====&lt;br /&gt;
To know what files have been changes (with respect to your reference revision) or deleted or added in your distribution, use&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn status&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
which will return a list of files/directories changes. In practice each item of the list is prefixed by &amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; if the file is not versioned (i.e. not part of the svn repository), &amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt; if it is missing (whereas it exists in the repository) or &amp;lt;code&amp;gt;M&amp;lt;/code&amp;gt; if it is a modified version (i.e. you edited the file and made some changes to it, with respect to the reference) &lt;br /&gt;
&lt;br /&gt;
==== svn diff ====&lt;br /&gt;
This command generates a &amp;quot;diff&amp;quot; between your local changes and local reference version, without extra arguments:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn diff&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
The report will be for all files in current directory and sub-directories. One may add as a third argument the name of a given file to have only the diff concerning that file.&lt;br /&gt;
&lt;br /&gt;
==== svn revert ====&lt;br /&gt;
If you have modified (or even deleted) a versioned file but want it back to its original pristine version, rather than undo the changes manually you can simply invoke:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn revert thefileyouwantrestored&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== svn log ====&lt;br /&gt;
If you want to list all the revision messages (when one commits changes, one usually documents it with a short summary) use&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn log&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Note that this will give you all the messages (logs) since the beginning of the repository...&lt;br /&gt;
&lt;br /&gt;
If you know which revision number's log you want, you can specify it using &amp;lt;code&amp;gt;--revision ###&amp;lt;/code&amp;gt;. e.g. to list the log for revision 666 only:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn log --revision 666&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
And to list the latest log without specifying the revision number:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn log --revision HEAD&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== For experts: how to commit your changes ==&lt;br /&gt;
IMPORTANT: This only concerns you if you are included in the core team of developers with commit privileges.&lt;br /&gt;
&lt;br /&gt;
# You must be online (committing requires to connect and interact with the svn server)&lt;br /&gt;
# You must have made you changes on (svn) versioned code, and that it is up-to-date with the repository (&amp;quot;svn update&amp;quot; is your friend).&lt;br /&gt;
# It is recommended that you have set your ''SVN_EDITOR'' environment variable to point to your favorite text editor. For instance &amp;quot;vi&amp;quot;:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
declare -x SVN_EDITOR=vim&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now that things are ready for the commit (you might want to check one last time with &amp;quot;svn diff&amp;quot; that all your changes are in place and that you cleaned up any intermediate stuff), you can, in the directory where you made the changes, run the command:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn commit&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Note that if you want to only commit some files and not all those you modified in the current directory and subdirectories, you can can specify explicitely the paths&amp;amp;names of files to commit as extra arguments to &amp;quot;svn commit&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Once the &amp;quot;svn commit&amp;quot; command launched, your editor will open up, pre-filled with the differences in the code implied by your changes automatically inserted. All you need to do is fill in the first part of the message with comments about your changes (e.g. bug fix of ... , added feature as ..., code tidying, etc.). usually a few lines suffice. It is common practice to state in the first line of the commit which PCM is concerned (&amp;quot;Mars PCM&amp;quot;, &amp;quot;Generic PCM&amp;quot;, &amp;quot;Venus PCM&amp;quot;, ...) and to sign the commit with your initials. Once you have entered your message, just save the file and this will automatically trigger the commit.&lt;br /&gt;
&lt;br /&gt;
Once the commit triggered, you will need to specify you svn account login and password, at least the first time (svn can save and store these so that you don't need to enter them every time).&lt;br /&gt;
&lt;br /&gt;
== Some typical svn errors you may run into ==&lt;br /&gt;
If when trying t use an svn command you get a message of the likes of:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
svn: E155036: The working copy at ....&lt;br /&gt;
is too old (format 29) to work with client version '1.10.2 (r1835932)' (expects format 31). You need to upgrade the working copy first.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This simply means that your svn tool has been upgraded to a more recent version and that you need to upgrade your current repository to follow up. In order to do that simply do&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn upgrade&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
And then you can keep using svn as before.&lt;br /&gt;
&lt;br /&gt;
== Some example commands potentially useful in preparing a commit ==&lt;br /&gt;
&lt;br /&gt;
=== Removing a file from the commit list using ''svn revert'' ===&lt;br /&gt;
&lt;br /&gt;
In order to see only the files that are part of the versioned archive, it may be convenient to request only those (see [https://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php/Some_pointers_about_the_subversion_(svn)_tool#svn_status svn status] tutorial above).  However, this may reveal files that you do not intend to commit.  The example here is from the LMD.MARS/util directory where one had modified three (versioned) files&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
%svn status -q&lt;br /&gt;
M       aeroptical.F90&lt;br /&gt;
M       compile&lt;br /&gt;
M       simu_MCS.F90&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;compile&amp;quot; file was modified to find the NETCDF library on the local machine, but we do not want to add this to the archive (and annoy Ehouarn).  So, we execute the command below which will replace the current version of compile with that of the current revision with which one is working. '''NOTE''' that if you need that version of the file, you should copy it to a different location or file name since it is replaced with a &amp;quot;fresh&amp;quot; copy.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
% svn revert compile&lt;br /&gt;
Reverted 'compile'&lt;br /&gt;
&lt;br /&gt;
% svn status -q&lt;br /&gt;
M       aeroptical.F90&lt;br /&gt;
M       simu_MCS.F90&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
And now one is ready to proceed to the next step of the commit.&lt;br /&gt;
&lt;br /&gt;
[[svn_status test]]&lt;br /&gt;
&lt;br /&gt;
[[Category:FAQ]]&lt;/div&gt;</summary>
		<author><name>Mwolff</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Some_pointers_about_the_subversion_(svn)_tool&amp;diff=1728</id>
		<title>Some pointers about the subversion (svn) tool</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Some_pointers_about_the_subversion_(svn)_tool&amp;diff=1728"/>
				<updated>2023-11-01T11:06:36Z</updated>
		
		<summary type="html">&lt;p&gt;Mwolff: /* Some other useful commands in preparing a commit */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== The subversion (a.k.a svn) tool ==&lt;br /&gt;
The subversion (svn) tool is what is used to keep track of the various versions of the PCM source codes. Quite similar to the also well known git tool.&lt;br /&gt;
&lt;br /&gt;
== Some useful svn commands ==&lt;br /&gt;
&lt;br /&gt;
==== svn checkout ====&lt;br /&gt;
A checkout is simply downloading the (latest version of) reference code from the svn repository and saving a local copy. e.g. to download the entire PCM repository (i.e. &amp;quot;trunk&amp;quot; directory and sub-directories):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn checkout https://svn.lmd.jussieu.fr/Planeto/trunk&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
You can add an argument to rename the directory &amp;quot;trunk&amp;quot; to whatever you want, e.g. &amp;quot;PCM_sources&amp;quot;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn checkout https://svn.lmd.jussieu.fr/Planeto/trunk PCM_sources&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Note that if you don't want to download the entire repository (likely the case if using only one of the PCMs) you can start by downloading an empty image of the &amp;quot;trunk&amp;quot;:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn checkout https://svn.lmd.jussieu.fr/Planeto/trunk --depth empty&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
And later use &amp;quot;svn update&amp;quot; in &amp;quot;trunk&amp;quot; to only update desired sub-directories.&lt;br /&gt;
&lt;br /&gt;
It is also possible to download a given revision of the trunk with &amp;quot;--revision ###&amp;quot; (where ### is the revision number), e.g. to download revision 1567:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn --revision 1567 checkout https://svn.lmd.jussieu.fr/Planeto/trunk&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== svn update ====&lt;br /&gt;
To update your working copy to the latest revision, in your &amp;quot;trunk&amp;quot; directory issue command:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn update&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Note that you can &amp;quot;update&amp;quot; to any revision number (including past ones) by specifying revision number, e.g. to update (or revert) to revision 2567:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn update --revision 2567&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== svn status ====&lt;br /&gt;
To know what files have been changes (with respect to your reference revision) or deleted or added in your distribution, use&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn status&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
which will return a list of files/directories changes. In practice each item of the list is prefixed by &amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; if the file is not versioned (i.e. not part of the svn repository), &amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt; if it is missing (whereas it exists in the repository) or &amp;lt;code&amp;gt;M&amp;lt;/code&amp;gt; if it is a modified version (i.e. you edited the file and made some changes to it, with respect to the reference) &lt;br /&gt;
&lt;br /&gt;
==== svn diff ====&lt;br /&gt;
This command generates a &amp;quot;diff&amp;quot; between your local changes and local reference version, without extra arguments:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn diff&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
The report will be for all files in current directory and sub-directories. One may add as a third argument the name of a given file to have only the diff concerning that file.&lt;br /&gt;
&lt;br /&gt;
==== svn revert ====&lt;br /&gt;
If you have modified (or even deleted) a versioned file but want it back to its original pristine version, rather than undo the changes manually you can simply invoke:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn revert thefileyouwantrestored&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== svn log ====&lt;br /&gt;
If you want to list all the revision messages (when one commits changes, one usually documents it with a short summary) use&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn log&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Note that this will give you all the messages (logs) since the beginning of the repository...&lt;br /&gt;
&lt;br /&gt;
If you know which revision number's log you want, you can specify it using &amp;lt;code&amp;gt;--revision ###&amp;lt;/code&amp;gt;. e.g. to list the log for revision 666 only:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn log --revision 666&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
And to list the latest log without specifying the revision number:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn log --revision HEAD&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== For experts: how to commit your changes ==&lt;br /&gt;
IMPORTANT: This only concerns you if you are included in the core team of developers with commit privileges.&lt;br /&gt;
&lt;br /&gt;
# You must be online (committing requires to connect and interact with the svn server)&lt;br /&gt;
# You must have made you changes on (svn) versioned code, and that it is up-to-date with the repository (&amp;quot;svn update&amp;quot; is your friend).&lt;br /&gt;
# It is recommended that you have set your ''SVN_EDITOR'' environment variable to point to your favorite text editor. For instance &amp;quot;vi&amp;quot;:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
declare -x SVN_EDITOR=vim&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now that things are ready for the commit (you might want to check one last time with &amp;quot;svn diff&amp;quot; that all your changes are in place and that you cleaned up any intermediate stuff), you can, in the directory where you made the changes, run the command:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn commit&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Note that if you want to only commit some files and not all those you modified in the current directory and subdirectories, you can can specify explicitely the paths&amp;amp;names of files to commit as extra arguments to &amp;quot;svn commit&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Once the &amp;quot;svn commit&amp;quot; command launched, your editor will open up, pre-filled with the differences in the code implied by your changes automatically inserted. All you need to do is fill in the first part of the message with comments about your changes (e.g. bug fix of ... , added feature as ..., code tidying, etc.). usually a few lines suffice. It is common practice to state in the first line of the commit which PCM is concerned (&amp;quot;Mars PCM&amp;quot;, &amp;quot;Generic PCM&amp;quot;, &amp;quot;Venus PCM&amp;quot;, ...) and to sign the commit with your initials. Once you have entered your message, just save the file and this will automatically trigger the commit.&lt;br /&gt;
&lt;br /&gt;
Once the commit triggered, you will need to specify you svn account login and password, at least the first time (svn can save and store these so that you don't need to enter them every time).&lt;br /&gt;
&lt;br /&gt;
== Some typical svn errors you may run into ==&lt;br /&gt;
If when trying t use an svn command you get a message of the likes of:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
svn: E155036: The working copy at ....&lt;br /&gt;
is too old (format 29) to work with client version '1.10.2 (r1835932)' (expects format 31). You need to upgrade the working copy first.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This simply means that your svn tool has been upgraded to a more recent version and that you need to upgrade your current repository to follow up. In order to do that simply do&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn upgrade&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
And then you can keep using svn as before.&lt;br /&gt;
&lt;br /&gt;
== Some example commands potentially useful in preparing a commit ==&lt;br /&gt;
&lt;br /&gt;
=== Removing a file from the commit list using ''svn revert'' ===&lt;br /&gt;
&lt;br /&gt;
In order to see only the files that are part of the versioned archive, it may be convenient to request only those (see &amp;quot;svn status&amp;quot; tutorial above).  However, this may reveal files that you do not intend to commit.  The example here is from the LMD.MARS/util directory where one had modified three (versioned) files&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
%svn status -q&lt;br /&gt;
M       aeroptical.F90&lt;br /&gt;
M       compile&lt;br /&gt;
M       simu_MCS.F90&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;compile&amp;quot; file was modified to find the NETCDF library on the local machine, but we do not want to add this to the archive (and annoy Ehouarn).  So, we execute the command below which will replace the current version of compile with that of the current revision with which one is working. '''NOTE''' that if you need that version of the file, you should copy it to a different location or file name since it is replaced with a &amp;quot;fresh&amp;quot; copy.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
% svn revert compile&lt;br /&gt;
Reverted 'compile'&lt;br /&gt;
&lt;br /&gt;
% svn status -q&lt;br /&gt;
M       aeroptical.F90&lt;br /&gt;
M       simu_MCS.F90&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
And now one is ready to proceed to the next step of the commit.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:FAQ]]&lt;/div&gt;</summary>
		<author><name>Mwolff</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Some_pointers_about_the_subversion_(svn)_tool&amp;diff=1727</id>
		<title>Some pointers about the subversion (svn) tool</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Some_pointers_about_the_subversion_(svn)_tool&amp;diff=1727"/>
				<updated>2023-11-01T11:03:39Z</updated>
		
		<summary type="html">&lt;p&gt;Mwolff: /* Some other useful commands in preparing a commit */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== The subversion (a.k.a svn) tool ==&lt;br /&gt;
The subversion (svn) tool is what is used to keep track of the various versions of the PCM source codes. Quite similar to the also well known git tool.&lt;br /&gt;
&lt;br /&gt;
== Some useful svn commands ==&lt;br /&gt;
&lt;br /&gt;
==== svn checkout ====&lt;br /&gt;
A checkout is simply downloading the (latest version of) reference code from the svn repository and saving a local copy. e.g. to download the entire PCM repository (i.e. &amp;quot;trunk&amp;quot; directory and sub-directories):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn checkout https://svn.lmd.jussieu.fr/Planeto/trunk&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
You can add an argument to rename the directory &amp;quot;trunk&amp;quot; to whatever you want, e.g. &amp;quot;PCM_sources&amp;quot;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn checkout https://svn.lmd.jussieu.fr/Planeto/trunk PCM_sources&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Note that if you don't want to download the entire repository (likely the case if using only one of the PCMs) you can start by downloading an empty image of the &amp;quot;trunk&amp;quot;:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn checkout https://svn.lmd.jussieu.fr/Planeto/trunk --depth empty&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
And later use &amp;quot;svn update&amp;quot; in &amp;quot;trunk&amp;quot; to only update desired sub-directories.&lt;br /&gt;
&lt;br /&gt;
It is also possible to download a given revision of the trunk with &amp;quot;--revision ###&amp;quot; (where ### is the revision number), e.g. to download revision 1567:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn --revision 1567 checkout https://svn.lmd.jussieu.fr/Planeto/trunk&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== svn update ====&lt;br /&gt;
To update your working copy to the latest revision, in your &amp;quot;trunk&amp;quot; directory issue command:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn update&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Note that you can &amp;quot;update&amp;quot; to any revision number (including past ones) by specifying revision number, e.g. to update (or revert) to revision 2567:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn update --revision 2567&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== svn status ====&lt;br /&gt;
To know what files have been changes (with respect to your reference revision) or deleted or added in your distribution, use&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn status&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
which will return a list of files/directories changes. In practice each item of the list is prefixed by &amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; if the file is not versioned (i.e. not part of the svn repository), &amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt; if it is missing (whereas it exists in the repository) or &amp;lt;code&amp;gt;M&amp;lt;/code&amp;gt; if it is a modified version (i.e. you edited the file and made some changes to it, with respect to the reference) &lt;br /&gt;
&lt;br /&gt;
==== svn diff ====&lt;br /&gt;
This command generates a &amp;quot;diff&amp;quot; between your local changes and local reference version, without extra arguments:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn diff&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
The report will be for all files in current directory and sub-directories. One may add as a third argument the name of a given file to have only the diff concerning that file.&lt;br /&gt;
&lt;br /&gt;
==== svn revert ====&lt;br /&gt;
If you have modified (or even deleted) a versioned file but want it back to its original pristine version, rather than undo the changes manually you can simply invoke:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn revert thefileyouwantrestored&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== svn log ====&lt;br /&gt;
If you want to list all the revision messages (when one commits changes, one usually documents it with a short summary) use&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn log&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Note that this will give you all the messages (logs) since the beginning of the repository...&lt;br /&gt;
&lt;br /&gt;
If you know which revision number's log you want, you can specify it using &amp;lt;code&amp;gt;--revision ###&amp;lt;/code&amp;gt;. e.g. to list the log for revision 666 only:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn log --revision 666&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
And to list the latest log without specifying the revision number:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn log --revision HEAD&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== For experts: how to commit your changes ==&lt;br /&gt;
IMPORTANT: This only concerns you if you are included in the core team of developers with commit privileges.&lt;br /&gt;
&lt;br /&gt;
# You must be online (committing requires to connect and interact with the svn server)&lt;br /&gt;
# You must have made you changes on (svn) versioned code, and that it is up-to-date with the repository (&amp;quot;svn update&amp;quot; is your friend).&lt;br /&gt;
# It is recommended that you have set your ''SVN_EDITOR'' environment variable to point to your favorite text editor. For instance &amp;quot;vi&amp;quot;:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
declare -x SVN_EDITOR=vim&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now that things are ready for the commit (you might want to check one last time with &amp;quot;svn diff&amp;quot; that all your changes are in place and that you cleaned up any intermediate stuff), you can, in the directory where you made the changes, run the command:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn commit&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Note that if you want to only commit some files and not all those you modified in the current directory and subdirectories, you can can specify explicitely the paths&amp;amp;names of files to commit as extra arguments to &amp;quot;svn commit&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Once the &amp;quot;svn commit&amp;quot; command launched, your editor will open up, pre-filled with the differences in the code implied by your changes automatically inserted. All you need to do is fill in the first part of the message with comments about your changes (e.g. bug fix of ... , added feature as ..., code tidying, etc.). usually a few lines suffice. It is common practice to state in the first line of the commit which PCM is concerned (&amp;quot;Mars PCM&amp;quot;, &amp;quot;Generic PCM&amp;quot;, &amp;quot;Venus PCM&amp;quot;, ...) and to sign the commit with your initials. Once you have entered your message, just save the file and this will automatically trigger the commit.&lt;br /&gt;
&lt;br /&gt;
Once the commit triggered, you will need to specify you svn account login and password, at least the first time (svn can save and store these so that you don't need to enter them every time).&lt;br /&gt;
&lt;br /&gt;
== Some typical svn errors you may run into ==&lt;br /&gt;
If when trying t use an svn command you get a message of the likes of:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
svn: E155036: The working copy at ....&lt;br /&gt;
is too old (format 29) to work with client version '1.10.2 (r1835932)' (expects format 31). You need to upgrade the working copy first.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This simply means that your svn tool has been upgraded to a more recent version and that you need to upgrade your current repository to follow up. In order to do that simply do&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn upgrade&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
And then you can keep using svn as before.&lt;br /&gt;
&lt;br /&gt;
== Some other useful commands in preparing a commit ==&lt;br /&gt;
&lt;br /&gt;
===Removing a file from the commit list using &amp;quot;svn revert&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
 In order to see only the files that are part of the versioned archive, it may be convenient to request only those (see &amp;quot;svn status&amp;quot; tutorial above).  However, this may reveal files that you do not intend to commit.  The example here is from the LMD.MARS/util directory where one had modified three (versioned) files&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
%svn status -q&lt;br /&gt;
M       aeroptical.F90&lt;br /&gt;
M       compile&lt;br /&gt;
M       simu_MCS.F90&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;compile&amp;quot; file was modified to find the NETCDF library on the local machine, but we do not want to add this to the archive (and annoy Ehouarn).  So, we execute the command below which will replace the current version of compile with that of the current revision with which one is working. '''NOTE''' that if you need that version of the file, you should copy it to a different location or file name since it is replaced with a &amp;quot;fresh&amp;quot; copy.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
% svn revert compile&lt;br /&gt;
Reverted 'compile'&lt;br /&gt;
&lt;br /&gt;
% svn status -q&lt;br /&gt;
M       aeroptical.F90&lt;br /&gt;
M       simu_MCS.F90&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
And now one is ready to proceed to the next step of the commit.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:FAQ]]&lt;/div&gt;</summary>
		<author><name>Mwolff</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Some_pointers_about_the_subversion_(svn)_tool&amp;diff=1726</id>
		<title>Some pointers about the subversion (svn) tool</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Some_pointers_about_the_subversion_(svn)_tool&amp;diff=1726"/>
				<updated>2023-11-01T10:54:59Z</updated>
		
		<summary type="html">&lt;p&gt;Mwolff: /* Removing a file from the commit list using &amp;quot;svn revert&amp;quot; */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== The subversion (a.k.a svn) tool ==&lt;br /&gt;
The subversion (svn) tool is what is used to keep track of the various versions of the PCM source codes. Quite similar to the also well known git tool.&lt;br /&gt;
&lt;br /&gt;
== Some useful svn commands ==&lt;br /&gt;
&lt;br /&gt;
==== svn checkout ====&lt;br /&gt;
A checkout is simply downloading the (latest version of) reference code from the svn repository and saving a local copy. e.g. to download the entire PCM repository (i.e. &amp;quot;trunk&amp;quot; directory and sub-directories):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn checkout https://svn.lmd.jussieu.fr/Planeto/trunk&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
You can add an argument to rename the directory &amp;quot;trunk&amp;quot; to whatever you want, e.g. &amp;quot;PCM_sources&amp;quot;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn checkout https://svn.lmd.jussieu.fr/Planeto/trunk PCM_sources&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Note that if you don't want to download the entire repository (likely the case if using only one of the PCMs) you can start by downloading an empty image of the &amp;quot;trunk&amp;quot;:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn checkout https://svn.lmd.jussieu.fr/Planeto/trunk --depth empty&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
And later use &amp;quot;svn update&amp;quot; in &amp;quot;trunk&amp;quot; to only update desired sub-directories.&lt;br /&gt;
&lt;br /&gt;
It is also possible to download a given revision of the trunk with &amp;quot;--revision ###&amp;quot; (where ### is the revision number), e.g. to download revision 1567:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn --revision 1567 checkout https://svn.lmd.jussieu.fr/Planeto/trunk&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== svn update ====&lt;br /&gt;
To update your working copy to the latest revision, in your &amp;quot;trunk&amp;quot; directory issue command:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn update&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Note that you can &amp;quot;update&amp;quot; to any revision number (including past ones) by specifying revision number, e.g. to update (or revert) to revision 2567:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn update --revision 2567&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== svn status ====&lt;br /&gt;
To know what files have been changes (with respect to your reference revision) or deleted or added in your distribution, use&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn status&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
which will return a list of files/directories changes. In practice each item of the list is prefixed by &amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; if the file is not versioned (i.e. not part of the svn repository), &amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt; if it is missing (whereas it exists in the repository) or &amp;lt;code&amp;gt;M&amp;lt;/code&amp;gt; if it is a modified version (i.e. you edited the file and made some changes to it, with respect to the reference) &lt;br /&gt;
&lt;br /&gt;
==== svn diff ====&lt;br /&gt;
This command generates a &amp;quot;diff&amp;quot; between your local changes and local reference version, without extra arguments:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn diff&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
The report will be for all files in current directory and sub-directories. One may add as a third argument the name of a given file to have only the diff concerning that file.&lt;br /&gt;
&lt;br /&gt;
==== svn revert ====&lt;br /&gt;
If you have modified (or even deleted) a versioned file but want it back to its original pristine version, rather than undo the changes manually you can simply invoke:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn revert thefileyouwantrestored&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== svn log ====&lt;br /&gt;
If you want to list all the revision messages (when one commits changes, one usually documents it with a short summary) use&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn log&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Note that this will give you all the messages (logs) since the beginning of the repository...&lt;br /&gt;
&lt;br /&gt;
If you know which revision number's log you want, you can specify it using &amp;lt;code&amp;gt;--revision ###&amp;lt;/code&amp;gt;. e.g. to list the log for revision 666 only:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn log --revision 666&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
And to list the latest log without specifying the revision number:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn log --revision HEAD&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== For experts: how to commit your changes ==&lt;br /&gt;
IMPORTANT: This only concerns you if you are included in the core team of developers with commit privileges.&lt;br /&gt;
&lt;br /&gt;
# You must be online (committing requires to connect and interact with the svn server)&lt;br /&gt;
# You must have made you changes on (svn) versioned code, and that it is up-to-date with the repository (&amp;quot;svn update&amp;quot; is your friend).&lt;br /&gt;
# It is recommended that you have set your ''SVN_EDITOR'' environment variable to point to your favorite text editor. For instance &amp;quot;vi&amp;quot;:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
declare -x SVN_EDITOR=vim&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now that things are ready for the commit (you might want to check one last time with &amp;quot;svn diff&amp;quot; that all your changes are in place and that you cleaned up any intermediate stuff), you can, in the directory where you made the changes, run the command:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn commit&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Note that if you want to only commit some files and not all those you modified in the current directory and subdirectories, you can can specify explicitely the paths&amp;amp;names of files to commit as extra arguments to &amp;quot;svn commit&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Once the &amp;quot;svn commit&amp;quot; command launched, your editor will open up, pre-filled with the differences in the code implied by your changes automatically inserted. All you need to do is fill in the first part of the message with comments about your changes (e.g. bug fix of ... , added feature as ..., code tidying, etc.). usually a few lines suffice. It is common practice to state in the first line of the commit which PCM is concerned (&amp;quot;Mars PCM&amp;quot;, &amp;quot;Generic PCM&amp;quot;, &amp;quot;Venus PCM&amp;quot;, ...) and to sign the commit with your initials. Once you have entered your message, just save the file and this will automatically trigger the commit.&lt;br /&gt;
&lt;br /&gt;
Once the commit triggered, you will need to specify you svn account login and password, at least the first time (svn can save and store these so that you don't need to enter them every time).&lt;br /&gt;
&lt;br /&gt;
== Some typical svn errors you may run into ==&lt;br /&gt;
If when trying t use an svn command you get a message of the likes of:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
svn: E155036: The working copy at ....&lt;br /&gt;
is too old (format 29) to work with client version '1.10.2 (r1835932)' (expects format 31). You need to upgrade the working copy first.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This simply means that your svn tool has been upgraded to a more recent version and that you need to upgrade your current repository to follow up. In order to do that simply do&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn upgrade&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
And then you can keep using svn as before.&lt;br /&gt;
&lt;br /&gt;
== Some other useful commands in preparing a commit ==&lt;br /&gt;
&lt;br /&gt;
=== svn status ===&lt;br /&gt;
&lt;br /&gt;
This command produces a listing of files that are flagged as modified, unknown, to be deleted, etc.  In order to only see the files that are part of the versioned archive, it may be convenient to request only those (otherwise you may get a long list of files flagged with a &amp;quot;?&amp;quot; for executables, libraries, etc.:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn status -q&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
The above command was executed in the LMD.MARS/util directory where one had modified three (versioned) files.  This results in the following output.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
M       aeroptical.F90&lt;br /&gt;
M       compile&lt;br /&gt;
M       simu_MCS.F90&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;svn help status&amp;quot; command is very helpful in learning a little more about status.&lt;br /&gt;
&lt;br /&gt;
===Removing a file from the commit list using &amp;quot;svn revert&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
The above example includes a file that we do NOT want to commit.  The &amp;quot;compile&amp;quot; file was modified to find the NETCDF library on the local machine, but we do not want to add this to the archive (and annoy Ehouarn).  So, we execute the command below which will replace the current version of compile with that of the current revision with which one is working. '''NOTE''' that if you need that version of the file, you should copy it to a different location or file name since it is replaced with a &amp;quot;fresh&amp;quot; copy.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
% svn revert compile&lt;br /&gt;
Reverted 'compile'&lt;br /&gt;
&lt;br /&gt;
% svn status -q&lt;br /&gt;
M       aeroptical.F90&lt;br /&gt;
M       simu_MCS.F90&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
And now one is ready to proceed to the next step of the commit.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:FAQ]]&lt;/div&gt;</summary>
		<author><name>Mwolff</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Some_pointers_about_the_subversion_(svn)_tool&amp;diff=1725</id>
		<title>Some pointers about the subversion (svn) tool</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Some_pointers_about_the_subversion_(svn)_tool&amp;diff=1725"/>
				<updated>2023-11-01T10:53:41Z</updated>
		
		<summary type="html">&lt;p&gt;Mwolff: /* Some other useful commands in preparing a commit */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== The subversion (a.k.a svn) tool ==&lt;br /&gt;
The subversion (svn) tool is what is used to keep track of the various versions of the PCM source codes. Quite similar to the also well known git tool.&lt;br /&gt;
&lt;br /&gt;
== Some useful svn commands ==&lt;br /&gt;
&lt;br /&gt;
==== svn checkout ====&lt;br /&gt;
A checkout is simply downloading the (latest version of) reference code from the svn repository and saving a local copy. e.g. to download the entire PCM repository (i.e. &amp;quot;trunk&amp;quot; directory and sub-directories):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn checkout https://svn.lmd.jussieu.fr/Planeto/trunk&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
You can add an argument to rename the directory &amp;quot;trunk&amp;quot; to whatever you want, e.g. &amp;quot;PCM_sources&amp;quot;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn checkout https://svn.lmd.jussieu.fr/Planeto/trunk PCM_sources&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Note that if you don't want to download the entire repository (likely the case if using only one of the PCMs) you can start by downloading an empty image of the &amp;quot;trunk&amp;quot;:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn checkout https://svn.lmd.jussieu.fr/Planeto/trunk --depth empty&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
And later use &amp;quot;svn update&amp;quot; in &amp;quot;trunk&amp;quot; to only update desired sub-directories.&lt;br /&gt;
&lt;br /&gt;
It is also possible to download a given revision of the trunk with &amp;quot;--revision ###&amp;quot; (where ### is the revision number), e.g. to download revision 1567:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn --revision 1567 checkout https://svn.lmd.jussieu.fr/Planeto/trunk&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== svn update ====&lt;br /&gt;
To update your working copy to the latest revision, in your &amp;quot;trunk&amp;quot; directory issue command:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn update&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Note that you can &amp;quot;update&amp;quot; to any revision number (including past ones) by specifying revision number, e.g. to update (or revert) to revision 2567:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn update --revision 2567&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== svn status ====&lt;br /&gt;
To know what files have been changes (with respect to your reference revision) or deleted or added in your distribution, use&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn status&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
which will return a list of files/directories changes. In practice each item of the list is prefixed by &amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; if the file is not versioned (i.e. not part of the svn repository), &amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt; if it is missing (whereas it exists in the repository) or &amp;lt;code&amp;gt;M&amp;lt;/code&amp;gt; if it is a modified version (i.e. you edited the file and made some changes to it, with respect to the reference) &lt;br /&gt;
&lt;br /&gt;
==== svn diff ====&lt;br /&gt;
This command generates a &amp;quot;diff&amp;quot; between your local changes and local reference version, without extra arguments:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn diff&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
The report will be for all files in current directory and sub-directories. One may add as a third argument the name of a given file to have only the diff concerning that file.&lt;br /&gt;
&lt;br /&gt;
==== svn revert ====&lt;br /&gt;
If you have modified (or even deleted) a versioned file but want it back to its original pristine version, rather than undo the changes manually you can simply invoke:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn revert thefileyouwantrestored&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== svn log ====&lt;br /&gt;
If you want to list all the revision messages (when one commits changes, one usually documents it with a short summary) use&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn log&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Note that this will give you all the messages (logs) since the beginning of the repository...&lt;br /&gt;
&lt;br /&gt;
If you know which revision number's log you want, you can specify it using &amp;lt;code&amp;gt;--revision ###&amp;lt;/code&amp;gt;. e.g. to list the log for revision 666 only:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn log --revision 666&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
And to list the latest log without specifying the revision number:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn log --revision HEAD&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== For experts: how to commit your changes ==&lt;br /&gt;
IMPORTANT: This only concerns you if you are included in the core team of developers with commit privileges.&lt;br /&gt;
&lt;br /&gt;
# You must be online (committing requires to connect and interact with the svn server)&lt;br /&gt;
# You must have made you changes on (svn) versioned code, and that it is up-to-date with the repository (&amp;quot;svn update&amp;quot; is your friend).&lt;br /&gt;
# It is recommended that you have set your ''SVN_EDITOR'' environment variable to point to your favorite text editor. For instance &amp;quot;vi&amp;quot;:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
declare -x SVN_EDITOR=vim&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now that things are ready for the commit (you might want to check one last time with &amp;quot;svn diff&amp;quot; that all your changes are in place and that you cleaned up any intermediate stuff), you can, in the directory where you made the changes, run the command:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn commit&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Note that if you want to only commit some files and not all those you modified in the current directory and subdirectories, you can can specify explicitely the paths&amp;amp;names of files to commit as extra arguments to &amp;quot;svn commit&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Once the &amp;quot;svn commit&amp;quot; command launched, your editor will open up, pre-filled with the differences in the code implied by your changes automatically inserted. All you need to do is fill in the first part of the message with comments about your changes (e.g. bug fix of ... , added feature as ..., code tidying, etc.). usually a few lines suffice. It is common practice to state in the first line of the commit which PCM is concerned (&amp;quot;Mars PCM&amp;quot;, &amp;quot;Generic PCM&amp;quot;, &amp;quot;Venus PCM&amp;quot;, ...) and to sign the commit with your initials. Once you have entered your message, just save the file and this will automatically trigger the commit.&lt;br /&gt;
&lt;br /&gt;
Once the commit triggered, you will need to specify you svn account login and password, at least the first time (svn can save and store these so that you don't need to enter them every time).&lt;br /&gt;
&lt;br /&gt;
== Some typical svn errors you may run into ==&lt;br /&gt;
If when trying t use an svn command you get a message of the likes of:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
svn: E155036: The working copy at ....&lt;br /&gt;
is too old (format 29) to work with client version '1.10.2 (r1835932)' (expects format 31). You need to upgrade the working copy first.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This simply means that your svn tool has been upgraded to a more recent version and that you need to upgrade your current repository to follow up. In order to do that simply do&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn upgrade&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
And then you can keep using svn as before.&lt;br /&gt;
&lt;br /&gt;
== Some other useful commands in preparing a commit ==&lt;br /&gt;
&lt;br /&gt;
=== svn status ===&lt;br /&gt;
&lt;br /&gt;
This command produces a listing of files that are flagged as modified, unknown, to be deleted, etc.  In order to only see the files that are part of the versioned archive, it may be convenient to request only those (otherwise you may get a long list of files flagged with a &amp;quot;?&amp;quot; for executables, libraries, etc.:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn status -q&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
The above command was executed in the LMD.MARS/util directory where one had modified three (versioned) files.  This results in the following output.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
M       aeroptical.F90&lt;br /&gt;
M       compile&lt;br /&gt;
M       simu_MCS.F90&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;svn help status&amp;quot; command is very helpful in learning a little more about status.&lt;br /&gt;
&lt;br /&gt;
===Removing a file from the commit list using &amp;quot;svn revert&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
The above example includes a file that we do NOT want to commit.  The &amp;quot;compile&amp;quot; file was modified to find the NETCDF library on the local machine, but we do not want to add this to the archive (and annoy Ehouarn).  So, we execute the command below which will replace the current version of compile with that of the current revision with which one is working. **NOTE** that if you need that version of the file, you should copy it to a different location or file name since it is replaced with a &amp;quot;fresh&amp;quot; copy.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
% svn revert compile&lt;br /&gt;
Reverted 'compile'&lt;br /&gt;
&lt;br /&gt;
% svn status -q&lt;br /&gt;
M       aeroptical.F90&lt;br /&gt;
M       simu_MCS.F90&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
And now one is ready to proceed to the next step of the commit.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:FAQ]]&lt;/div&gt;</summary>
		<author><name>Mwolff</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Some_pointers_about_the_subversion_(svn)_tool&amp;diff=1724</id>
		<title>Some pointers about the subversion (svn) tool</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Some_pointers_about_the_subversion_(svn)_tool&amp;diff=1724"/>
				<updated>2023-11-01T10:34:35Z</updated>
		
		<summary type="html">&lt;p&gt;Mwolff: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== The subversion (a.k.a svn) tool ==&lt;br /&gt;
The subversion (svn) tool is what is used to keep track of the various versions of the PCM source codes. Quite similar to the also well known git tool.&lt;br /&gt;
&lt;br /&gt;
== Some useful svn commands ==&lt;br /&gt;
&lt;br /&gt;
==== svn checkout ====&lt;br /&gt;
A checkout is simply downloading the (latest version of) reference code from the svn repository and saving a local copy. e.g. to download the entire PCM repository (i.e. &amp;quot;trunk&amp;quot; directory and sub-directories):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn checkout https://svn.lmd.jussieu.fr/Planeto/trunk&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
You can add an argument to rename the directory &amp;quot;trunk&amp;quot; to whatever you want, e.g. &amp;quot;PCM_sources&amp;quot;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn checkout https://svn.lmd.jussieu.fr/Planeto/trunk PCM_sources&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Note that if you don't want to download the entire repository (likely the case if using only one of the PCMs) you can start by downloading an empty image of the &amp;quot;trunk&amp;quot;:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn checkout https://svn.lmd.jussieu.fr/Planeto/trunk --depth empty&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
And later use &amp;quot;svn update&amp;quot; in &amp;quot;trunk&amp;quot; to only update desired sub-directories.&lt;br /&gt;
&lt;br /&gt;
It is also possible to download a given revision of the trunk with &amp;quot;--revision ###&amp;quot; (where ### is the revision number), e.g. to download revision 1567:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn --revision 1567 checkout https://svn.lmd.jussieu.fr/Planeto/trunk&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== svn update ====&lt;br /&gt;
To update your working copy to the latest revision, in your &amp;quot;trunk&amp;quot; directory issue command:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn update&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Note that you can &amp;quot;update&amp;quot; to any revision number (including past ones) by specifying revision number, e.g. to update (or revert) to revision 2567:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn update --revision 2567&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== svn status ====&lt;br /&gt;
To know what files have been changes (with respect to your reference revision) or deleted or added in your distribution, use&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn status&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
which will return a list of files/directories changes. In practice each item of the list is prefixed by &amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; if the file is not versioned (i.e. not part of the svn repository), &amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt; if it is missing (whereas it exists in the repository) or &amp;lt;code&amp;gt;M&amp;lt;/code&amp;gt; if it is a modified version (i.e. you edited the file and made some changes to it, with respect to the reference) &lt;br /&gt;
&lt;br /&gt;
==== svn diff ====&lt;br /&gt;
This command generates a &amp;quot;diff&amp;quot; between your local changes and local reference version, without extra arguments:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn diff&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
The report will be for all files in current directory and sub-directories. One may add as a third argument the name of a given file to have only the diff concerning that file.&lt;br /&gt;
&lt;br /&gt;
==== svn revert ====&lt;br /&gt;
If you have modified (or even deleted) a versioned file but want it back to its original pristine version, rather than undo the changes manually you can simply invoke:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn revert thefileyouwantrestored&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== svn log ====&lt;br /&gt;
If you want to list all the revision messages (when one commits changes, one usually documents it with a short summary) use&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn log&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Note that this will give you all the messages (logs) since the beginning of the repository...&lt;br /&gt;
&lt;br /&gt;
If you know which revision number's log you want, you can specify it using &amp;lt;code&amp;gt;--revision ###&amp;lt;/code&amp;gt;. e.g. to list the log for revision 666 only:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn log --revision 666&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
And to list the latest log without specifying the revision number:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn log --revision HEAD&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== For experts: how to commit your changes ==&lt;br /&gt;
IMPORTANT: This only concerns you if you are included in the core team of developers with commit privileges.&lt;br /&gt;
&lt;br /&gt;
# You must be online (committing requires to connect and interact with the svn server)&lt;br /&gt;
# You must have made you changes on (svn) versioned code, and that it is up-to-date with the repository (&amp;quot;svn update&amp;quot; is your friend).&lt;br /&gt;
# It is recommended that you have set your ''SVN_EDITOR'' environment variable to point to your favorite text editor. For instance &amp;quot;vi&amp;quot;:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
declare -x SVN_EDITOR=vim&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now that things are ready for the commit (you might want to check one last time with &amp;quot;svn diff&amp;quot; that all your changes are in place and that you cleaned up any intermediate stuff), you can, in the directory where you made the changes, run the command:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn commit&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Note that if you want to only commit some files and not all those you modified in the current directory and subdirectories, you can can specify explicitely the paths&amp;amp;names of files to commit as extra arguments to &amp;quot;svn commit&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Once the &amp;quot;svn commit&amp;quot; command launched, your editor will open up, pre-filled with the differences in the code implied by your changes automatically inserted. All you need to do is fill in the first part of the message with comments about your changes (e.g. bug fix of ... , added feature as ..., code tidying, etc.). usually a few lines suffice. It is common practice to state in the first line of the commit which PCM is concerned (&amp;quot;Mars PCM&amp;quot;, &amp;quot;Generic PCM&amp;quot;, &amp;quot;Venus PCM&amp;quot;, ...) and to sign the commit with your initials. Once you have entered your message, just save the file and this will automatically trigger the commit.&lt;br /&gt;
&lt;br /&gt;
Once the commit triggered, you will need to specify you svn account login and password, at least the first time (svn can save and store these so that you don't need to enter them every time).&lt;br /&gt;
&lt;br /&gt;
== Some typical svn errors you may run into ==&lt;br /&gt;
If when trying t use an svn command you get a message of the likes of:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
svn: E155036: The working copy at ....&lt;br /&gt;
is too old (format 29) to work with client version '1.10.2 (r1835932)' (expects format 31). You need to upgrade the working copy first.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This simply means that your svn tool has been upgraded to a more recent version and that you need to upgrade your current repository to follow up. In order to do that simply do&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn upgrade&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
And then you can keep using svn as before.&lt;br /&gt;
&lt;br /&gt;
== Some other useful commands in preparing a commit ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:FAQ]]&lt;/div&gt;</summary>
		<author><name>Mwolff</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Some_Ferret_tips_and_pointers&amp;diff=1659</id>
		<title>Some Ferret tips and pointers</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Some_Ferret_tips_and_pointers&amp;diff=1659"/>
				<updated>2023-10-24T06:29:00Z</updated>
		
		<summary type="html">&lt;p&gt;Mwolff: /* Commands used on a Macbook Pro with the M2 ARM chipset (summer 2023) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Ferret ==&lt;br /&gt;
Ferret is a NetCDF vizualisation tool which can be used to postprocess and visualize PCM outputs.&lt;br /&gt;
&lt;br /&gt;
This free software is from NOAA (National Oceanic and Atmospheric Administration) and the relevant webpage where you can learn how to install and use it is here:  https://ferret.pmel.noaa.gov/Ferret/&lt;br /&gt;
&lt;br /&gt;
[For Mac users] It is recommended to use/migrate-to PyFerret.  However, there is a bug in later versions that can render plotting problematic even in the Linux environment.  Fortunately, there is a work around, which we will address specifically for the Mac environment (a post to the Ferret listserv is referenced, and it deals specifically with Linux).  See [[Some_Ferret_tips_and_pointers#Installation_tips| section below]].&lt;br /&gt;
&lt;br /&gt;
== For first timers ==&lt;br /&gt;
Ferret is essentially a command line tool so the first thing you'll need to do is launch it from your terminal&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ferret&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
(on some system, e.g. Ubuntu, the executable is called '''ferret_c''' (and the related package '''ferret_viz''') because another unrelated software also called '''ferret''' exists).&lt;br /&gt;
&lt;br /&gt;
Once under Ferret you should see the Ferret prompt:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes?&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To load a datafile, for example '''diagfi.nc''' issue command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes? use diagfi.nc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Once the file has been loaded, you can query for its contents with the command '''show data'''. This will let you know about available fields (and their shapes: usually i along longitudes, j along latitudes, k along pseudo-altitudes and l along time). e.g&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes? show data&lt;br /&gt;
     currently SET data sets:&lt;br /&gt;
    1&amp;gt; ./diagfi.nc  (default)&lt;br /&gt;
 name     title                             I         J         K         L&lt;br /&gt;
 AIRE                                      1:65      1:49      ...       ...&lt;br /&gt;
 PHISINIT                                  1:65      1:49      ...       ...&lt;br /&gt;
 TSURF                                     1:65      1:49      ...       1:1464&lt;br /&gt;
 PS                                        1:65      1:49      ...       1:1464&lt;br /&gt;
 TEMP                                      1:65      1:49      1:73      1:1464&lt;br /&gt;
 U                                         1:65      1:49      1:73      1:1464&lt;br /&gt;
 V                                         1:65      1:49      1:73      1:1464&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
In the example above the file contains '''AIRE''' and '''PHISINIT''', which are 2D (indexed along i and j indexes, i.e. longitude and latitude == surface fields), '''TSURF''', '''PS''', which are 3D (indexed along i, j and l indexes, i.e. longitude, latitude and time == surface fields evolving in time) and '''TEMP''', '''U''' and '''V''', which are 4D).&lt;br /&gt;
&lt;br /&gt;
== Various tips and pointers ==&lt;br /&gt;
* Never kill the Ferret graphic plot window (by clicking on the cross at the top right corner); Ferret won't recover, you'll have to exit and start again...&lt;br /&gt;
* One can refer to a field coordinates either via indexes '''i''', '''j''', '''k''', '''l''' or via associated real world coordinates '''x''', '''y''', '''z''', '''t'''.&lt;br /&gt;
&lt;br /&gt;
==== How to make a 1D plot ====&lt;br /&gt;
You simply need to specify along which coordinate the variable should be plotted, e.g.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes? plot/i=13/j=15 PS&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Or equivalently&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes? plot PS[i=13,j=15]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Or similarly using real world coordinates, e.g.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes? plot PS[x=12,y=35]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== How to make a 2D map ====&lt;br /&gt;
...&lt;br /&gt;
==== How to compute a zonal average ====&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
== Installation tips ==&lt;br /&gt;
&lt;br /&gt;
===Mac OSX (PyFerret) and Graphics bug===&lt;br /&gt;
&lt;br /&gt;
====Miniconda====&lt;br /&gt;
conda is the preferred environment for the install.  miniconda (a subset of conda) is a lighter-weight option which is a good choice.  Installation instructions for both may be found [https://docs.conda.io/projects/conda/en/latest/user-guide/install/macos.html here].&lt;br /&gt;
&lt;br /&gt;
====PyFerret====&lt;br /&gt;
Once one has a conda installation of some type, the instructions are straight-forward.  The official installation documentation is [https://github.com/NOAA-PMEL/PyFerret/blob/master/README.md here].&lt;br /&gt;
&lt;br /&gt;
====Commands used on a Macbook Pro with the M2 ARM chipset (summer 2023)====&lt;br /&gt;
&lt;br /&gt;
* Install miniconda using script&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bash Miniconda3-latest-MacOSX-arm64.sh      #can &amp;quot;yes&amp;quot; to activate, but we will deactivate&lt;br /&gt;
&lt;br /&gt;
 # do not automatically activate on startup&lt;br /&gt;
conda config --set auto_activate_base false    &lt;br /&gt;
&lt;br /&gt;
# initialize for tcsh (it will write code into one's .tcshrc file)&lt;br /&gt;
/Users/mwolff/miniconda3/bin/conda init tcsh    &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Install pyferret (latest version)&lt;br /&gt;
It is recommended that one use virtual environments, and alias the environment activation for simplicity.  The following section is to install pyferret in virtual environment called FERRET.&lt;br /&gt;
&lt;br /&gt;
Note: the pyferret command from the official site did NOT work for me.  It complained about not finding the needed packages.  For reference, this command was &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# line below did not work.  it is here for reference&lt;br /&gt;
conda create -n FERRET -c conda-forge pyferret ferret_datasets --yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Instead, use the following instead:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
conda create -n FERRET -c conda-forge/osx-64 pyferret ferret_datasets --yes &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This can be actived using an alias for brevity.  In (t)csh world, this would be &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
alias FERRET &amp;quot;conda activate FERRET&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Dealing with plotting bug.  As can be seen in the post on the Ferret group [https://www.pmel.noaa.gov/maillists/tmap/ferret_users/fu_2019/msg01059.html here], there can be problems for plotting with the latest version(s), even on Linux.  Below, we use a set of commands that works for Mac OSX.&lt;br /&gt;
&lt;br /&gt;
Install a slightly older version of pyferret (i.e., one where the plotting works) using the command in the referenced post in the last paragrph):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# we have had to change the channel from the example in the referenced ferret group post (to install for Mac OS&lt;br /&gt;
conda create -n oldFERRET -c conda-forge/osx-64/label/cf202003 pyferret ferret_datasets --yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assuming an alias oldFERRET that activates this older version, a plotting test can be runs as&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[avory:~] mwolff  oldFERRET&lt;br /&gt;
&lt;br /&gt;
(oldFERRET) [avory:~] mwolff pyferret&lt;br /&gt;
        NOAA/PMEL TMAP&lt;br /&gt;
        PyFerret v7.5 (optimized)&lt;br /&gt;
        Darwin 17.7.0 - 12/16/19 &lt;br /&gt;
        6-Apr-23 10:50&lt;br /&gt;
yes? use coads_climatology&lt;br /&gt;
yes? fill sst[l=1]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Ferret_testplot_coads.png]]&lt;/div&gt;</summary>
		<author><name>Mwolff</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Some_Ferret_tips_and_pointers&amp;diff=1658</id>
		<title>Some Ferret tips and pointers</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Some_Ferret_tips_and_pointers&amp;diff=1658"/>
				<updated>2023-10-24T06:27:43Z</updated>
		
		<summary type="html">&lt;p&gt;Mwolff: /* Miniconda */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Ferret ==&lt;br /&gt;
Ferret is a NetCDF vizualisation tool which can be used to postprocess and visualize PCM outputs.&lt;br /&gt;
&lt;br /&gt;
This free software is from NOAA (National Oceanic and Atmospheric Administration) and the relevant webpage where you can learn how to install and use it is here:  https://ferret.pmel.noaa.gov/Ferret/&lt;br /&gt;
&lt;br /&gt;
[For Mac users] It is recommended to use/migrate-to PyFerret.  However, there is a bug in later versions that can render plotting problematic even in the Linux environment.  Fortunately, there is a work around, which we will address specifically for the Mac environment (a post to the Ferret listserv is referenced, and it deals specifically with Linux).  See [[Some_Ferret_tips_and_pointers#Installation_tips| section below]].&lt;br /&gt;
&lt;br /&gt;
== For first timers ==&lt;br /&gt;
Ferret is essentially a command line tool so the first thing you'll need to do is launch it from your terminal&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ferret&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
(on some system, e.g. Ubuntu, the executable is called '''ferret_c''' (and the related package '''ferret_viz''') because another unrelated software also called '''ferret''' exists).&lt;br /&gt;
&lt;br /&gt;
Once under Ferret you should see the Ferret prompt:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes?&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To load a datafile, for example '''diagfi.nc''' issue command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes? use diagfi.nc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Once the file has been loaded, you can query for its contents with the command '''show data'''. This will let you know about available fields (and their shapes: usually i along longitudes, j along latitudes, k along pseudo-altitudes and l along time). e.g&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes? show data&lt;br /&gt;
     currently SET data sets:&lt;br /&gt;
    1&amp;gt; ./diagfi.nc  (default)&lt;br /&gt;
 name     title                             I         J         K         L&lt;br /&gt;
 AIRE                                      1:65      1:49      ...       ...&lt;br /&gt;
 PHISINIT                                  1:65      1:49      ...       ...&lt;br /&gt;
 TSURF                                     1:65      1:49      ...       1:1464&lt;br /&gt;
 PS                                        1:65      1:49      ...       1:1464&lt;br /&gt;
 TEMP                                      1:65      1:49      1:73      1:1464&lt;br /&gt;
 U                                         1:65      1:49      1:73      1:1464&lt;br /&gt;
 V                                         1:65      1:49      1:73      1:1464&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
In the example above the file contains '''AIRE''' and '''PHISINIT''', which are 2D (indexed along i and j indexes, i.e. longitude and latitude == surface fields), '''TSURF''', '''PS''', which are 3D (indexed along i, j and l indexes, i.e. longitude, latitude and time == surface fields evolving in time) and '''TEMP''', '''U''' and '''V''', which are 4D).&lt;br /&gt;
&lt;br /&gt;
== Various tips and pointers ==&lt;br /&gt;
* Never kill the Ferret graphic plot window (by clicking on the cross at the top right corner); Ferret won't recover, you'll have to exit and start again...&lt;br /&gt;
* One can refer to a field coordinates either via indexes '''i''', '''j''', '''k''', '''l''' or via associated real world coordinates '''x''', '''y''', '''z''', '''t'''.&lt;br /&gt;
&lt;br /&gt;
==== How to make a 1D plot ====&lt;br /&gt;
You simply need to specify along which coordinate the variable should be plotted, e.g.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes? plot/i=13/j=15 PS&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Or equivalently&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes? plot PS[i=13,j=15]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Or similarly using real world coordinates, e.g.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes? plot PS[x=12,y=35]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== How to make a 2D map ====&lt;br /&gt;
...&lt;br /&gt;
==== How to compute a zonal average ====&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
== Installation tips ==&lt;br /&gt;
&lt;br /&gt;
===Mac OSX (PyFerret) and Graphics bug===&lt;br /&gt;
&lt;br /&gt;
====Miniconda====&lt;br /&gt;
conda is the preferred environment for the install.  miniconda (a subset of conda) is a lighter-weight option which is a good choice.  Installation instructions for both may be found [https://docs.conda.io/projects/conda/en/latest/user-guide/install/macos.html here].&lt;br /&gt;
&lt;br /&gt;
====PyFerret====&lt;br /&gt;
Once one has a conda installation of some type, the instructions are straight-forward.  The official installation documentation is [https://github.com/NOAA-PMEL/PyFerret/blob/master/README.md here].&lt;br /&gt;
&lt;br /&gt;
====Commands used on a Macbook Pro with the M2 ARM chipset (summer 2023)====&lt;br /&gt;
&lt;br /&gt;
* Install miniconda using script&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bash Miniconda3-latest-MacOSX-arm64.sh      #can &amp;quot;yes&amp;quot; to activate, but we will deactivate&lt;br /&gt;
&lt;br /&gt;
 # do not automatically activate on startup&lt;br /&gt;
conda config --set auto_activate_base false    &lt;br /&gt;
&lt;br /&gt;
# initialize for tcsh (it will write code into one's .tcshrc file)&lt;br /&gt;
/Users/mwolff/miniconda3/bin/conda init tcsh    &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Install pyferret (latest version)&lt;br /&gt;
It is recommended that one use virtual environments, and alias the environment activation for simplicity.  The following section is to install pyferret in virtual environment called FERRET.&lt;br /&gt;
&lt;br /&gt;
Note: the pyferret command from the official site did NOT work for me.  It complained about not finding the needed packages.  For reference, this command was &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# line below did not work.  it is here for reference&lt;br /&gt;
conda create -n FERRET -c conda-forge pyferret ferret_datasets --yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Instead, use the following instead:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
conda create -n FERRET -c conda-forge/osx-64 pyferret ferret_datasets --yes &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This can be actived using an alias for brevity.  In (t)csh world, this would be &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
alias FERRET &amp;quot;conda activate FERRET&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Dealing with plotting bug.  As can be seen in the post on the Ferret group [https://www.pmel.noaa.gov/maillists/tmap/ferret_users/fu_2019/msg01059.html here], there can be problems for plotting with the latest version(s), even on Linux.  Below, we use a command that works for Mac OSX.&lt;br /&gt;
&lt;br /&gt;
Install a slightly older version of pyferret (i.e., one where the plotting works) using the command in the referenced post in the last paragrph):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# we have had to change the channel from the example in the referenced ferret group post (to install for Mac OS&lt;br /&gt;
conda create -n oldFERRET -c conda-forge/osx-64/label/cf202003 pyferret ferret_datasets --yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assuming an alias oldFERRET that activates this older version, a plotting test can be runs as&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[avory:~] mwolff  oldFERRET&lt;br /&gt;
&lt;br /&gt;
(oldFERRET) [avory:~] mwolff pyferret&lt;br /&gt;
        NOAA/PMEL TMAP&lt;br /&gt;
        PyFerret v7.5 (optimized)&lt;br /&gt;
        Darwin 17.7.0 - 12/16/19 &lt;br /&gt;
        6-Apr-23 10:50&lt;br /&gt;
yes? use coads_climatology&lt;br /&gt;
yes? fill sst[l=1]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Ferret_testplot_coads.png]]&lt;/div&gt;</summary>
		<author><name>Mwolff</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Some_Ferret_tips_and_pointers&amp;diff=1657</id>
		<title>Some Ferret tips and pointers</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Some_Ferret_tips_and_pointers&amp;diff=1657"/>
				<updated>2023-10-24T06:27:18Z</updated>
		
		<summary type="html">&lt;p&gt;Mwolff: /* Mac OSX (PyFerret) and Graphics bug */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Ferret ==&lt;br /&gt;
Ferret is a NetCDF vizualisation tool which can be used to postprocess and visualize PCM outputs.&lt;br /&gt;
&lt;br /&gt;
This free software is from NOAA (National Oceanic and Atmospheric Administration) and the relevant webpage where you can learn how to install and use it is here:  https://ferret.pmel.noaa.gov/Ferret/&lt;br /&gt;
&lt;br /&gt;
[For Mac users] It is recommended to use/migrate-to PyFerret.  However, there is a bug in later versions that can render plotting problematic even in the Linux environment.  Fortunately, there is a work around, which we will address specifically for the Mac environment (a post to the Ferret listserv is referenced, and it deals specifically with Linux).  See [[Some_Ferret_tips_and_pointers#Installation_tips| section below]].&lt;br /&gt;
&lt;br /&gt;
== For first timers ==&lt;br /&gt;
Ferret is essentially a command line tool so the first thing you'll need to do is launch it from your terminal&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ferret&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
(on some system, e.g. Ubuntu, the executable is called '''ferret_c''' (and the related package '''ferret_viz''') because another unrelated software also called '''ferret''' exists).&lt;br /&gt;
&lt;br /&gt;
Once under Ferret you should see the Ferret prompt:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes?&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To load a datafile, for example '''diagfi.nc''' issue command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes? use diagfi.nc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Once the file has been loaded, you can query for its contents with the command '''show data'''. This will let you know about available fields (and their shapes: usually i along longitudes, j along latitudes, k along pseudo-altitudes and l along time). e.g&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes? show data&lt;br /&gt;
     currently SET data sets:&lt;br /&gt;
    1&amp;gt; ./diagfi.nc  (default)&lt;br /&gt;
 name     title                             I         J         K         L&lt;br /&gt;
 AIRE                                      1:65      1:49      ...       ...&lt;br /&gt;
 PHISINIT                                  1:65      1:49      ...       ...&lt;br /&gt;
 TSURF                                     1:65      1:49      ...       1:1464&lt;br /&gt;
 PS                                        1:65      1:49      ...       1:1464&lt;br /&gt;
 TEMP                                      1:65      1:49      1:73      1:1464&lt;br /&gt;
 U                                         1:65      1:49      1:73      1:1464&lt;br /&gt;
 V                                         1:65      1:49      1:73      1:1464&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
In the example above the file contains '''AIRE''' and '''PHISINIT''', which are 2D (indexed along i and j indexes, i.e. longitude and latitude == surface fields), '''TSURF''', '''PS''', which are 3D (indexed along i, j and l indexes, i.e. longitude, latitude and time == surface fields evolving in time) and '''TEMP''', '''U''' and '''V''', which are 4D).&lt;br /&gt;
&lt;br /&gt;
== Various tips and pointers ==&lt;br /&gt;
* Never kill the Ferret graphic plot window (by clicking on the cross at the top right corner); Ferret won't recover, you'll have to exit and start again...&lt;br /&gt;
* One can refer to a field coordinates either via indexes '''i''', '''j''', '''k''', '''l''' or via associated real world coordinates '''x''', '''y''', '''z''', '''t'''.&lt;br /&gt;
&lt;br /&gt;
==== How to make a 1D plot ====&lt;br /&gt;
You simply need to specify along which coordinate the variable should be plotted, e.g.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes? plot/i=13/j=15 PS&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Or equivalently&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes? plot PS[i=13,j=15]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Or similarly using real world coordinates, e.g.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes? plot PS[x=12,y=35]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== How to make a 2D map ====&lt;br /&gt;
...&lt;br /&gt;
==== How to compute a zonal average ====&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
== Installation tips ==&lt;br /&gt;
&lt;br /&gt;
===Mac OSX (PyFerret) and Graphics bug===&lt;br /&gt;
&lt;br /&gt;
====Miniconda====&lt;br /&gt;
conda is the preferred environment for the install.  miniconda (a subset of conda) is a lighter-weight option which is a good choice.  Installation instructions for both may be found [[https://docs.conda.io/projects/conda/en/latest/user-guide/install/macos.html here].&lt;br /&gt;
&lt;br /&gt;
====PyFerret====&lt;br /&gt;
Once one has a conda installation of some type, the instructions are straight-forward.  The official installation documentation is [https://github.com/NOAA-PMEL/PyFerret/blob/master/README.md here].&lt;br /&gt;
&lt;br /&gt;
====Commands used on a Macbook Pro with the M2 ARM chipset (summer 2023)====&lt;br /&gt;
&lt;br /&gt;
* Install miniconda using script&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bash Miniconda3-latest-MacOSX-arm64.sh      #can &amp;quot;yes&amp;quot; to activate, but we will deactivate&lt;br /&gt;
&lt;br /&gt;
 # do not automatically activate on startup&lt;br /&gt;
conda config --set auto_activate_base false    &lt;br /&gt;
&lt;br /&gt;
# initialize for tcsh (it will write code into one's .tcshrc file)&lt;br /&gt;
/Users/mwolff/miniconda3/bin/conda init tcsh    &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Install pyferret (latest version)&lt;br /&gt;
It is recommended that one use virtual environments, and alias the environment activation for simplicity.  The following section is to install pyferret in virtual environment called FERRET.&lt;br /&gt;
&lt;br /&gt;
Note: the pyferret command from the official site did NOT work for me.  It complained about not finding the needed packages.  For reference, this command was &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# line below did not work.  it is here for reference&lt;br /&gt;
conda create -n FERRET -c conda-forge pyferret ferret_datasets --yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Instead, use the following instead:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
conda create -n FERRET -c conda-forge/osx-64 pyferret ferret_datasets --yes &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This can be actived using an alias for brevity.  In (t)csh world, this would be &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
alias FERRET &amp;quot;conda activate FERRET&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Dealing with plotting bug.  As can be seen in the post on the Ferret group [https://www.pmel.noaa.gov/maillists/tmap/ferret_users/fu_2019/msg01059.html here], there can be problems for plotting with the latest version(s), even on Linux.  Below, we use a command that works for Mac OSX.&lt;br /&gt;
&lt;br /&gt;
Install a slightly older version of pyferret (i.e., one where the plotting works) using the command in the referenced post in the last paragrph):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# we have had to change the channel from the example in the referenced ferret group post (to install for Mac OS&lt;br /&gt;
conda create -n oldFERRET -c conda-forge/osx-64/label/cf202003 pyferret ferret_datasets --yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assuming an alias oldFERRET that activates this older version, a plotting test can be runs as&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[avory:~] mwolff  oldFERRET&lt;br /&gt;
&lt;br /&gt;
(oldFERRET) [avory:~] mwolff pyferret&lt;br /&gt;
        NOAA/PMEL TMAP&lt;br /&gt;
        PyFerret v7.5 (optimized)&lt;br /&gt;
        Darwin 17.7.0 - 12/16/19 &lt;br /&gt;
        6-Apr-23 10:50&lt;br /&gt;
yes? use coads_climatology&lt;br /&gt;
yes? fill sst[l=1]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Ferret_testplot_coads.png]]&lt;/div&gt;</summary>
		<author><name>Mwolff</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Some_Ferret_tips_and_pointers&amp;diff=1625</id>
		<title>Some Ferret tips and pointers</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Some_Ferret_tips_and_pointers&amp;diff=1625"/>
				<updated>2023-10-17T14:58:15Z</updated>
		
		<summary type="html">&lt;p&gt;Mwolff: /* Commands used on a Macbook Pro with the M2 ARM chipset (summer 2023) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Ferret ==&lt;br /&gt;
Ferret is a NetCDF vizualisation tool which can be used to postprocess and visualize PCM outputs.&lt;br /&gt;
&lt;br /&gt;
This free software is from NOAA (National Oceanic and Atmospheric Administration) and the relevant webpage where you can learn how to install and use it is here:  https://ferret.pmel.noaa.gov/Ferret/&lt;br /&gt;
&lt;br /&gt;
[For Mac users] It is recommended to use/migrate-to PyFerret.  However, there is a bug in later versions that can render plotting problematic even in the Linux environment.  Fortunately, there is a work around, which we will address specifically for the Mac environment (a post to the Ferret listserv is referenced, and it deals specifically with Linux).  See [[Some_Ferret_tips_and_pointers#Installation_tips| section below]].&lt;br /&gt;
&lt;br /&gt;
== For first timers ==&lt;br /&gt;
Ferret is essentially a command line tool so the first thing you'll need to do is launch it from your terminal&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ferret&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
(on some system, e.g. Ubuntu, the executable is called '''ferret_viz''' because another unrelated software also called '''ferret''' exists).&lt;br /&gt;
&lt;br /&gt;
Once under Ferret you should see the Ferret prompt:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes?&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To load a datafile, for example '''diagfi.nc''' issue command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes? use diagfi.nc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Once the file has been loaded, you can query for its contents with the command '''show data'''&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
== Various tips and pointers ==&lt;br /&gt;
...&lt;br /&gt;
==== How to make a 1D plot ====&lt;br /&gt;
...&lt;br /&gt;
==== How to make a 2D map ====&lt;br /&gt;
...&lt;br /&gt;
==== How to compute a zonal average ====&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
== Installation tips ==&lt;br /&gt;
&lt;br /&gt;
===Mac OSX (PyFerret) and Graphics bug===&lt;br /&gt;
&lt;br /&gt;
====Miniconda====&lt;br /&gt;
conda is the preferred environment for the install.  miniconda (a subset of conda) is a lighter-weight option which is a good choice.  Installation instructions for both may be found [[https://docs.conda.io/projects/conda/en/latest/user-guide/install/macos.html here].&lt;br /&gt;
&lt;br /&gt;
====PyFerret====&lt;br /&gt;
Once one has a conda installation of some type, the instructions are straight-forward.  The official installation documentation is [[https://github.com/NOAA-PMEL/PyFerret/blob/master/README.md here].&lt;br /&gt;
&lt;br /&gt;
====Commands used on a Macbook Pro with the M2 ARM chipset (summer 2023)====&lt;br /&gt;
&lt;br /&gt;
* Install miniconda using script&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bash Miniconda3-latest-MacOSX-arm64.sh      #can &amp;quot;yes&amp;quot; to activate, but we will deactivate&lt;br /&gt;
&lt;br /&gt;
 # do not automatically activate on startup&lt;br /&gt;
conda config --set auto_activate_base false    &lt;br /&gt;
&lt;br /&gt;
# initialize for tcsh (it will write code into one's .tcshrc file)&lt;br /&gt;
/Users/mwolff/miniconda3/bin/conda init tcsh    &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Install pyferret (latest version)&lt;br /&gt;
It is recommended that one use virtual environments, and alias the environment activation for simplicity.  The following section is to install pyferret in virtual environment called FERRET.&lt;br /&gt;
&lt;br /&gt;
Note: the pyferret command from the official site did NOT work for me.  It complained about not finding the needed packages.  For reference, this command was &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# line below did not work.  it is here for reference&lt;br /&gt;
conda create -n FERRET -c conda-forge pyferret ferret_datasets --yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Instead, use the following instead:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
conda create -n FERRET -c conda-forge/osx-64 pyferret ferret_datasets --yes &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This can be actived using an alias for brevity.  In (t)csh world, this would be &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
alias FERRET &amp;quot;conda activate FERRET&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Dealing with plotting bug.  As can be seen in the post on the Ferret group [https://www.pmel.noaa.gov/maillists/tmap/ferret_users/fu_2019/msg01059.html here], there can be problems for plotting with the latest version(s), even on Linux.  Below, we use a command that works for Mac OSX.&lt;br /&gt;
&lt;br /&gt;
Install a slightly older version of pyferret (i.e., one where the plotting works) using the command in the referenced post in the last paragrph):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# we have had to change the channel from the example in the referenced ferret group post (to install for Mac OS&lt;br /&gt;
conda create -n oldFERRET -c conda-forge/osx-64/label/cf202003 pyferret ferret_datasets --yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assuming an alias oldFERRET that activates this older version, a plotting test can be runs as&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[avory:~] mwolff  oldFERRET&lt;br /&gt;
&lt;br /&gt;
(oldFERRET) [avory:~] mwolff pyferret&lt;br /&gt;
        NOAA/PMEL TMAP&lt;br /&gt;
        PyFerret v7.5 (optimized)&lt;br /&gt;
        Darwin 17.7.0 - 12/16/19 &lt;br /&gt;
        6-Apr-23 10:50&lt;br /&gt;
yes? use coads_climatology&lt;br /&gt;
yes? fill sst[l=1]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Ferret_testplot_coads.png]]&lt;/div&gt;</summary>
		<author><name>Mwolff</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Some_Ferret_tips_and_pointers&amp;diff=1624</id>
		<title>Some Ferret tips and pointers</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Some_Ferret_tips_and_pointers&amp;diff=1624"/>
				<updated>2023-10-17T14:54:56Z</updated>
		
		<summary type="html">&lt;p&gt;Mwolff: /* Commands used on a Macbook Pro with the M2 ARM chipset (summer 2023) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Ferret ==&lt;br /&gt;
Ferret is a NetCDF vizualisation tool which can be used to postprocess and visualize PCM outputs.&lt;br /&gt;
&lt;br /&gt;
This free software is from NOAA (National Oceanic and Atmospheric Administration) and the relevant webpage where you can learn how to install and use it is here:  https://ferret.pmel.noaa.gov/Ferret/&lt;br /&gt;
&lt;br /&gt;
[For Mac users] It is recommended to use/migrate-to PyFerret.  However, there is a bug in later versions that can render plotting problematic even in the Linux environment.  Fortunately, there is a work around, which we will address specifically for the Mac environment (a post to the Ferret listserv is referenced, and it deals specifically with Linux).  See [[Some_Ferret_tips_and_pointers#Installation_tips| section below]].&lt;br /&gt;
&lt;br /&gt;
== For first timers ==&lt;br /&gt;
Ferret is essentially a command line tool so the first thing you'll need to do is launch it from your terminal&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ferret&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
(on some system, e.g. Ubuntu, the executable is called '''ferret_viz''' because another unrelated software also called '''ferret''' exists).&lt;br /&gt;
&lt;br /&gt;
Once under Ferret you should see the Ferret prompt:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes?&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To load a datafile, for example '''diagfi.nc''' issue command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes? use diagfi.nc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Once the file has been loaded, you can query for its contents with the command '''show data'''&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
== Various tips and pointers ==&lt;br /&gt;
...&lt;br /&gt;
==== How to make a 1D plot ====&lt;br /&gt;
...&lt;br /&gt;
==== How to make a 2D map ====&lt;br /&gt;
...&lt;br /&gt;
==== How to compute a zonal average ====&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
== Installation tips ==&lt;br /&gt;
&lt;br /&gt;
===Mac OSX (PyFerret) and Graphics bug===&lt;br /&gt;
&lt;br /&gt;
====Miniconda====&lt;br /&gt;
conda is the preferred environment for the install.  miniconda (a subset of conda) is a lighter-weight option which is a good choice.  Installation instructions for both may be found [[https://docs.conda.io/projects/conda/en/latest/user-guide/install/macos.html here].&lt;br /&gt;
&lt;br /&gt;
====PyFerret====&lt;br /&gt;
Once one has a conda installation of some type, the instructions are straight-forward.  The official installation documentation is [[https://github.com/NOAA-PMEL/PyFerret/blob/master/README.md here].&lt;br /&gt;
&lt;br /&gt;
====Commands used on a Macbook Pro with the M2 ARM chipset (summer 2023)====&lt;br /&gt;
&lt;br /&gt;
* Install miniconda using script&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bash Miniconda3-latest-MacOSX-arm64.sh      #can &amp;quot;yes&amp;quot; to activate, but we will deactivate&lt;br /&gt;
&lt;br /&gt;
 # do not automatically activate on startup&lt;br /&gt;
conda config --set auto_activate_base false    &lt;br /&gt;
&lt;br /&gt;
# initialize for tcsh (it will write code into one's .tcshrc file)&lt;br /&gt;
/Users/mwolff/miniconda3/bin/conda init tcsh    &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Install pyferret (latest version)&lt;br /&gt;
It is recommended that one use virtual environments, and alias the environment activation for simplicity.  The following section is to install pyferret in virtual environment called FERRET.&lt;br /&gt;
&lt;br /&gt;
Note: the pyferret command from the official site did NOT work for me.  It complained about not finding the needed packages.  For reference, this command was &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# line below did not work.  it is here for reference&lt;br /&gt;
conda create -n FERRET -c conda-forge pyferret ferret_datasets --yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Instead, use the following instead:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
conda create -n FERRET -c conda-forge/osx-64 pyferret ferret_datasets --yes &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This can be actived using an alias for brevity.  In (t)csh world, this would be &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
alias FERRET &amp;quot;conda activate FERRET&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Dealing with plotting bug.  As can be seen in the post on the Ferret group [https://www.pmel.noaa.gov/maillists/tmap/ferret_users/fu_2019/msg01059.html here], there can be problems for plotting with the latest version(s), even on Linux.  Below, we use a command that works for Mac OSX.&lt;br /&gt;
&lt;br /&gt;
Install a slightly older version of pyferret (i.e., one where the plotting works) using the command in the referenced post in the last paragrph):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# we have had to change the channel from the example in the referenced ferret group post (to install for Mac OS&lt;br /&gt;
conda create -n oldFERRET -c conda-forge/osx-64/label/cf202003 pyferret ferret_datasets --yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assuming an alias oldFERRET that activates this older version, a plotting test can be runs as&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
oldFERRET&lt;br /&gt;
&lt;br /&gt;
(oldFERRET) [avory:~] mwolff pyferret&lt;br /&gt;
        NOAA/PMEL TMAP&lt;br /&gt;
        PyFerret v7.5 (optimized)&lt;br /&gt;
        Darwin 17.7.0 - 12/16/19 &lt;br /&gt;
        6-Apr-23 10:50&lt;br /&gt;
yes? use coads_climatology&lt;br /&gt;
yes? fill sst[l=1]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Ferret_testplot_coads.png]]&lt;/div&gt;</summary>
		<author><name>Mwolff</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=File:Ferret_testplot_coads.png&amp;diff=1623</id>
		<title>File:Ferret testplot coads.png</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=File:Ferret_testplot_coads.png&amp;diff=1623"/>
				<updated>2023-10-17T14:53:11Z</updated>
		
		<summary type="html">&lt;p&gt;Mwolff: test plot for Ferret from coads climatology&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;test plot for Ferret from coads climatology&lt;/div&gt;</summary>
		<author><name>Mwolff</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Some_Ferret_tips_and_pointers&amp;diff=1621</id>
		<title>Some Ferret tips and pointers</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Some_Ferret_tips_and_pointers&amp;diff=1621"/>
				<updated>2023-10-17T13:09:19Z</updated>
		
		<summary type="html">&lt;p&gt;Mwolff: /* Ferret */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Ferret ==&lt;br /&gt;
Ferret is a NetCDF vizualisation tool which can be used to postprocess and visualize PCM outputs.&lt;br /&gt;
&lt;br /&gt;
This free software is from NOAA (National Oceanic and Atmospheric Administration) and the relevant webpage where you can learn how to install and use it is here:  https://ferret.pmel.noaa.gov/Ferret/&lt;br /&gt;
&lt;br /&gt;
[For Mac users] It is recommended to use/migrate-to PyFerret.  However, there is a bug in later versions that can render plotting problematic even in the Linux environment.  Fortunately, there is a work around, which we will address specifically for the Mac environment (a post to the Ferret listserv is referenced, and it deals specifically with Linux).  See [[Some_Ferret_tips_and_pointers#Installation_tips| section below]].&lt;br /&gt;
&lt;br /&gt;
== For first timers ==&lt;br /&gt;
Ferret is essentially a command line tool so the first thing you'll need to do is launch it from your terminal&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ferret&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
(on some system, e.g. Ubuntu, the executable is called '''ferret_viz''' because another unrelated software also called '''ferret''' exists).&lt;br /&gt;
&lt;br /&gt;
Once under Ferret you should see the Ferret prompt:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes?&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To load a datafile, for example '''diagfi.nc''' issue command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes? use diagfi.nc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Once the file has been loaded, you can query for its contents with the command '''show data'''&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
== Various tips and pointers ==&lt;br /&gt;
...&lt;br /&gt;
==== How to make a 1D plot ====&lt;br /&gt;
...&lt;br /&gt;
==== How to make a 2D map ====&lt;br /&gt;
...&lt;br /&gt;
==== How to compute a zonal average ====&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
== Installation tips ==&lt;br /&gt;
&lt;br /&gt;
===Mac OSX (PyFerret) and Graphics bug===&lt;br /&gt;
&lt;br /&gt;
====Miniconda====&lt;br /&gt;
conda is the preferred environment for the install.  miniconda (a subset of conda) is a lighter-weight option which is a good choice.  Installation instructions for both may be found [[https://docs.conda.io/projects/conda/en/latest/user-guide/install/macos.html here].&lt;br /&gt;
&lt;br /&gt;
====PyFerret====&lt;br /&gt;
Once one has a conda installation of some type, the instructions are straight-forward.  The official installation documentation is [[https://github.com/NOAA-PMEL/PyFerret/blob/master/README.md here].&lt;br /&gt;
&lt;br /&gt;
====Commands used on a Macbook Pro with the M2 ARM chipset (summer 2023)====&lt;br /&gt;
&lt;br /&gt;
* Install miniconda using script&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bash Miniconda3-latest-MacOSX-arm64.sh      #can &amp;quot;yes&amp;quot; to activate, but we will deactivate&lt;br /&gt;
&lt;br /&gt;
 # do not automatically activate on startup&lt;br /&gt;
conda config --set auto_activate_base false    &lt;br /&gt;
&lt;br /&gt;
# initialize for tcsh (it will write code into one's .tcshrc file)&lt;br /&gt;
/Users/mwolff/miniconda3/bin/conda init tcsh    &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Install pyferret (latest version)&lt;br /&gt;
It is recommended that one use virtual environments, and alias the environment activation for simplicity.  The following section is to install pyferret in virtual environment called FERRET.&lt;br /&gt;
&lt;br /&gt;
Note: the pyferret command from the official site did NOT work for me.  It complained about not finding the needed packages.  For reference, this command was &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# line below did not work.  it is here for reference&lt;br /&gt;
conda create -n FERRET -c conda-forge pyferret ferret_datasets --yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Instead, use the following instead:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
conda create -n FERRET -c conda-forge/osx-64 pyferret ferret_datasets --yes &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This can be actived using an alias for brevity.  In (t)csh world, this would be &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
alias FERRET &amp;quot;conda activate FERRET&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Dealing with plotting bug.  As can be seen in the post on the Ferret group [https://www.pmel.noaa.gov/maillists/tmap/ferret_users/fu_2019/msg01059.html here], there can be problems for plotting with the latest version(s), even on Linux.  Below, we use a command that works for Mac OSX.&lt;br /&gt;
&lt;br /&gt;
Install a slightly older version of pyferret (i.e., one where the plotting works) using the command in the referenced post in the last paragrph):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# we have had to change the channel from the example in the referenced ferret group post (to install for Mac OS&lt;br /&gt;
conda create -n oldFERRET -c conda-forge/osx-64/label/cf202003 pyferret ferret_datasets --yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assuming an alias oldFERRET that activates this older version, a plotting test can be runs as&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
oldFERRET&lt;br /&gt;
&lt;br /&gt;
(oldFERRET) [avory:~] mwolff pyferret&lt;br /&gt;
        NOAA/PMEL TMAP&lt;br /&gt;
        PyFerret v7.5 (optimized)&lt;br /&gt;
        Darwin 17.7.0 - 12/16/19 &lt;br /&gt;
        6-Apr-23 10:50&lt;br /&gt;
yes? use coads_climatology&lt;br /&gt;
yes? fill sst[l=1]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mwolff</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Some_Ferret_tips_and_pointers&amp;diff=1620</id>
		<title>Some Ferret tips and pointers</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Some_Ferret_tips_and_pointers&amp;diff=1620"/>
				<updated>2023-10-17T13:06:34Z</updated>
		
		<summary type="html">&lt;p&gt;Mwolff: /* Commands used on a Macbook Pro with the M2 ARM chipset (summer 2023) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Ferret ==&lt;br /&gt;
Ferret is a NetCDF vizualisation tool which can be used to postprocess and visualize PCM outputs.&lt;br /&gt;
&lt;br /&gt;
This free software is from NOAA (National Oceanic and Atmospheric Administration) and the relevant webpage where you can learn how to install and use it is here:  https://ferret.pmel.noaa.gov/Ferret/&lt;br /&gt;
&lt;br /&gt;
[For Mac users] It is recommended to use/migrate-to PyFerret.  However, There is a bug in the Mac OSX version as of 2023-June with respect to plotting.  The bug is not subtle as the plotting does not work.  See [[Some_Ferret_tips_and_pointers#Installation_tips| section below]].&lt;br /&gt;
&lt;br /&gt;
== For first timers ==&lt;br /&gt;
Ferret is essentially a command line tool so the first thing you'll need to do is launch it from your terminal&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ferret&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
(on some system, e.g. Ubuntu, the executable is called '''ferret_viz''' because another unrelated software also called '''ferret''' exists).&lt;br /&gt;
&lt;br /&gt;
Once under Ferret you should see the Ferret prompt:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes?&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To load a datafile, for example '''diagfi.nc''' issue command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes? use diagfi.nc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Once the file has been loaded, you can query for its contents with the command '''show data'''&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
== Various tips and pointers ==&lt;br /&gt;
...&lt;br /&gt;
==== How to make a 1D plot ====&lt;br /&gt;
...&lt;br /&gt;
==== How to make a 2D map ====&lt;br /&gt;
...&lt;br /&gt;
==== How to compute a zonal average ====&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
== Installation tips ==&lt;br /&gt;
&lt;br /&gt;
===Mac OSX (PyFerret) and Graphics bug===&lt;br /&gt;
&lt;br /&gt;
====Miniconda====&lt;br /&gt;
conda is the preferred environment for the install.  miniconda (a subset of conda) is a lighter-weight option which is a good choice.  Installation instructions for both may be found [[https://docs.conda.io/projects/conda/en/latest/user-guide/install/macos.html here].&lt;br /&gt;
&lt;br /&gt;
====PyFerret====&lt;br /&gt;
Once one has a conda installation of some type, the instructions are straight-forward.  The official installation documentation is [[https://github.com/NOAA-PMEL/PyFerret/blob/master/README.md here].&lt;br /&gt;
&lt;br /&gt;
====Commands used on a Macbook Pro with the M2 ARM chipset (summer 2023)====&lt;br /&gt;
&lt;br /&gt;
* Install miniconda using script&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bash Miniconda3-latest-MacOSX-arm64.sh      #can &amp;quot;yes&amp;quot; to activate, but we will deactivate&lt;br /&gt;
&lt;br /&gt;
 # do not automatically activate on startup&lt;br /&gt;
conda config --set auto_activate_base false    &lt;br /&gt;
&lt;br /&gt;
# initialize for tcsh (it will write code into one's .tcshrc file)&lt;br /&gt;
/Users/mwolff/miniconda3/bin/conda init tcsh    &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Install pyferret (latest version)&lt;br /&gt;
It is recommended that one use virtual environments, and alias the environment activation for simplicity.  The following section is to install pyferret in virtual environment called FERRET.&lt;br /&gt;
&lt;br /&gt;
Note: the pyferret command from the official site did NOT work for me.  It complained about not finding the needed packages.  For reference, this command was &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# line below did not work.  it is here for reference&lt;br /&gt;
conda create -n FERRET -c conda-forge pyferret ferret_datasets --yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Instead, use the following instead:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
conda create -n FERRET -c conda-forge/osx-64 pyferret ferret_datasets --yes &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This can be actived using an alias for brevity.  In (t)csh world, this would be &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
alias FERRET &amp;quot;conda activate FERRET&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Dealing with plotting bug.  As can be seen in the post on the Ferret group [https://www.pmel.noaa.gov/maillists/tmap/ferret_users/fu_2019/msg01059.html here], there can be problems for plotting with the latest version(s), even on Linux.  Below, we use a command that works for Mac OSX.&lt;br /&gt;
&lt;br /&gt;
Install a slightly older version of pyferret (i.e., one where the plotting works) using the command in the referenced post in the last paragrph):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# we have had to change the channel from the example in the referenced ferret group post (to install for Mac OS&lt;br /&gt;
conda create -n oldFERRET -c conda-forge/osx-64/label/cf202003 pyferret ferret_datasets --yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assuming an alias oldFERRET that activates this older version, a plotting test can be runs as&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
oldFERRET&lt;br /&gt;
&lt;br /&gt;
(oldFERRET) [avory:~] mwolff pyferret&lt;br /&gt;
        NOAA/PMEL TMAP&lt;br /&gt;
        PyFerret v7.5 (optimized)&lt;br /&gt;
        Darwin 17.7.0 - 12/16/19 &lt;br /&gt;
        6-Apr-23 10:50&lt;br /&gt;
yes? use coads_climatology&lt;br /&gt;
yes? fill sst[l=1]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mwolff</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Some_Ferret_tips_and_pointers&amp;diff=1619</id>
		<title>Some Ferret tips and pointers</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Some_Ferret_tips_and_pointers&amp;diff=1619"/>
				<updated>2023-10-17T12:54:24Z</updated>
		
		<summary type="html">&lt;p&gt;Mwolff: /* Mac OSX (PyFerret) and Graphics bug */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Ferret ==&lt;br /&gt;
Ferret is a NetCDF vizualisation tool which can be used to postprocess and visualize PCM outputs.&lt;br /&gt;
&lt;br /&gt;
This free software is from NOAA (National Oceanic and Atmospheric Administration) and the relevant webpage where you can learn how to install and use it is here:  https://ferret.pmel.noaa.gov/Ferret/&lt;br /&gt;
&lt;br /&gt;
[For Mac users] It is recommended to use/migrate-to PyFerret.  However, There is a bug in the Mac OSX version as of 2023-June with respect to plotting.  The bug is not subtle as the plotting does not work.  See [[Some_Ferret_tips_and_pointers#Installation_tips| section below]].&lt;br /&gt;
&lt;br /&gt;
== For first timers ==&lt;br /&gt;
Ferret is essentially a command line tool so the first thing you'll need to do is launch it from your terminal&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ferret&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
(on some system, e.g. Ubuntu, the executable is called '''ferret_viz''' because another unrelated software also called '''ferret''' exists).&lt;br /&gt;
&lt;br /&gt;
Once under Ferret you should see the Ferret prompt:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes?&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To load a datafile, for example '''diagfi.nc''' issue command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes? use diagfi.nc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Once the file has been loaded, you can query for its contents with the command '''show data'''&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
== Various tips and pointers ==&lt;br /&gt;
...&lt;br /&gt;
==== How to make a 1D plot ====&lt;br /&gt;
...&lt;br /&gt;
==== How to make a 2D map ====&lt;br /&gt;
...&lt;br /&gt;
==== How to compute a zonal average ====&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
== Installation tips ==&lt;br /&gt;
&lt;br /&gt;
===Mac OSX (PyFerret) and Graphics bug===&lt;br /&gt;
&lt;br /&gt;
====Miniconda====&lt;br /&gt;
conda is the preferred environment for the install.  miniconda (a subset of conda) is a lighter-weight option which is a good choice.  Installation instructions for both may be found [[https://docs.conda.io/projects/conda/en/latest/user-guide/install/macos.html here].&lt;br /&gt;
&lt;br /&gt;
====PyFerret====&lt;br /&gt;
Once one has a conda installation of some type, the instructions are straight-forward.  The official installation documentation is [[https://github.com/NOAA-PMEL/PyFerret/blob/master/README.md here].&lt;br /&gt;
&lt;br /&gt;
====Commands used on a Macbook Pro with the M2 ARM chipset (summer 2023)====&lt;br /&gt;
&lt;br /&gt;
* Install miniconda using script&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bash Miniconda3-latest-MacOSX-arm64.sh      #can &amp;quot;yes&amp;quot; to activate, but we will deactivate&lt;br /&gt;
&lt;br /&gt;
 # do not automatically activate on startup&lt;br /&gt;
conda config --set auto_activate_base false    &lt;br /&gt;
&lt;br /&gt;
# initialize for tcsh (it will write code into one's .tcshrc file)&lt;br /&gt;
/Users/mwolff/miniconda3/bin/conda init tcsh    &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is recommended that one use virtual environments, and alias the environment activation for simplicity.  The following section is to install pyferret in virtual environment called FERRET.&lt;br /&gt;
&lt;br /&gt;
Note: the pyferret command from the official site did NOT work for me.  It complained about not finding the needed packages.  For reference, this command was &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# line below did not work.  it is here for reference&lt;br /&gt;
conda create -n FERRET -c conda-forge pyferret ferret_datasets --yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Instead, use the following instead:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
conda create -n FERRET -c conda-forge/osx-64 pyferret ferret_datasets --yes &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This can be actived using an alias for brevity.  In (t)csh world, this would be &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
alias FERRET &amp;quot;conda activate FERRET&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mwolff</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Some_Ferret_tips_and_pointers&amp;diff=1618</id>
		<title>Some Ferret tips and pointers</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Some_Ferret_tips_and_pointers&amp;diff=1618"/>
				<updated>2023-10-17T12:35:24Z</updated>
		
		<summary type="html">&lt;p&gt;Mwolff: /* Installation tips */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Ferret ==&lt;br /&gt;
Ferret is a NetCDF vizualisation tool which can be used to postprocess and visualize PCM outputs.&lt;br /&gt;
&lt;br /&gt;
This free software is from NOAA (National Oceanic and Atmospheric Administration) and the relevant webpage where you can learn how to install and use it is here:  https://ferret.pmel.noaa.gov/Ferret/&lt;br /&gt;
&lt;br /&gt;
[For Mac users] It is recommended to use/migrate-to PyFerret.  However, There is a bug in the Mac OSX version as of 2023-June with respect to plotting.  The bug is not subtle as the plotting does not work.  See [[Some_Ferret_tips_and_pointers#Installation_tips| section below]].&lt;br /&gt;
&lt;br /&gt;
== For first timers ==&lt;br /&gt;
Ferret is essentially a command line tool so the first thing you'll need to do is launch it from your terminal&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ferret&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
(on some system, e.g. Ubuntu, the executable is called '''ferret_viz''' because another unrelated software also called '''ferret''' exists).&lt;br /&gt;
&lt;br /&gt;
Once under Ferret you should see the Ferret prompt:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes?&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To load a datafile, for example '''diagfi.nc''' issue command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes? use diagfi.nc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Once the file has been loaded, you can query for its contents with the command '''show data'''&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
== Various tips and pointers ==&lt;br /&gt;
...&lt;br /&gt;
==== How to make a 1D plot ====&lt;br /&gt;
...&lt;br /&gt;
==== How to make a 2D map ====&lt;br /&gt;
...&lt;br /&gt;
==== How to compute a zonal average ====&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
== Installation tips ==&lt;br /&gt;
&lt;br /&gt;
===Mac OSX (PyFerret) and Graphics bug===&lt;br /&gt;
&lt;br /&gt;
====Miniconda====&lt;br /&gt;
conda is the preferred environment for the install.  miniconda (a subset of conda) is a lighter-weight option which is a good choice.  Installation instructions for both may be found [[https://docs.conda.io/projects/conda/en/latest/user-guide/install/macos.html|here]].&lt;br /&gt;
&lt;br /&gt;
====PyFerret====&lt;br /&gt;
Once one has a conda installation of some type, the instructions are straight-forward.  The official installation documentation is [[https://github.com/NOAA-PMEL/PyFerret/blob/master/README.md|here]].&lt;br /&gt;
&lt;br /&gt;
====Commands used on a Macbook Pro with the M2 ARM chipset (summer 2023)====&lt;/div&gt;</summary>
		<author><name>Mwolff</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Some_Ferret_tips_and_pointers&amp;diff=1617</id>
		<title>Some Ferret tips and pointers</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Some_Ferret_tips_and_pointers&amp;diff=1617"/>
				<updated>2023-10-17T12:14:14Z</updated>
		
		<summary type="html">&lt;p&gt;Mwolff: /* Ferret */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Ferret ==&lt;br /&gt;
Ferret is a NetCDF vizualisation tool which can be used to postprocess and visualize PCM outputs.&lt;br /&gt;
&lt;br /&gt;
This free software is from NOAA (National Oceanic and Atmospheric Administration) and the relevant webpage where you can learn how to install and use it is here:  https://ferret.pmel.noaa.gov/Ferret/&lt;br /&gt;
&lt;br /&gt;
[For Mac users] It is recommended to use/migrate-to PyFerret.  However, There is a bug in the Mac OSX version as of 2023-June with respect to plotting.  The bug is not subtle as the plotting does not work.  See [[Some_Ferret_tips_and_pointers#Installation_tips| section below]].&lt;br /&gt;
&lt;br /&gt;
== For first timers ==&lt;br /&gt;
Ferret is essentially a command line tool so the first thing you'll need to do is launch it from your terminal&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ferret&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
(on some system, e.g. Ubuntu, the executable is called '''ferret_viz''' because another unrelated software also called '''ferret''' exists).&lt;br /&gt;
&lt;br /&gt;
Once under Ferret you should see the Ferret prompt:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes?&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To load a datafile, for example '''diagfi.nc''' issue command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes? use diagfi.nc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Once the file has been loaded, you can query for its contents with the command '''show data'''&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
== Various tips and pointers ==&lt;br /&gt;
...&lt;br /&gt;
==== How to make a 1D plot ====&lt;br /&gt;
...&lt;br /&gt;
==== How to make a 2D map ====&lt;br /&gt;
...&lt;br /&gt;
==== How to compute a zonal average ====&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
== Installation tips ==&lt;br /&gt;
&lt;br /&gt;
===Mac Graphics bug===&lt;/div&gt;</summary>
		<author><name>Mwolff</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Some_Ferret_tips_and_pointers&amp;diff=1608</id>
		<title>Some Ferret tips and pointers</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Some_Ferret_tips_and_pointers&amp;diff=1608"/>
				<updated>2023-10-17T06:19:14Z</updated>
		
		<summary type="html">&lt;p&gt;Mwolff: /* Graphics bug in Mac OSX version as of summer 2023 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Ferret ==&lt;br /&gt;
Ferret is a NetCDF vizualisation tool which can be used to postprocess and visualize PCM outputs.&lt;br /&gt;
&lt;br /&gt;
This free software is from NOAA (National Oceanic and Atmospheric Administration) and the relevant webpage where you can learn how to install and use it is here:  https://ferret.pmel.noaa.gov/Ferret/&lt;br /&gt;
&lt;br /&gt;
[For Mac users] There is a bug in the Mac OSX version as of 2023-June with respect to plotting.  The bug is not subtle as the plotting does not work.  See [[Some_Ferret_tips_and_pointers#Installation_tips| section below]].&lt;br /&gt;
&lt;br /&gt;
== For first timers ==&lt;br /&gt;
Ferret is essentially a command line tool so the first thing you'll need to do is launch it from your terminal&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ferret&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
(on some system, e.g. Ubuntu, the executable is called '''ferret_viz''' because another unrelated software also called '''ferret''' exists).&lt;br /&gt;
&lt;br /&gt;
Once under Ferret you should see the Ferret prompt:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes?&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To load a datafile, for example '''diagfi.nc''' issue command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes? use diagfi.nc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Once the file has been loaded, you can query for its contents with the command '''show data'''&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
== Various tips and pointers ==&lt;br /&gt;
...&lt;br /&gt;
==== How to make a 1D plot ====&lt;br /&gt;
...&lt;br /&gt;
==== How to make a 2D map ====&lt;br /&gt;
...&lt;br /&gt;
==== How to compute a zonal average ====&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
== Installation tips ==&lt;br /&gt;
&lt;br /&gt;
===Mac Graphics bug===&lt;/div&gt;</summary>
		<author><name>Mwolff</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Some_Ferret_tips_and_pointers&amp;diff=1607</id>
		<title>Some Ferret tips and pointers</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Some_Ferret_tips_and_pointers&amp;diff=1607"/>
				<updated>2023-10-17T06:18:19Z</updated>
		
		<summary type="html">&lt;p&gt;Mwolff: /* Installation tips */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Ferret ==&lt;br /&gt;
Ferret is a NetCDF vizualisation tool which can be used to postprocess and visualize PCM outputs.&lt;br /&gt;
&lt;br /&gt;
This free software is from NOAA (National Oceanic and Atmospheric Administration) and the relevant webpage where you can learn how to install and use it is here:  https://ferret.pmel.noaa.gov/Ferret/&lt;br /&gt;
&lt;br /&gt;
[For Mac users] There is a bug in the Mac OSX version as of 2023-June with respect to plotting.  The bug is not subtle as the plotting does not work.  See [[Some_Ferret_tips_and_pointers#Installation_tips| section below]].&lt;br /&gt;
&lt;br /&gt;
== For first timers ==&lt;br /&gt;
Ferret is essentially a command line tool so the first thing you'll need to do is launch it from your terminal&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ferret&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
(on some system, e.g. Ubuntu, the executable is called '''ferret_viz''' because another unrelated software also called '''ferret''' exists).&lt;br /&gt;
&lt;br /&gt;
Once under Ferret you should see the Ferret prompt:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes?&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To load a datafile, for example '''diagfi.nc''' issue command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes? use diagfi.nc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Once the file has been loaded, you can query for its contents with the command '''show data'''&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
== Various tips and pointers ==&lt;br /&gt;
...&lt;br /&gt;
==== How to make a 1D plot ====&lt;br /&gt;
...&lt;br /&gt;
==== How to make a 2D map ====&lt;br /&gt;
...&lt;br /&gt;
==== How to compute a zonal average ====&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
== Installation tips ==&lt;br /&gt;
&lt;br /&gt;
===Graphics bug in Mac OSX version as of summer 2023===&lt;/div&gt;</summary>
		<author><name>Mwolff</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Some_Ferret_tips_and_pointers&amp;diff=1606</id>
		<title>Some Ferret tips and pointers</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Some_Ferret_tips_and_pointers&amp;diff=1606"/>
				<updated>2023-10-17T06:17:34Z</updated>
		
		<summary type="html">&lt;p&gt;Mwolff: /* Ferret */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Ferret ==&lt;br /&gt;
Ferret is a NetCDF vizualisation tool which can be used to postprocess and visualize PCM outputs.&lt;br /&gt;
&lt;br /&gt;
This free software is from NOAA (National Oceanic and Atmospheric Administration) and the relevant webpage where you can learn how to install and use it is here:  https://ferret.pmel.noaa.gov/Ferret/&lt;br /&gt;
&lt;br /&gt;
[For Mac users] There is a bug in the Mac OSX version as of 2023-June with respect to plotting.  The bug is not subtle as the plotting does not work.  See [[Some_Ferret_tips_and_pointers#Installation_tips| section below]].&lt;br /&gt;
&lt;br /&gt;
== For first timers ==&lt;br /&gt;
Ferret is essentially a command line tool so the first thing you'll need to do is launch it from your terminal&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ferret&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
(on some system, e.g. Ubuntu, the executable is called '''ferret_viz''' because another unrelated software also called '''ferret''' exists).&lt;br /&gt;
&lt;br /&gt;
Once under Ferret you should see the Ferret prompt:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes?&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To load a datafile, for example '''diagfi.nc''' issue command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes? use diagfi.nc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Once the file has been loaded, you can query for its contents with the command '''show data'''&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
== Various tips and pointers ==&lt;br /&gt;
...&lt;br /&gt;
==== How to make a 1D plot ====&lt;br /&gt;
...&lt;br /&gt;
==== How to make a 2D map ====&lt;br /&gt;
...&lt;br /&gt;
==== How to compute a zonal average ====&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
== Installation tips ==&lt;/div&gt;</summary>
		<author><name>Mwolff</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Some_Ferret_tips_and_pointers&amp;diff=1605</id>
		<title>Some Ferret tips and pointers</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Some_Ferret_tips_and_pointers&amp;diff=1605"/>
				<updated>2023-10-17T06:15:11Z</updated>
		
		<summary type="html">&lt;p&gt;Mwolff: /* Ferret */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Ferret ==&lt;br /&gt;
Ferret is a NetCDF vizualisation tool which can be used to postprocess and visualize PCM outputs.&lt;br /&gt;
&lt;br /&gt;
This free software is from NOAA (National Oceanic and Atmospheric Administration) and the relevant webpage where you can learn how to install and use it is here:  https://ferret.pmel.noaa.gov/Ferret/&lt;br /&gt;
&lt;br /&gt;
[For Mac users] There is a bug in the Mac OSX version as of 2023-June with respect to plotting.  The bug is not subtle as the plotting does not work.  See section below [[Some_Ferret_tips_and_pointers#Installation_tips]].&lt;br /&gt;
&lt;br /&gt;
== For first timers ==&lt;br /&gt;
Ferret is essentially a command line tool so the first thing you'll need to do is launch it from your terminal&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ferret&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
(on some system, e.g. Ubuntu, the executable is called '''ferret_viz''' because another unrelated software also called '''ferret''' exists).&lt;br /&gt;
&lt;br /&gt;
Once under Ferret you should see the Ferret prompt:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes?&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To load a datafile, for example '''diagfi.nc''' issue command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes? use diagfi.nc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Once the file has been loaded, you can query for its contents with the command '''show data'''&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
== Various tips and pointers ==&lt;br /&gt;
...&lt;br /&gt;
==== How to make a 1D plot ====&lt;br /&gt;
...&lt;br /&gt;
==== How to make a 2D map ====&lt;br /&gt;
...&lt;br /&gt;
==== How to compute a zonal average ====&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
== Installation tips ==&lt;/div&gt;</summary>
		<author><name>Mwolff</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Some_Ferret_tips_and_pointers&amp;diff=1604</id>
		<title>Some Ferret tips and pointers</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Some_Ferret_tips_and_pointers&amp;diff=1604"/>
				<updated>2023-10-17T06:13:36Z</updated>
		
		<summary type="html">&lt;p&gt;Mwolff: /* Ferret */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Ferret ==&lt;br /&gt;
Ferret is a NetCDF vizualisation tool which can be used to postprocess and visualize PCM outputs.&lt;br /&gt;
&lt;br /&gt;
This free software is from NOAA (National Oceanic and Atmospheric Administration) and the relevant webpage where you can learn how to install and use it is here:  https://ferret.pmel.noaa.gov/Ferret/&lt;br /&gt;
&lt;br /&gt;
[For Mac users] There is a bug in the Mac OSX version as of 2023-June with respect to plotting.  The bug is not subtle as the plotting does not work.  See section below [[#Installation_tips]]&lt;br /&gt;
&lt;br /&gt;
== For first timers ==&lt;br /&gt;
Ferret is essentially a command line tool so the first thing you'll need to do is launch it from your terminal&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ferret&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
(on some system, e.g. Ubuntu, the executable is called '''ferret_viz''' because another unrelated software also called '''ferret''' exists).&lt;br /&gt;
&lt;br /&gt;
Once under Ferret you should see the Ferret prompt:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes?&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To load a datafile, for example '''diagfi.nc''' issue command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes? use diagfi.nc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Once the file has been loaded, you can query for its contents with the command '''show data'''&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
== Various tips and pointers ==&lt;br /&gt;
...&lt;br /&gt;
==== How to make a 1D plot ====&lt;br /&gt;
...&lt;br /&gt;
==== How to make a 2D map ====&lt;br /&gt;
...&lt;br /&gt;
==== How to compute a zonal average ====&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
== Installation tips ==&lt;/div&gt;</summary>
		<author><name>Mwolff</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Some_Ferret_tips_and_pointers&amp;diff=1603</id>
		<title>Some Ferret tips and pointers</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Some_Ferret_tips_and_pointers&amp;diff=1603"/>
				<updated>2023-10-17T06:12:41Z</updated>
		
		<summary type="html">&lt;p&gt;Mwolff: /* Various tips and pointers */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Ferret ==&lt;br /&gt;
Ferret is a NetCDF vizualisation tool which can be used to postprocess and visualize PCM outputs.&lt;br /&gt;
&lt;br /&gt;
This free software is from NOAA (National Oceanic and Atmospheric Administration) and the relevant webpage where you can learn how to install and use it is here:  https://ferret.pmel.noaa.gov/Ferret/&lt;br /&gt;
&lt;br /&gt;
[For Mac users] There is a bug in the Mac OSX version as of 2023-June with respect to plotting.  The bug is not subtle as the plotting does not work.  See section below #Installation_tips&lt;br /&gt;
&lt;br /&gt;
== For first timers ==&lt;br /&gt;
Ferret is essentially a command line tool so the first thing you'll need to do is launch it from your terminal&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ferret&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
(on some system, e.g. Ubuntu, the executable is called '''ferret_viz''' because another unrelated software also called '''ferret''' exists).&lt;br /&gt;
&lt;br /&gt;
Once under Ferret you should see the Ferret prompt:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes?&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To load a datafile, for example '''diagfi.nc''' issue command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes? use diagfi.nc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Once the file has been loaded, you can query for its contents with the command '''show data'''&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
== Various tips and pointers ==&lt;br /&gt;
...&lt;br /&gt;
==== How to make a 1D plot ====&lt;br /&gt;
...&lt;br /&gt;
==== How to make a 2D map ====&lt;br /&gt;
...&lt;br /&gt;
==== How to compute a zonal average ====&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
== Installation tips ==&lt;/div&gt;</summary>
		<author><name>Mwolff</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Some_Ferret_tips_and_pointers&amp;diff=1602</id>
		<title>Some Ferret tips and pointers</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Some_Ferret_tips_and_pointers&amp;diff=1602"/>
				<updated>2023-10-17T06:11:50Z</updated>
		
		<summary type="html">&lt;p&gt;Mwolff: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Ferret ==&lt;br /&gt;
Ferret is a NetCDF vizualisation tool which can be used to postprocess and visualize PCM outputs.&lt;br /&gt;
&lt;br /&gt;
This free software is from NOAA (National Oceanic and Atmospheric Administration) and the relevant webpage where you can learn how to install and use it is here:  https://ferret.pmel.noaa.gov/Ferret/&lt;br /&gt;
&lt;br /&gt;
[For Mac users] There is a bug in the Mac OSX version as of 2023-June with respect to plotting.  The bug is not subtle as the plotting does not work.  See section below #Installation_tips&lt;br /&gt;
&lt;br /&gt;
== For first timers ==&lt;br /&gt;
Ferret is essentially a command line tool so the first thing you'll need to do is launch it from your terminal&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ferret&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
(on some system, e.g. Ubuntu, the executable is called '''ferret_viz''' because another unrelated software also called '''ferret''' exists).&lt;br /&gt;
&lt;br /&gt;
Once under Ferret you should see the Ferret prompt:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes?&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To load a datafile, for example '''diagfi.nc''' issue command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes? use diagfi.nc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Once the file has been loaded, you can query for its contents with the command '''show data'''&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
== Various tips and pointers ==&lt;br /&gt;
...&lt;br /&gt;
==== How to make a 1D plot ====&lt;br /&gt;
...&lt;br /&gt;
==== How to make a 2D map ====&lt;br /&gt;
...&lt;br /&gt;
==== How to compute a zonal average ====&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
== Installation tips&lt;/div&gt;</summary>
		<author><name>Mwolff</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Some_Ferret_tips_and_pointers&amp;diff=1601</id>
		<title>Some Ferret tips and pointers</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Some_Ferret_tips_and_pointers&amp;diff=1601"/>
				<updated>2023-10-17T05:49:38Z</updated>
		
		<summary type="html">&lt;p&gt;Mwolff: /* Ferret */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Ferret ==&lt;br /&gt;
Ferret is a NetCDF vizualisation tool which can be used to postprocess and visualize PCM outputs.&lt;br /&gt;
&lt;br /&gt;
This free software is from NOAA (National Oceanic and Atmospheric Administration) and the relevant webpage where you can learn how to install and use it is here:  https://ferret.pmel.noaa.gov/Ferret/&lt;br /&gt;
&lt;br /&gt;
[For Mac users] There is a bug in the Mac OSX version as of 2023-June with respect to plotting.  The bug is not subtle as the plotting does not work.  Here is a discussion of how to kludge the problem by having two version of Ferret: &lt;br /&gt;
the latest version for analyses, and an older version where the plotting works [LINK TO BE INSERTED].&lt;br /&gt;
&lt;br /&gt;
== For first timers ==&lt;br /&gt;
Ferret is essentially a command line tool so the first thing you'll need to do is launch it from your terminal&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ferret&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
(on some system, e.g. Ubuntu, the executable is called '''ferret_viz''' because another unrelated software also called '''ferret''' exists).&lt;br /&gt;
&lt;br /&gt;
Once under Ferret you should see the Ferret prompt:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes?&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To load a datafile, for example '''diagfi.nc''' issue command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes? use diagfi.nc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Once the file has been loaded, you can query for its contents with the command '''show data'''&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
== Various tips and pointers ==&lt;br /&gt;
...&lt;br /&gt;
==== How to make a 1D plot ====&lt;br /&gt;
...&lt;br /&gt;
==== How to make a 2D map ====&lt;br /&gt;
...&lt;br /&gt;
==== How to compute a zonal average ====&lt;br /&gt;
...&lt;/div&gt;</summary>
		<author><name>Mwolff</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Some_Ferret_tips_and_pointers&amp;diff=1600</id>
		<title>Some Ferret tips and pointers</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Some_Ferret_tips_and_pointers&amp;diff=1600"/>
				<updated>2023-10-17T05:48:30Z</updated>
		
		<summary type="html">&lt;p&gt;Mwolff: /* Ferret */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Ferret ==&lt;br /&gt;
Ferret is a NetCDF vizualisation tool which can be used to postprocess and visualize PCM outputs.&lt;br /&gt;
&lt;br /&gt;
This free software is from NOAA (National Oceanic and Atmospheric Administration) and the relevant webpage where you can learn how to install and use it is here:  https://ferret.pmel.noaa.gov/Ferret/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There is a bug in the Mac OSX version as of 2023-October with respect to plotting.  The bug is not subtle as the plotting does not work.  Here is a discussion of how to by pass the problem by having two version of Ferret: &lt;br /&gt;
the latest version for analyses, and an older version where the plotting works [LINK TO BE INSERTED].&lt;br /&gt;
&lt;br /&gt;
== For first timers ==&lt;br /&gt;
Ferret is essentially a command line tool so the first thing you'll need to do is launch it from your terminal&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ferret&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
(on some system, e.g. Ubuntu, the executable is called '''ferret_viz''' because another unrelated software also called '''ferret''' exists).&lt;br /&gt;
&lt;br /&gt;
Once under Ferret you should see the Ferret prompt:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes?&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To load a datafile, for example '''diagfi.nc''' issue command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yes? use diagfi.nc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Once the file has been loaded, you can query for its contents with the command '''show data'''&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
== Various tips and pointers ==&lt;br /&gt;
...&lt;br /&gt;
==== How to make a 1D plot ====&lt;br /&gt;
...&lt;br /&gt;
==== How to make a 2D map ====&lt;br /&gt;
...&lt;br /&gt;
==== How to compute a zonal average ====&lt;br /&gt;
...&lt;/div&gt;</summary>
		<author><name>Mwolff</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Quick_Install_and_Run_Mars_PCM&amp;diff=1394</id>
		<title>Quick Install and Run Mars PCM</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php?title=Quick_Install_and_Run_Mars_PCM&amp;diff=1394"/>
				<updated>2023-04-11T08:38:25Z</updated>
		
		<summary type="html">&lt;p&gt;Mwolff: Created page with &amp;quot;  == Dude, on est là. ==&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
== Dude, on est là. ==&lt;/div&gt;</summary>
		<author><name>Mwolff</name></author>	</entry>

	</feed>