
<?xml
version="1.0" encoding="utf-8"?>
<rss version="2.0" 
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:atom="http://www.w3.org/2005/Atom"
>

<channel xml:lang="en">
	<title>SURFEX</title>
	<link>https://www.umr-cnrm.fr/surfex/</link>
	<description> SURFEX (Surface Externalis&#233;e, in French) is a surface modelling platform developed by M&#233;t&#233;o-France in cooperation with the scientific community.
SURFEX is composed of various physical models for natural land surface, urbanized areas, lakes and oceans. It also simulates chemistry and aerosols surface processes and can be used for assimilation of surface and near surface variables.
SURFEX has its own initialisation procedures and can be used in stand alone mode and coupled to an atmospheric model.
In SURFEX, each model grid box is represented by four surface types : sea or ocean, water bodies (lakes, ...), urban areas and nature (soil and vegetation). Each surface type is modeled with a specific surface model and the total flux of the grid box results from the addition of the individual fluxes weighted by their respective fraction. Summary of the main components of the surfex model Tile NATURE
The model for the tile &#034;Nature&#034; is the ISBA (interaction soil-biosphere-atmosphere) model Tile TOWN
The model for the tile &#034;Town&#034; is the TEB (Town energy balance) model Tile OCEAN
Surface fluxes above the tile &#034;sea and ocean&#034; can be treated in a very simple way or by using more physically based model Tile WATER
Surface fluxes above the lake tile can be treated in a very simple way or by using the FLake model Chemical scheme
Emission and deposition of dust and aerosols are treated over land and oceans Data assimilation
Assimilation of near surface meteorological variables and remotely sensed variables can be performed using an optimal interpolation or an Ensemble Kalman filter scheme </description>
	<language>en</language>
	<generator>SPIP - www.spip.net</generator>
	<atom:link href="https://www.umr-cnrm.fr/surfex/spip.php?id_rubrique=122&amp;page=backend" rel="self" type="application/rss+xml" />

	<image>
		<title>SURFEX</title>
		<url>https://www.umr-cnrm.fr/surfex/IMG/logo/test-logo-bleu2.png?1771324290</url>
		<link>https://www.umr-cnrm.fr/surfex/</link>
		<height>22</height>
		<width>144</width>
	</image>



<item xml:lang="en">
		<title>To run STRATO</title>
		<link>https://www.umr-cnrm.fr/surfex/spip.php?article465</link>
		<guid isPermaLink="true">https://www.umr-cnrm.fr/surfex/spip.php?article465</guid>
		<dc:date>2026-01-26T15:54:22Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>en</dc:language>
		<dc:creator>Minvielle</dc:creator>



		<description>
&lt;p&gt;Python scripts have been recently adapted to Python3. If your default python version is not Python3, please change &#034;python&#034; by &#034;python3&#034; in TESTS/PC/python.exe On BELENOS, the default python is now Python3. But if in your bashrc or bash_profile you load python, please verify that you load python3 version. For a run on PC, cp TESTS/PC/script_all.sh in the run directory: cp TESTS/PC/script_all.sh . For a run on BELENOS, cp TESTS/BEAUFIX/script_all.sh in run directory: cp (&#8230;)&lt;/p&gt;


-
&lt;a href="https://www.umr-cnrm.fr/surfex/spip.php?rubrique122" rel="directory"&gt;The STRATO tests base&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;ol class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Python scripts have been recently adapted to &lt;span style='color:chocolate'&gt;Python3&lt;/span&gt;. If your default python version is not Python3, please change &#034;python&#034; by &#034;python3&#034; in TESTS/PC/python.exe&lt;br class='autobr' /&gt;
On BELENOS, the default python is now Python3. But if in your bashrc or bash_profile you load python, please verify that you load python3 version. &lt;br class='autobr' /&gt; &lt;/li&gt;&lt;li&gt; For a run on PC, &lt;strong&gt;cp TESTS/PC/script_all.sh&lt;/strong&gt; in the run directory:
&lt;center&gt; &lt;i&gt;cp TESTS/PC/script_all.sh .&lt;/i&gt;&lt;/center&gt;&lt;/li&gt;&lt;li&gt; For a run on BELENOS, &lt;strong&gt;cp TESTS/BEAUFIX/script_all.sh&lt;/strong&gt; in run directory:
&lt;center&gt; &lt;i&gt;cp TESTS/BEAUFIX/script_all.sh .&lt;/i&gt;&lt;/center&gt;&lt;/li&gt;&lt;li&gt; &lt;strong&gt;run&lt;/strong&gt; it:
&lt;center&gt;&lt;i&gt; ./script_all.sh &lt;/i&gt; &lt;/center&gt;
&lt;p&gt;&lt;u&gt; NB &lt;/u&gt; : you can also type:&lt;/p&gt;
&lt;center&gt; &lt;i&gt;nohup ./script_all.sh &amp;&lt;/i&gt;&lt;/center&gt;
&lt;p&gt;so that you can close you session and the output is written in a &lt;strong&gt;nohup.out&lt;/strong&gt; file instead of &lt;strong&gt;screen&lt;/strong&gt;.&lt;/p&gt;
&lt;/li&gt;&lt;li&gt; If you want to run the base of tests of a PC that has&lt;strong&gt; less than 4 processors&lt;/strong&gt;, you can &lt;strong&gt;unactivate the parallel tests&lt;/strong&gt; in a simple way:&lt;/li&gt;&lt;/ol&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; go into directory TESTS and do:
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; cp -f script_exec.sh script_exec_parall.sh&lt;/li&gt;&lt;li&gt; cp -f script_exec.sh script_exec_omp_pgd.sh&lt;/li&gt;&lt;li&gt; cp -f script_exec_restart.sh script_exec_restart_parall.sh&lt;/li&gt;&lt;li&gt; cp -f script_exec.sh script_exec_pgd_parall.sh&lt;/li&gt;&lt;li&gt; cp -f script_exec.sh script_exec_all_parall.sh&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt; =&gt; scripts that run with MPI and OPEN-MP are replaced by generic scripts and no parallelization happens.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="en">
		<title>STRATO data</title>
		<link>https://www.umr-cnrm.fr/surfex/spip.php?article464</link>
		<guid isPermaLink="true">https://www.umr-cnrm.fr/surfex/spip.php?article464</guid>
		<dc:date>2026-01-26T15:45:44Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>en</dc:language>
		<dc:creator>Minvielle</dc:creator>



		<description>
&lt;p&gt;Download the data package for STRATO: &lt;br class='autobr' /&gt;
STRATO-data-9-1-0.tar.gz&lt;/p&gt;


-
&lt;a href="https://www.umr-cnrm.fr/surfex/spip.php?rubrique122" rel="directory"&gt;The STRATO tests base&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;Download the data package for STRATO:&lt;/p&gt;
&lt;p&gt;&lt;a href='https://www.umr-cnrm.fr/surfex/data/STRATO/STRATO-data-9-1-0.tar.gz'&gt;STRATO-data-9-1-0.tar.gz&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="en">
		<title>To install the base of test cases (starting with SURFEX 9.1.0)</title>
		<link>https://www.umr-cnrm.fr/surfex/spip.php?article463</link>
		<guid isPermaLink="true">https://www.umr-cnrm.fr/surfex/spip.php?article463</guid>
		<dc:date>2026-01-26T14:33:56Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>en</dc:language>
		<dc:creator>Minvielle</dc:creator>



		<description>
&lt;p&gt;The STRATO tests base is included in the GIT repository, in the directory STRATO/TESTS/ 1. Choose two surfex versions (&#034;old&#034; and &#034;new&#034;) to test 2. Choose a run directory, for example /home/username/run_base_test In this run directory, you need to link: $SRC_SURFEX/MY_RUN/ECOCLIMAP/*.bin executables for the old version of the SURFEX code to be compared: pgd_old.exe, prep_old.exe, soda_old.exe, offline_old.exe executables for the new version of the SURFEX code to be compared: pgd_new.exe, (&#8230;)&lt;/p&gt;


-
&lt;a href="https://www.umr-cnrm.fr/surfex/spip.php?rubrique122" rel="directory"&gt;The STRATO tests base&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;The STRATO tests base is included in the GIT repository, in the directory STRATO/TESTS/&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;strong&gt;1. Choose two surfex versions&lt;/strong&gt; (&#034;old&#034; and &#034;new&#034;) to test&lt;/li&gt;&lt;/ul&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;strong&gt;2. Choose a run directory&lt;/strong&gt;, for example /home/username/run_base_test&lt;br class='autobr' /&gt;
In this run directory, you need to &lt;u&gt;link&lt;/u&gt;:
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; $SRC_SURFEX/MY_RUN/ECOCLIMAP/*.bin&lt;/li&gt;&lt;li&gt; executables for the old version of the SURFEX code to be compared: &lt;i&gt;pgd_old.exe, prep_old.exe, soda_old.exe, offline_old.exe&lt;/i&gt;&lt;/li&gt;&lt;li&gt; executables for the new version of the SURFEX code to be compared: &lt;i&gt;pgd_new.exe, prep_new.exe, soda_new.exe, offline_new.exe &lt;/i&gt;&lt;/li&gt;&lt;li&gt; In the run directory, copy the directory TESTS/ from the surfex GIT repository.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;strong&gt;3. open and modify&lt;/strong&gt;:
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; TESTS/PC/script_all.sh (on a standard PC) or TESTS/BEAUFIX/script_all.sh (on belenos): 3 first lines: &lt;br/&gt;
&lt;center&gt;dir_run=&#034;/home/username/run_base_test&#034; &lt;i&gt;(type your own rundir name)&lt;/i&gt;&lt;br/&gt;
exec_new=&#034;_new&#034; &lt;i&gt;(type your own extension for new executables)&lt;/i&gt;&lt;br/&gt;
exec_old=&#034;_old&#034; &lt;i&gt;(type your own extension for old executables)&lt;/i&gt;&lt;/center&gt;&lt;/li&gt;&lt;li&gt; TESTS/PYTHON/compR.cfg: &lt;br/&gt;
&lt;center&gt;verN=&#034;name of your new version, for output files&#034; &lt;br/&gt;
verO=&#034;name of your old version, for output files&#034;&lt;br/&gt;
basedir=&#034;/home/faroux/run_base_test/&#034; &lt;i&gt;(type your own rundir name)&lt;/i&gt;&lt;/center&gt;
&lt;p&gt;&lt;span style='color:chocolate'&gt;CAUTION: there must be a &#034;/&#034; at the end of basedir.&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;strong&gt;4. Data to run STRATO&lt;/strong&gt;: Since version V9.1.0 and code management under GitHub, only scripts of STRATO are stored in the Git repository. All additional data used for the various tests are not included anymore in the repository.&lt;br class='autobr' /&gt;
So you need to:
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;a href='https://www.umr-cnrm.fr/surfex/spip.php?article464' class=&#034;spip_in&#034;&gt;Download the package&lt;/a&gt; with the data corresponding to your version of SURFEX&lt;/li&gt;&lt;li&gt; Untar this package where you want &lt;small&gt;(&lt;i&gt;/home/username/STRATO-DATA&lt;/i&gt; in this exemple)&lt;/small&gt;&lt;/li&gt;&lt;li&gt; Open script-link-data.sh&lt;/li&gt;&lt;li&gt; Modify the two first lines to indicate where are located : &lt;br class='autobr' /&gt; - your STRATO &lt;small&gt;(&lt;i&gt;/home/username/run_base_test&lt;/i&gt; in this exemple)&lt;/small&gt;&lt;br class='autobr' /&gt; - your package with STRATO data &lt;small&gt;(&lt;i&gt;/home/username/STRATO-DATA&lt;/i&gt; in this exemple)&lt;/small&gt;&lt;/li&gt;&lt;li&gt; Execute script-link-data.sh&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="en">
		<title>9. Ending remarks and prospects</title>
		<link>https://www.umr-cnrm.fr/surfex/spip.php?article301</link>
		<guid isPermaLink="true">https://www.umr-cnrm.fr/surfex/spip.php?article301</guid>
		<dc:date>2013-10-15T15:34:16Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>en</dc:language>
		



		<description>
&lt;p&gt;1). The parallel tests performed by the base use all resources for a classic 4 processors PC. &lt;br class='autobr' /&gt;
=&gt; Consequently, seeing added execution times, in case of a will to run the test base not during a week-end (nor during an interval of time longer than 2 days when the PC isn't used), it's advised to divide script_all.sh into 3 parts : script_all1.sh : calls from script_pgd_grid.sh to script_flake.sh script_all2.sh : script_isba.sh script_all3.sh : from script_teb.sh to script_cas_parts.sh (&#8230;)&lt;/p&gt;


-
&lt;a href="https://www.umr-cnrm.fr/surfex/spip.php?rubrique122" rel="directory"&gt;The STRATO tests base&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;1). The&lt;strong&gt; parallel tests &lt;/strong&gt; performed by the base use all resources for a classic &lt;u&gt;4 processors PC&lt;/u&gt;.&lt;/p&gt;
&lt;p&gt;=&gt; Consequently, seeing &lt;a href='https://www.umr-cnrm.fr/surfex/spip.php?article300' class=&#034;spip_in&#034;&gt;added execution times&lt;/a&gt;, in case of a will to run the test base not during a week-end (nor during an interval of time longer than 2 days when the PC isn't used), it's advised to divide &lt;strong&gt;script_all.sh&lt;/strong&gt; into 3 parts :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;i&gt;script_all1.sh&lt;/i&gt; : calls from script_pgd_grid.sh to script_flake.sh&lt;/li&gt;&lt;li&gt; &lt;i&gt;script_all2.sh&lt;/i&gt; : script_isba.sh&lt;/li&gt;&lt;li&gt; &lt;i&gt;script_all3.sh&lt;/i&gt; : from script_teb.sh to script_cas_parts.sh&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Then you can launch them during night, one by one along 3 consecutive days.&lt;/p&gt;
&lt;p&gt;2). The script that compares SURFEX outputs for old and new versions of the code and writes output comparison files is coded in &lt;strong&gt;PYTHON&lt;/strong&gt;. It is written by &lt;u&gt;S. Dasprez&lt;/u&gt;.&lt;/p&gt;
&lt;p&gt;3). The base was also tested and validated on Beaufix (Bull ifort architecture).&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="en">
		<title>8. Detailed numbers of tests cases and execution times</title>
		<link>https://www.umr-cnrm.fr/surfex/spip.php?article300</link>
		<guid isPermaLink="true">https://www.umr-cnrm.fr/surfex/spip.php?article300</guid>
		<dc:date>2013-10-15T14:57:38Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>en</dc:language>
		



		<description>
&lt;p&gt;script_pgd_grid.sh : 25 test cases - 55 minutes script_pgd_physio.sh : 13 test cases - 4 minutes script_pgd_ecoclimap.sh : 51 test cases - 14 minutes script_prep.sh : 34 test cases &#8211; 39 minutes script_sea.sh : 334 test cases &#8211; 3 h 26 minutes script_water.sh : 56 test cases &#8211; 15 minutes script_flake.sh : 128 test cases &#8211; 42 minutes script_isba.sh : 968 test cases &#8211; 18 h 08 minutes script_teb.sh : 528 test cases &#8211; 10 h 43 minutes script_offline.sh : 80 test cases &#8211; 3 h 28 minutes (&#8230;)&lt;/p&gt;


-
&lt;a href="https://www.umr-cnrm.fr/surfex/spip.php?rubrique122" rel="directory"&gt;The STRATO tests base&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;i&gt;script_pgd_grid.sh&lt;/i&gt; : 25 test cases - 55 minutes&lt;/li&gt;&lt;li&gt; &lt;i&gt;script_pgd_physio.sh&lt;/i&gt; : 13 test cases - 4 minutes&lt;/li&gt;&lt;li&gt; &lt;i&gt;script_pgd_ecoclimap.sh&lt;/i&gt; : 51 test cases - 14 minutes&lt;/li&gt;&lt;li&gt; &lt;i&gt;script_prep.sh&lt;/i&gt; : 34 test cases &#8211; 39 minutes&lt;/li&gt;&lt;li&gt; &lt;i&gt;script_sea.sh&lt;/i&gt; : 334 test cases &#8211; 3 h 26 minutes&lt;/li&gt;&lt;li&gt; &lt;i&gt;script_water.sh&lt;/i&gt; : 56 test cases &#8211; 15 minutes&lt;/li&gt;&lt;li&gt; &lt;i&gt;script_flake.sh&lt;/i&gt; : 128 test cases &#8211; 42 minutes&lt;/li&gt;&lt;li&gt; &lt;i&gt;script_isba.sh&lt;/i&gt; : 968 test cases &#8211; 18 h 08 minutes&lt;/li&gt;&lt;li&gt; &lt;i&gt;script_teb.sh&lt;/i&gt; : 528 test cases &#8211; 10 h 43 minutes&lt;/li&gt;&lt;li&gt; &lt;i&gt;script_offline.sh&lt;/i&gt; : 80 test cases &#8211; 3 h 28 minutes&lt;/li&gt;&lt;li&gt; &lt;i&gt;script_csts.sh&lt;/i&gt; : 302 test cases &#8211; 4 h 32 minutes&lt;/li&gt;&lt;li&gt; &lt;i&gt;script_cas_parts.sh&lt;/i&gt; : 39 test cases &#8211; 1 h 14 minutes&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Total : 2558 test cases &#8211; 44 h 58 minutes&lt;/strong&gt;&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="en">
		<title>7. One means to analyse results (proposition)</title>
		<link>https://www.umr-cnrm.fr/surfex/spip.php?article296</link>
		<guid isPermaLink="true">https://www.umr-cnrm.fr/surfex/spip.php?article296</guid>
		<dc:date>2013-10-15T11:26:38Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>en</dc:language>
		



		<description>
&lt;p&gt;One means to analyse results is to : first, see which test cases finished anormally, through the PLANTE_....txt files. second, identify the test cases that give different results results, through the SYNN file, and go to the RPT corresponding files to get more details about the differences. Have a look at the NCH file to detect possible peculiarities in the counts of output fields. &lt;br class='autobr' /&gt;
In the case of test cases not finishing normally or giving different results, it is greatly useful to (&#8230;)&lt;/p&gt;


-
&lt;a href="https://www.umr-cnrm.fr/surfex/spip.php?rubrique122" rel="directory"&gt;The STRATO tests base&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;One means to analyse results is to :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; first, see which test cases &lt;u&gt;finished anormally&lt;/u&gt;, through the &lt;strong&gt;PLANTE_....txt&lt;/strong&gt; files.&lt;/li&gt;&lt;li&gt; second, identify the test cases &lt;u&gt; that give different results results&lt;/u&gt;, through the &lt;strong&gt;SYNN file&lt;/strong&gt;, and go to the&lt;strong&gt; RPT corresponding files&lt;/strong&gt; to get more details about the differences.&lt;/li&gt;&lt;li&gt; Have a look at the &lt;strong&gt;NCH file&lt;/strong&gt; to detect possible peculiarities in the counts of output fields.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;In the case of test cases not finishing normally or giving different results, it is greatly useful to &lt;u&gt;launch again only the focused problematic test case&lt;/u&gt;. That's why &lt;strong&gt;namelists for all test cases are saved&lt;/strong&gt;, gradually, in the run directory, under the names :&lt;/p&gt;
&lt;center&gt;&lt;i&gt;OPTIONS.nam_[name of the test case]&lt;/i&gt;&lt;/center&gt;
&lt;p&gt;=&gt; You can then copy the namelist of the case you want to re-run in OPTIONS.nam, and launch manually the executables of one or the other versions of the SURFEX code.&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="en">
		<title>6. Output files produced by the base of tests</title>
		<link>https://www.umr-cnrm.fr/surfex/spip.php?article295</link>
		<guid isPermaLink="true">https://www.umr-cnrm.fr/surfex/spip.php?article295</guid>
		<dc:date>2013-10-15T11:09:06Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>en</dc:language>
		



		<description>
&lt;p&gt;NB: The following output files are not overwritten if the base of automatic tests is run a second or a third time. To run again the tests with blank files, you will need to suppress the output files manually before. &lt;br class='autobr' /&gt;
Two types of output files are produced : &lt;br class='autobr' /&gt;
Synthesis files: The tests are divided into 12 main categories: PGD_GRID, PGD_PHYSIO, PGD_ECOCLIMAP, PREP, SEA, WATER, FLAKE, ISBA, TEB, CSTS, OFFLINE, CAS_PARTS. For each category, in the run directory, 3 files are produced : (&#8230;)&lt;/p&gt;


-
&lt;a href="https://www.umr-cnrm.fr/surfex/spip.php?rubrique122" rel="directory"&gt;The STRATO tests base&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;&lt;span style='color:chocolate'&gt;&lt;i&gt;NB: The following output files are not overwritten if the base of automatic tests is run a second or a third time. To run again the tests with blank files, you will need to suppress the output files manually before.&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Two types of output files are produced :&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Synthesis files&lt;/strong&gt;:&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; The tests are divided into &lt;u&gt;12 main categories&lt;/u&gt;: PGD_GRID, PGD_PHYSIO, PGD_ECOCLIMAP, PREP, SEA, WATER, FLAKE, ISBA, TEB, CSTS, OFFLINE, CAS_PARTS.
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; For each category, in the &lt;strong&gt;run directory&lt;/strong&gt;, &lt;u&gt;3 files&lt;/u&gt; are produced :
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;strong&gt;INFO_[name of the category].txt&lt;/strong&gt; :contains the ordinary screen output of the run, with names of the test cases included&lt;/li&gt;&lt;li&gt; &lt;strong&gt;PLANTE_[name of the category].txt&lt;/strong&gt; : contains the list of the test cases that finished anormally&lt;/li&gt;&lt;li&gt; &lt;strong&gt;END_[name of the category].txt&lt;/strong&gt; : contains the list of the test cases that finished correctly&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt; In directory &lt;i&gt; &lt;strong&gt;TESTS/PYTHON/results&lt;/strong&gt; &lt;/i&gt;, &lt;u&gt;3 more synthesis files&lt;/u&gt; are written : &lt;br/&gt;
&lt;i&gt;expe2d_NEW_PREP_and_TRUNK_73_conf.nch / syno / synn &lt;br/&gt; (following upper example for the name of the file)&lt;/i&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; The &lt;strong&gt;NCH file&lt;/strong&gt;, following the nomenclature of the LOG files, contains, for each test case, one line by case : listN, listO, listM, listnMN, listnMO (numbers only, without lists of fields).&lt;/li&gt;&lt;li&gt; The &lt;strong&gt;SYNO file&lt;/strong&gt; contains the names of the test cases that give exactly the same results (for fields common to the old and new versions)&lt;/li&gt;&lt;li&gt; The &lt;strong&gt;SYNN file&lt;/strong&gt; contains the names of the test cases that don't give the same results, with the numbers of fields that give different results.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;=&gt;&lt;i&gt; All these synthesis output files are updated at the end of each test case.&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Detailed outputs for each test cases :&lt;/strong&gt;&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; for each part of PGD, PREP, OFFLINE, SURFOUT, 3 files are created in directory : &lt;u&gt;TESTS/PYTHON/results&lt;/u&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; The &lt;strong&gt;names&lt;/strong&gt; of these output files are composed of : &lt;br/&gt;
&lt;i&gt;[name of the last directory of the run path directory]_[name of the new version]_and_[name of the old version]_conf_[name of the test case].log / .nan / .rpt&lt;/i&gt;&lt;br/&gt; &lt;u&gt;Example&lt;/u&gt; : PGD/PREP//OUT_expe2d_NEW_PREP_AND_TRUNK_73_conf_TEB_SIMPLE.log&lt;/li&gt;&lt;li&gt; The&lt;strong&gt; LOG file&lt;/strong&gt; contains the comparison between the numbers of fields found in output NETCDF files for old and new versions :
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;u&gt;listN&lt;/u&gt; : number of fields found in the new version output files&lt;/li&gt;&lt;li&gt; &lt;u&gt;listO&lt;/u&gt; : number of fields found in the old version output files&lt;/li&gt;&lt;li&gt; &lt;u&gt;listM&lt;/u&gt; : number of fields found in both versions&lt;/li&gt;&lt;li&gt; &lt;u&gt;listnMN&lt;/u&gt; : fields found in the new version but not in the old one, with for each field the name of the file it is in&lt;/li&gt;&lt;li&gt; &lt;u&gt;listnMO&lt;/u&gt; : fields found in the old version but not in the new one, with for each field the name fo the file it is in&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt; The &lt;strong&gt;NAN file&lt;/strong&gt; contains the list of the fields found in the two versions outputs, if they are constant or if naN values are present in the old or in the new ones. In this file, columns are : &lt;br/&gt;
&lt;i&gt;	number of the field in the list, [ naN found in the new outputs ?, naN found in the old outputs ?, maximum value of the new output minus minimum value of the old one, [name of the field, name of the corresponding file]]&lt;/i&gt;&lt;/li&gt;&lt;li&gt; The &lt;strong&gt;RPT file&lt;/strong&gt; contains, for each field found in both output lists, old and new : &lt;br/&gt;
&lt;i&gt;	the number of the field in the list, &lt;br/&gt; [ the maximum percentage of error between the two versions, the maximum difference, the corresponding new value, the corresponding old value, the average of the differences, &lt;br/&gt; [the name of the field, the name of the associated file]]&lt;/i&gt;&lt;br/&gt; =&gt; In this RPT files, fields are &lt;u&gt;ordered by decreasing percentages of error&lt;/u&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;=&gt;&lt;i&gt; All these synthesis output files are updated at the end of each test case.&lt;/i&gt;&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="en">
		<title>To install the base of test cases (before SURFEX 9.1.0)</title>
		<link>https://www.umr-cnrm.fr/surfex/spip.php?article294</link>
		<guid isPermaLink="true">https://www.umr-cnrm.fr/surfex/spip.php?article294</guid>
		<dc:date>2013-10-15T10:31:49Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>en</dc:language>
		



		<description>
&lt;p&gt;The STRATO tests base is included in the GIT repository, in the directory STRATO/TESTS/ 1. Choose two surfex versions (&#034;old&#034; and &#034;new&#034;) to test 2. Choose a run directory, for example /home/username/run_base_test In this run directory, you need to link: $SRC_SURFEX/MY_RUN/ECOCLIMAP/*.bin executables for the old version of the SURFEX code to be compared: pgd_old.exe, prep_old.exe, soda_old.exe, offline_old.exe executables for the new version of the SURFEX code to be compared: pgd_new.exe, (&#8230;)&lt;/p&gt;


-
&lt;a href="https://www.umr-cnrm.fr/surfex/spip.php?rubrique122" rel="directory"&gt;The STRATO tests base&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;The STRATO tests base is included in the GIT repository, in the directory STRATO/TESTS/&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;strong&gt;1. Choose two surfex versions&lt;/strong&gt; (&#034;old&#034; and &#034;new&#034;) to test&lt;/li&gt;&lt;/ul&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;strong&gt;2. Choose a run directory&lt;/strong&gt;, for example /home/username/run_base_test&lt;br class='autobr' /&gt;
In this run directory, you need to &lt;u&gt;link&lt;/u&gt;:
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; $SRC_SURFEX/MY_RUN/ECOCLIMAP/*.bin&lt;/li&gt;&lt;li&gt; executables for the old version of the SURFEX code to be compared: &lt;i&gt;pgd_old.exe, prep_old.exe, soda_old.exe, offline_old.exe&lt;/i&gt;&lt;/li&gt;&lt;li&gt; executables for the new version of the SURFEX code to be compared: &lt;i&gt;pgd_new.exe, prep_new.exe, soda_new.exe, offline_new.exe &lt;/i&gt;&lt;/li&gt;&lt;li&gt; In the run directory, copy the directory TESTS/ from the surfex GIT repository.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;strong&gt;3. open and modify&lt;/strong&gt;:
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; TESTS/PC/script_all.sh (on a standard PC) or TESTS/BEAUFIX/script_all.sh (on belenos): 3 first lines: &lt;br/&gt;
&lt;center&gt;dir_run=&#034;/home/username/run_base_test&#034; &lt;i&gt;(type your own rundir name)&lt;/i&gt;&lt;br/&gt;
exec_new=&#034;_new&#034; &lt;i&gt;(type your own extension for new executables)&lt;/i&gt;&lt;br/&gt;
exec_old=&#034;_old&#034; &lt;i&gt;(type your own extension for old executables)&lt;/i&gt;&lt;/center&gt;&lt;/li&gt;&lt;li&gt; TESTS/PYTHON/compR.cfg: &lt;br/&gt;
&lt;center&gt;verN=&#034;name of your new version, for output files&#034; &lt;br/&gt;
verO=&#034;name of your old version, for output files&#034;&lt;br/&gt;
basedir=&#034;/home/faroux/run_base_test/&#034; &lt;i&gt;(type your own rundir name)&lt;/i&gt;&lt;/center&gt;
&lt;p&gt;&lt;span style='color:chocolate'&gt;CAUTION: there must be a &#034;/&#034; at the end of basedir.&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;strong&gt;4. physiographic big files&lt;/strong&gt; are not delivered with the test base. So you need to:
&lt;ol class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;u&gt;download&lt;/u&gt;: &lt;br/&gt;
gtopo30.dir &amp; gtopo30.hdr, topo_index.dir &amp; topo_index.hdr &lt;a href=&#034;https://www.umr-cnrm.fr/surfex/spip.php?article134&#034;&gt;here&lt;/a&gt;,&lt;br/&gt;
clay_fao.dir &amp; clay_fao.hdr, sand_fao.dir &amp; sand_fao.hdr, soc_top.dir &amp; soc_top.hdr, soc_sub.dir &amp; soc_sub.hdr &lt;a href=&#034;https://www.umr-cnrm.fr/surfex/spip.php?article135&#034;&gt;here&lt;/a&gt;,&lt;br/&gt;
sand_6layers_mean_int.tgz, clay_6layers_mean_int.tgz &lt;a href=&#034;https://www.umr-cnrm.fr/surfex/spip.php?article135&#034;&gt;here&lt;/a&gt;,&lt;br/&gt;
ECOCLIMAP_I_GLOBAL.dir &amp; ECOCLIMAP_I_GLOBAL.hdr, ECOCLIMAP_II_EUROP.dir &amp; ECOCLIMAP_II_EUROP.hdr &lt;i&gt;(take latest versions and rename them)&lt;/i&gt;, perm_glo_10km.dir &amp; perm_glo_10km.hdr &lt;a href=&#034;https://www.umr-cnrm.fr/surfex/spip.php?article136&#034;&gt;here&lt;/a&gt;,&lt;br/&gt;
GlobalLakeDepth.dir &amp; GlobalLakeDepth.hdr, GlobalLakeStatus.dir &amp; GlobalLakeStatus.hdr, LAKE_LTA_NEW.nc &lt;a href=&#034;https://www.umr-cnrm.fr/surfex/spip.php?article137&#034;&gt;here&lt;/a&gt;,&lt;br/&gt;
etopo2.nc &lt;a href=&#034;https://www.umr-cnrm.fr/surfex/spip.php?article138&#034;&gt;here&lt;/a&gt;.&lt;/li&gt;&lt;li&gt; &lt;u&gt;unzip&lt;/u&gt; all these files and put them in directory &lt;i&gt;TESTS/PGD/FILES&lt;/i&gt;, except for LAKE_LTA_NEW.nc that you put in &lt;i&gt;TESTS/PREP/FILES&lt;/i&gt;.&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="en">
		<title>Principle of operating, for the base of tests</title>
		<link>https://www.umr-cnrm.fr/surfex/spip.php?article292</link>
		<guid isPermaLink="true">https://www.umr-cnrm.fr/surfex/spip.php?article292</guid>
		<dc:date>2013-10-01T11:56:55Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>en</dc:language>
		



		<description>
&lt;p&gt;The base relies on a sort of &#034;over-namelist&#034; containing about all the possible switches and options for SURFEX. This namelist is called OPTIONS.nam_000. &lt;br class='autobr' /&gt;
The procedure is divided into two parts: shell scripts are successively called to run SURFEX with different options. They define all test cases to be run. For that, they modify the namelist OPTIONS.nam_000 through some &#8220;sed&#8221; commands. The two versions to compare are run, and output NETCDF files for these two versions are stored in two (&#8230;)&lt;/p&gt;


-
&lt;a href="https://www.umr-cnrm.fr/surfex/spip.php?rubrique122" rel="directory"&gt;The STRATO tests base&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;The base relies on a sort of &#034;over-namelist&#034; containing about all the possible switches and options for SURFEX. This namelist is called &lt;strong&gt;OPTIONS.nam_000&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;The procedure is divided into two parts:&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;u&gt;shell scripts&lt;/u&gt; are successively called to run SURFEX with different options. They define all test cases to be run. For that, they modify the namelist OPTIONS.nam_000 through some &#8220;sed&#8221; commands. The two versions to compare are run, and output NETCDF files for these two versions are stored in two different directories.&lt;/li&gt;&lt;li&gt; Then, for each test case, a &lt;u&gt;python&lt;/u&gt; program compares the two series of output files, and gives results in the form of text summary files. &lt;span style='color:red'&gt;important note: &lt;/span&gt; scripts have recently been adapted to Python3. Please verify that by default, python3 is used when you run STRAO.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Note that :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;span style='color:red'&gt;&lt;b&gt;the base of tests only compares NETCDF output files&lt;/b&gt;&lt;/span&gt;. So, it can't be used to validate the effective contents of output files in other formats (LFI, FA, ASCII, BINARY, TEXTE). If some changes are performed in the writing part of the code associated to these other formats, the developer will have to design his own strategy of testing it.&lt;/li&gt;&lt;li&gt; new versions of the code often bring &lt;strong&gt;changes in namelist blocks&lt;/strong&gt;. Therefore, testing a new branch will inevitably lead to adapt, would it be just a bit, the base namelist, OPTIONS.nam_000. If names of namelist entries are changed, possible associated &#8220;sed&#8221; commands in shell scripts will need to be adapted too.&lt;/li&gt;&lt;/ul&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;span style='color:darkgreen'&gt;&lt;b&gt;so, in the case he tests a new version of the code, the developer has to:
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; adapt OPTIONS.nam_000 following his new version&lt;/li&gt;&lt;li&gt; verify, for example through a &#8220;grep&#8221; command among the shell scripts of the base, that no shell script refers to the namelist entry he modified, and if it refers to, adapt the shell script functions of his changes.&lt;/li&gt;&lt;li&gt; think if his modifications could lead to propose a new test case to enter the base. In this case, he can propose a new test case to the SURFEX team and it will be included in the next version of the base of tests. &lt;br class='autobr' /&gt;
&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt; Another point is that often, the &#8220;old&#8221; version tested has not exactly the same namelist blocks as the new one. For this purpose, a script named &lt;i&gt;script_to_old.sh&lt;/i&gt; is delivered inside the base. This script needs to be adapted too: OPTIONS.nam_000 contains namelists blocks for the new version tested, and &lt;i&gt;script_to_old.sh&lt;/i&gt; allows to go back to the old ones. &lt;i&gt;script_to_old.sh&lt;/i&gt; is composed of &#8220;sed&#8221; commands.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Concretely, each tester will have its own version of the base of tests, corresponding to the options or modifications of existing blocks he introduced in the namelist with his new version.&lt;/p&gt;
&lt;p&gt;At the end of the process of building a new official version of SURFEX, the SURFEX team will take charge of merging the versions of the base of tests coming from the different contributers.&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="en">
		<title>Principle of use for the base of tests</title>
		<link>https://www.umr-cnrm.fr/surfex/spip.php?article291</link>
		<guid isPermaLink="true">https://www.umr-cnrm.fr/surfex/spip.php?article291</guid>
		<dc:date>2013-10-01T09:50:33Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>en</dc:language>
		



		<description>
&lt;p&gt;The purpose of the base is to compare two versions of the code for various configurations and options, in order to detect, for example, developments that can have an unexpected impact in other parts of the code. In general, the base aims at: precisely evaluating the differences introduced by a development version, compared to the official version it's based on. consolidating this development version by testing it in a large range of SURFEX configurations. &lt;br class='autobr' /&gt;
We ask that each developer runs (&#8230;)&lt;/p&gt;


-
&lt;a href="https://www.umr-cnrm.fr/surfex/spip.php?rubrique122" rel="directory"&gt;The STRATO tests base&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;The purpose of the base is to compare two versions of the code for various configurations and options, in order to detect, for example, developments that can have an unexpected impact in other parts of the code. In general, the base aims at:&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; precisely evaluating the differences introduced by a development version, compared to the official version it's based on.&lt;/li&gt;&lt;li&gt; consolidating this development version by testing it in a large range of SURFEX configurations.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;We ask that each developer runs the base of tests on its own branch, during or at the end of its development time, as he prefers. Before he can propose its development to enter a new official version he has to provide a text document that:&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; sums up the results of the run of the base of tests: list of the test cases that give results different in the two versions.&lt;/li&gt;&lt;li&gt; explains and justifies the origin of these differences for each concerned test case.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt; An example and framework for such a document is proposed here:&lt;/p&gt;
&lt;div class='spip_document_156 spip_document spip_documents spip_document_file spip_documents_center spip_document_center'&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt;
&lt;a href='https://www.umr-cnrm.fr/surfex/IMG/odt/framework.odt' class=&#034; spip_doc_lien&#034; title='OpenDocument Text - 27.1 KiB' type=&#034;application/vnd.oasis.opendocument.text&#034;&gt;&lt;img src='https://www.umr-cnrm.fr/surfex/local/cache-vignettes/L64xH64/odt-251e4.svg?1771327293' width='64' height='64' alt='' /&gt;&lt;/a&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;Once the branch of the developer is validated through the base of tests, it can be included in the building process of the next official version, and a Pull Request can be done on the SURFEX GitHub repository.&lt;/p&gt;
&lt;p&gt;At the end of the call for contributions, the SURFEX team will review the different Pull Requests, merge them and solve the eventual conflicts (depend on the content of the PRs), and will run the base of tests for a last time. &lt;br class='autobr' /&gt;
The SURFEX team will use the documents containing information about changes in results, provided by developers, to summarize the scientific input of the new version to be published.&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>



</channel>

</rss>
