<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?action=history&amp;feed=atom&amp;title=WhatIs%3A_The_target_architecture_%28%22arch%22%29_files</id>
		<title>WhatIs: The target architecture (&quot;arch&quot;) files - Historique des versions</title>
		<link rel="self" type="application/atom+xml" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?action=history&amp;feed=atom&amp;title=WhatIs%3A_The_target_architecture_%28%22arch%22%29_files"/>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=WhatIs:_The_target_architecture_(%22arch%22)_files&amp;action=history"/>
		<updated>2026-06-06T04:38:11Z</updated>
		<subtitle>Historique pour cette page sur le wiki</subtitle>
		<generator>MediaWiki 1.27.7</generator>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=WhatIs:_The_target_architecture_(%22arch%22)_files&amp;diff=125&amp;oldid=prev</id>
		<title>Lfairhead le 27 septembre 2021 à 09:24</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=WhatIs:_The_target_architecture_(%22arch%22)_files&amp;diff=125&amp;oldid=prev"/>
				<updated>2021-09-27T09:24:56Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;' lang='fr'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Version précédente&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Version du 27 septembre 2021 à 09:24&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l3&quot; &gt;Ligne 3 :&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 3 :&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The target architecture files are files used by the makelmdz_fcm compilation script. These files contain all the necessary information about the local environment, where libraries are located, which compiler, and compiler options will be used, etc.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The target architecture files are files used by the makelmdz_fcm compilation script. These files contain all the necessary information about the local environment, where libraries are located, which compiler, and compiler options will be used, etc.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;In practice, when the makelmdz_fcm is run with &amp;quot;-arch somename&amp;quot;, it will look for files &amp;quot;arch-somename.env&amp;quot;, &amp;quot;arch-somename.path&amp;quot; and &amp;quot;arch-somename.fcm&amp;quot; (obviously &amp;quot;somename&amp;quot; can be any string, makelmdz_fcm will adapt the arch file names it seeks) in the LMDZ/arch subdirectory. and link these as &amp;quot;arch.env&amp;quot;, &amp;quot;arch.path&amp;quot; and &amp;quot;arch.env&amp;quot; in the LMDZ directory. Re-running makelmdz_fcm with a different argument to the &amp;quot;-arch&amp;quot; option will update these links.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;In practice, when the &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;[[WhatIs:_The_makelmdz_fcm_script|&lt;/ins&gt;makelmdz_fcm&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;]] &lt;/ins&gt;is run with &amp;quot;-arch somename&amp;quot;, it will look for files &amp;quot;arch-somename.env&amp;quot;, &amp;quot;arch-somename.path&amp;quot; and &amp;quot;arch-somename.fcm&amp;quot; (obviously &amp;quot;somename&amp;quot; can be any string, makelmdz_fcm will adapt the arch file names it seeks) in the LMDZ/arch subdirectory. and link these as &amp;quot;arch.env&amp;quot;, &amp;quot;arch.path&amp;quot; and &amp;quot;arch.env&amp;quot; in the LMDZ directory. Re-running makelmdz_fcm with a different argument to the &amp;quot;-arch&amp;quot; option will update these links.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;'''The arch.env file'''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;'''The arch.env file'''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Lfairhead</name></author>	</entry>

	<entry>
		<id>http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=WhatIs:_The_target_architecture_(%22arch%22)_files&amp;diff=57&amp;oldid=prev</id>
		<title>Lfairhead : Page créée avec « == A brief description of the architecture files used by the makelmdz_fcm script ==  The target architecture files are files used by the makelmdz_fcm compilation script. T... »</title>
		<link rel="alternate" type="text/html" href="http://lmdz-forge.lmd.jussieu.fr/mediawiki/LMDZPedia/index.php?title=WhatIs:_The_target_architecture_(%22arch%22)_files&amp;diff=57&amp;oldid=prev"/>
				<updated>2021-01-23T18:59:51Z</updated>
		
		<summary type="html">&lt;p&gt;Page créée avec « == A brief description of the architecture files used by the makelmdz_fcm script ==  The target architecture files are files used by the makelmdz_fcm compilation script. T... »&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nouvelle page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== A brief description of the architecture files used by the makelmdz_fcm script ==&lt;br /&gt;
&lt;br /&gt;
The target architecture files are files used by the makelmdz_fcm compilation script. These files contain all the necessary information about the local environment, where libraries are located, which compiler, and compiler options will be used, etc.&lt;br /&gt;
&lt;br /&gt;
In practice, when the makelmdz_fcm is run with &amp;quot;-arch somename&amp;quot;, it will look for files &amp;quot;arch-somename.env&amp;quot;, &amp;quot;arch-somename.path&amp;quot; and &amp;quot;arch-somename.fcm&amp;quot; (obviously &amp;quot;somename&amp;quot; can be any string, makelmdz_fcm will adapt the arch file names it seeks) in the LMDZ/arch subdirectory. and link these as &amp;quot;arch.env&amp;quot;, &amp;quot;arch.path&amp;quot; and &amp;quot;arch.env&amp;quot; in the LMDZ directory. Re-running makelmdz_fcm with a different argument to the &amp;quot;-arch&amp;quot; option will update these links.&lt;br /&gt;
&lt;br /&gt;
'''The arch.env file'''&lt;br /&gt;
&lt;br /&gt;
This file is optional. It should contain instructions and declarations related to the environment (e.g. setting up environment variables, or loading modules), necessary prerequisites to compiling LMDZ. For example the &amp;quot;arch/arch-gfortran_CICLAD.env&amp;quot; file that contains:&lt;br /&gt;
&lt;br /&gt;
 module unload openmpi&lt;br /&gt;
 module load openmpi/1.4.5-gfortran&lt;br /&gt;
 &lt;br /&gt;
 module unload netcdf4&lt;br /&gt;
 module load netcdf4/4.2.1.1-gfortran&lt;br /&gt;
 export NETCDF_HOME=/opt/netcdf42/gfortran&lt;br /&gt;
&lt;br /&gt;
imposes first running some &amp;quot;module&amp;quot; commands and setting the environment variable &amp;quot;NETCDF_HOME&amp;quot; prior to the compilation.&lt;br /&gt;
&lt;br /&gt;
'''The arch.path file'''&lt;br /&gt;
&lt;br /&gt;
This file contains information about the paths (relative to the LMDZ directory) and options concerning libraries (NetCDF, IOIPSL, etc.) required to compile LMDZ. For example the &amp;quot;arch/arch-gfortran_CICLAD.path&amp;quot; contains:&lt;br /&gt;
&lt;br /&gt;
 NETCDF_LIBDIR=&amp;quot;-L${NETCDF_HOME}/lib -lnetcdf -lnetcdff&amp;quot;&lt;br /&gt;
 NETCDF_INCDIR=-I${NETCDF_HOME}/include&lt;br /&gt;
 IOIPSL_INCDIR=$LMDGCM/../../lib&lt;br /&gt;
 IOIPSL_LIBDIR=$LMDGCM/../../lib&lt;br /&gt;
 ORCH_INCDIR=$LMDGCM/../../lib&lt;br /&gt;
 ORCH_LIBDIR=$LMDGCM/../../lib&lt;br /&gt;
 OASIS_INCDIR=$LMDGCM/../../prism/SX/build/lib/psmile.$couple&lt;br /&gt;
 OASIS_LIBDIR=$LMDGCM/../../prism/SX/lib&lt;br /&gt;
 INCA_LIBDIR=$LMDGCM/../INCA/config/lib&lt;br /&gt;
 INCA_INCDIR=$LMDGCM/../INCA/config/lib&lt;br /&gt;
 XIOS_INCDIR=$LMDGCM/../XIOS/inc&lt;br /&gt;
 XIOS_LIBDIR=$LMDGCM/../XIOS/lib&lt;br /&gt;
&lt;br /&gt;
Here the keywords are quite self-explanatory, for each external library, NetCDF, IOIPSL, XIOS, ... one provide the compiling intructions about related &amp;quot;include&amp;quot; directories along with the path to the libraries.&lt;br /&gt;
&lt;br /&gt;
'''The arch.fcm file'''&lt;br /&gt;
&lt;br /&gt;
This file contains information about the compiler to use and compiler options to set. Each line starts with a reserved keyword, followed by the appropriate specifications. For example the &amp;quot;arch/arch-gfortran_CICLAD.fcm&amp;quot; file contains:&lt;br /&gt;
&lt;br /&gt;
 %COMPILER            $MPI_BIN/mpif90&lt;br /&gt;
 %LINK                $MPI_BIN/mpif90&lt;br /&gt;
 %AR                  ar&lt;br /&gt;
 %ARFLAGS             rs&lt;br /&gt;
 %MAKE                gmake&lt;br /&gt;
 %FPP_FLAGS           -P -traditional&lt;br /&gt;
 %FPP_DEF             NC_DOUBLE &lt;br /&gt;
 %BASE_FFLAGS         -c -fdefault-real-8 -fcray-pointer -frecursive -ffree-line-length-0 -fno-align-commons&lt;br /&gt;
 %PROD_FFLAGS         -O3&lt;br /&gt;
 %DEV_FFLAGS          -O -Wall -fbounds-check&lt;br /&gt;
 %DEBUG_FFLAGS        -ffpe-trap=invalid,zero,overflow -Wall -fbounds-check -g3 -O0 -fstack-protector-all -fbacktrace&lt;br /&gt;
 %MPI_FFLAGS&lt;br /&gt;
 %OMP_FFLAGS          -fopenmp&lt;br /&gt;
 %BASE_LD             -Wl,-rpath=$NETCDF_HOME/lib&lt;br /&gt;
 %MPI_LD&lt;br /&gt;
 %OMP_LD              -fopenmp &lt;br /&gt;
&lt;br /&gt;
Implying that the compiler to use is &amp;quot;mpif90&amp;quot;, located in &amp;quot;$MPI_BIN/mpif90&amp;quot; (here $MPI_BIN is an environment variable that has been set via the &amp;quot;module load openmpi/1.4.5-gfortran&amp;quot; command from the corresponding arch-gfortran_CICLAD.env file), that compilation will always include the &amp;quot;-c -fdefault-real-8 -fcray-pointer -frecursive ffree-line-length-0 -fno-align-commons&amp;quot; options, etc.&lt;br /&gt;
&lt;br /&gt;
The meaning of the various keywords in the arch.fcm file are:&lt;br /&gt;
&lt;br /&gt;
* %COMPILER: The compiler to use&lt;br /&gt;
* %LINK: The linker to use (usually this is the same as the compiler)&lt;br /&gt;
* %AR: the archiving tool (to collect objects and build the library, typically &amp;quot;ar&amp;quot;)&lt;br /&gt;
* %ARFLAGS: options to give to the archiving tool&lt;br /&gt;
* %FPP_FLAGS: options to pass to the preprocessor of the Fortan source code&lt;br /&gt;
* %FPP_DEF: preprocessing flags to set&lt;br /&gt;
* %BASE_FFLAGS: compilation flags to alway include when compiling the source code&lt;br /&gt;
* %PROD_FFLAGS: compilation flags to include if makelmdz_fcm is run with the &amp;quot;-prod&amp;quot; option&lt;br /&gt;
* %DEV_FFLAGS: compilation flags to include if makelmdz_fcm is run with the &amp;quot;-dev&amp;quot; option&lt;br /&gt;
* %DEBUG_FFLAGS: compilation flags to include if makelmdz_fcm is run with the &amp;quot;-debug&amp;quot; option&lt;br /&gt;
* %MPI_FFLAGS: compilation flags to include if makelmdz_fcm is run with the &amp;quot;-parallel mpi&amp;quot; or &amp;quot;-parallel mpi_omp&amp;quot; options (i.e. to have a code that can run in MPI)&lt;br /&gt;
* %OMP_FFLAGS: compilation flags to include if makelmdz_fcm is run with the &amp;quot;-parallel omp&amp;quot; or &amp;quot;-parallel mpi_omp&amp;quot; options (i.e. to have a code that can run in OpenMP)&lt;br /&gt;
* %BASE_LD: flags to add when running the linker&lt;br /&gt;
* %MPI_LD: flags to add when running the linker when MPI is enabled&lt;br /&gt;
* %OMP_LD: flags to add when running the linker when OpenMP is enabled&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
13/05/2020&lt;br /&gt;
&lt;br /&gt;
[[Category:WhatIs]]&lt;/div&gt;</summary>
		<author><name>Lfairhead</name></author>	</entry>

	</feed>