%\section{Mise en forme des données physiques tabulées}
\index{données}\label{sec:dphys}\index{SUN\_STAR\_DATA}
Le sous directory {\tt SUN\_STAR\_DATA} regroupe des données astrophysiques
tabulées ainsi que leurs programmes de mise en forme en vue de leur exploitation.
L'opacité et l'équation d'état ne sont, le plus souvent,
connues que sous la forme de tabulations d'origines diverses qu'il faut assembler
au cas par cas.
\cesam2k utilise ces données physiques sous forme de fichiers binaires dont
la structure ({\em 32k, 64k, big/little endianess...}) dépend de l'environnement
utilisé. Il y a lieu de les créer au fur et à mesure des besoins.\footnote{Il convient
d'actualiser ces données en les reprenant de leurs sites d'origines.}
Le directory contient une redondance de données dont l'exploitation n'est pas
décrite dans cette notice. Les exécutables (d'extension {\tt .out}) peuvent
être créés à l'aide du shell-script
{\tt 'exe2k'} du sous-directory {\tt SCRIPTS}. Par exemple, pour créer l'exécutable du
programme {\tt ascii2bin\_opa.f}, saisir:
\centerline{{\tt exe2k ascii2bin\_opa}}
\noi ou bien encore, à l'aide du Makefile {\tt 'Make\_exe'} du sous-directory
{\tt EXPLOIT}
\centerline{{\tt make -Bf Make\_exe PRG=ascii2bin\_opa}}
\medskip

\PB{En raison de l'infini diversité des possibilités, il est
in\-con\-tour\-na\-ble de devoir utiliser des tables d'opacité et d'équation d'état
calculées pour des compositions chimiques différentes de celles obtenues localement
dans le modèle.}

Les données sont regroupées par thèmes affectés à des directory distincts qu'il
convient de décompresser au fur et à mesure des besoins.


\section{Opacités.}

\subsection{Opacités opa\_yveline.f, opa\_yveline\_lisse.f}\index{opacité}
\index{ascii2bin\_opa.f}\label{sec:opayv}
Ces deux routines utilisent les mêmes données regroupées dans le sous-directory
{\tt OPA\_YVELINE}.

\noi Décompresser le fichier {\tt ascii2bin\_opa.f.gz} et, suivant les besoins,
l'un des fichiers {\tt opa\_yveline.data.gz} ou {\tt opa\_ags03.dat.gz} ou
 {\tt opa\_ags05.dat.gz}\footnote{Ce fichier est
disponible sur simple demande auprès de Yveline.Lebreton@obspm.fr}~:\\
\centerline{\tt gunzip opa\_yveline.data.gz ascii2bin\_opa.f.gz}

\medskip
\noi Comme indiqué ci-dessus créer l'exécutable {\tt ascii2bin\_opa.out}.
Effectuer la transformation ASCII ==$>$ binaire,
en saisissant {\tt ascii2bin\_opa.out}.\index{ascii2bin\_opa.f}
\noindent A la question~:
\begin{tt}\begin{verbatim}
 traduction ASCII ---> binaire (o/n?)
 o <==
\end{verbatim}\end{tt}
on obtient~:
\begin{tt}\begin{verbatim}
 ASCII ---> binaire
 enter the name of the existing ASCII opacity table: opa_yveline.data
\end{verbatim}\end{tt}
répondre~:
\begin{tt}\begin{verbatim}
 opa_yveline.data <==  à adapter!
\end{verbatim}\end{tt}
on obtient~:
\begin{tt}\begin{verbatim}
 enter the name of the binary table: opa_yveline.bin
\end{verbatim}\end{tt}
répondre~:
\begin{tt}\begin{verbatim}
 opa_yveline.bin <== le choix du nom libre, le placer dans l'item F_OPA
\end{verbatim}\end{tt}
à la question suivante répondre c, éventuellement recompresser
le fichier en ASCII et supprimer l'exécutable. On obtient~:
\begin{tt}\begin{verbatim}
 PAUSE: OK c'est fait
 pour arreter entrer q, poursuivre entrer c
 c <==
 \end{verbatim}\end{tt}
 Recompresser les données ASCII~: {\tt gzip opa\_yveline.data <==}
 et effacer l'exécutable~: {\tt rm ascii2bin\_opa.out <==}\\
On trouve un complément d'information dans le fichier~:

\centerline{\tt extract\_opa\_yveline\_explik}
\noi du sous-directory {\tt SUN\_STAR\_DATA}.

%\subsection{Opacités opa\_opal2.f}\label{sec:opal2}
%Les opacités OPAL de type 1 n'existent que pour une abondance des métaux
%inférieure à $Z<0.1$. Le package {\tt z14xcotrin21} d'Arnold I. Boothroyd
%qui, gérant les opacités OPAL de type 2,
%permet de tenir compte de la nucléosynthèse des éléments lourds.
%Bien que son implantation dans \cesam2k ne
%recouvre pas toutes les si\-tua\-tions envisagées, son {\embf USAGE est DELICAT}.
%Lors de la première utilisation, le système peut demander de décompresser des
%routines du sous-directory {\tt SUN\_STAR\_DATA} et {\sl des aménagements
%supplémentaires peuvent être nécessaires}.

\subsection{Opacités opa\_houdek12.f}\label{sec:opahd}\index{opa\_houdek9}\index{link}
\index{opa\_houdek12}
Dans cette version de \cesam2k, l'interpolation des tables d'opacité utilisant le
package
{\tt opa\_houdek9} a été remplacée par sa version actualisée {\tt opa\_houdek12}.
Cette dernière permet d'exploiter des données d'opacité plus récentes incluant celles
utilisées par la version 9.

\noi Le package, de nom {\tt opint\_v12.tar.gz} a été repris du site:\\
\centerline{\tt http://users-phys.au.dk/hg62/opint.html}
Il a été disposé dans le sous-directory {\tt OPA\_H12}.

Après détarage et
décompression: {\tt tar -xzvf opint\_v12.tar.gz}  \index{H12}
le module obtenu {\tt gh\_int.v12} contient les outils et les données nécessaires
à la formation et l'exploitation de tables d'opacité utilisant diverses compositions.
Pour des raisons de cohérence il est pratique d'en disposer directement dans
le sous-directory {\tt SUN\_STAR\_DATA} sous le nom de {\tt H12}.

\noi On trouve dans {\tt notes\_v12.pdf} les directives pour la compilation et
l' exploitation de ce module. Les éléments dans lesquels il est nécessaire d'intervenir
sont:
\begin{tt}\begin{verbatim}
doc --> notes_v12.pdf, lib, Makefile, OPINPATH
\end{verbatim}\end{tt}

\noi {\tt lib} contient l'ensemble des routines nécessaires à la construction
des tables et à leur exploitation.\footnote{Ces routines sont parfois désignées
par un nom différent de celui
donné au sous-programme lui même. Ainsi la routine de nom {\tt dopint.f} est le
sous-programme {\tt opint.f}}

\noi Le {Makefile} permet la construction des tables et des modules exécutables.

\noi Les fichiers {\tt OPINTPATH} contiendront les noms et les chemins des
tables. Ce sont les noms des sources d'opacité utilisées pour l'intérieur
et l'atmosphère.

\noi En suivant les instructions des notes, éditer le makefile
\footnote{Lors de la décompression du package {\tt opint\_v12.tar.gz},
ou de l'édition du
Makefile, il peut arriver que certaines lignes soient mal coupées. Ce à quoi il
faudra remédier en fonction des message d'erreur obtenus lors de l'exécution
du Makefile.}.
Adapter le compilateur et l'optimiseur à la machine dont on dispose, lignes 57
à 78.\\

\noi{\bf Choix des tables d'opacité:}
Un choix entre différentes compilations d'opacité est proposé à l'utilisateur.
Les tables à utiliser étant définies, le Makefile permet de construire les
fichiers  et les programmes nécessaires pour effectuer les interpolations.
La version originale du makefile permet la construction et l'interpolation
des tables d'opacité "GN93" pour l'intérieur et "AG89Fe" pour l'atmosphère
(lignes 111 et 128):

\begin{tt}\begin{verbatim}
INTOPC_DIR   = op05_GN93
ATMOPC_DIR   = rt11_AG89Fe
\end{verbatim}\end{tt}

\noi Pour modifier ces choix, il conviendra d'adapters ces 2 lignes
ainsi qu'il est décrit plus avant.

\noi{\bf Endianness:}
Suivant l'architecture du processeur utilisé, l'organisation des octets en
mémoire peut être "big-endian", ou "little-endian". En mémoire, la
lecture/écriture des octets s'effectuant
dans un sens ou dans l'autre. Il est donc nécessaire qu'il y ait cohérence
entre l'endianness des données et celle du processeur. Pour faciliter
l'exploitation, le package de G.Houdek utilise par défaut
l'endianness du processeur et y adapte celle des données.
Sauf, peut être, pour les experts, il est sage d'en laisser l'initiative au
package.\index{Endianness}\index{big-endian} \index{little-endian}\\

\noi Pour une mise en route il est donc conseillé de ne rien changer au makefile
et de l'exécuter tel quel en saisissant: {\tt make}. Les exécutables et les
fichiers d'interpolation sont créés.
Un nouveau fichier {\tt OPINPATH} est écrit dans l'environnement, il contient
les noms des fichiers binaires d'interpolation pour les tables GN93 et AG89Fe
désignées aux lignes 111 et 127.
Ces fichiers seront utilisés par la routine {\tt opa\_houdek12.f}
lors des appels à l'opacité. Dans ce nouveau fichier {\tt OPINPATH}, il est nécessaire
d'actualiser les chemins de ces fichiers; pour ce faire, remplacer les "./" par le
chemin complet du fichier H12 par exemple:
\centerline{\tt ./op05\_GN93/little\_endian/opalxe.bin --->}
\centerline{\tt /home/pierre/SUN\_STAR\_DATA/H12/op05\_GN93/little\_endian/opalxe.bin}

La bibliothèque {\tt libopint.a} est créée dans {\tt /H12/lib}, il conviendra d'en
indiquer le chemin dans les instructions de {\tt link}, EXEMPLE:

\centerline{\tt  -L ~/SUN\_STAR\_DATA/H12/lib -lopint}

\noi Pour construire les tables d'interpolation pour d'autres associations de
données d'opacité il faut adapter les intructions du Makefile
lignes 110-114 pour les tables d'intérieur et 127-131 pour celles d'atmosphère.
Il est nécessaire d'utiliser des mixtures identiques. Différentes possibilités
sont indiquées dans autres fichiers "{\tt OPINTPATH}" par exemple:

\centerline{\tt  OPINTPATH\_op05\_GN93+af05\_GN93-big}

\noi Lors de l'exécution d'un MAKEFILE les définitions externes prévalent sur les
définitions internes.
Ainsi qu'il est indiqué dans le mode d'emploi cf. {\tt notes\_v12.pdf}
il est donc possible
de préciser ces tables lors de la saisie de l'appel à la construction du Makefile.
Le fichier {\tt OPINPATH} créé mentionnera alors ces tables.

\noi Dans le fichier de données, il suffira d'identifier les tables interpolées
par 'OPINTPATH', Exemple: F\_OPA='opa\_yveline.bin','H12/OPINTPATH',6*' '

\section{Equations d'état.}

\subsection{Equation d'état etat\_opal.f}\index{etat\_opal.f}\label{sec:eosopal}
La source \citep{ir91}
et les tables de l'\EOS\ ont été reprises du site WEB
{\tt ftp://www-phys.llnl.gov/pub/opal/eos/}, où l'on trouve un "README"
expliquant la marche à suivre pour construire une table ASCII
d'\EOS\ pour une valeur de $Z$ fixée.
On transforme ensuite cette table ASCII en fichier binaire.

\medskip
\PB{Certains des sous-programmes du package original d'OPAL
 ont été mo\-di\-fiés pour l'ex\-ploi\-ta\-tion avec \cesam2k;
 en particulier, le blockdata a été supprimé.}
\medskip

\noi Les tables de données et les routines d'exploitation se trouvent dans le
sous-directory  {\tt ETAT\_OPAL1}. Le décompresser.

\noindent Les fichiers ASCII compressés {\tt peos*.gz} contiennent
les données pour l'équation d'état OPAL. Se placer dans le sous-directory
{\tt SUN\_STAR\_DATA}, décompresser tous ces fichiers~: {\tt gunzip peos*.gz}.
\medskip

\noindent Exécuter le programme {\tt ZFSinterppeos} après en avoir
décompressé la source~: {\tt ZFSinterppeos.f.gz}
\begin{tt}\begin{verbatim}
exe2k ZFSinterppeos <==
Encountered 0 errors, 0 warnings in file ZFSinterppeos.f.
type Z:
0.02 <==
\end{verbatim}\end{tt}
entrer la valeur de $Z$, fraction de masse de l'abondance des métaux; on
obtient~:
\begin{tt}\begin{verbatim}
          0.020
   0.0000   0.0000            3.0000000                  4.0036974
   0.0000   0.0200            3.0301077                  4.0629535
   0.0000   0.0400            3.0611377                  4.1251554
   0.2000   0.0000            2.5018048                  2.5114787
   0.2000   0.0200            2.5158978                  2.5350964
   0.2000   0.0400            2.5302570                  2.5591605
   0.4000   0.0000            2.2741616                  1.8296305
   0.4000   0.0200            2.2828465                  1.8421309
   0.4000   0.0400            2.2916493                  1.8548033
   0.6000   0.0000            2.1437435                  1.4389958
   0.6000   0.0200            2.1498623                  1.4467140
   0.6000   0.0400            2.1560483                  1.4545176
   0.8000   0.0000            2.0592246                  1.1858406
   0.8000   0.0200            2.0638888                  1.1910768
   0.8000   0.0400            2.0685947                  1.1963595
\end{verbatim}\end{tt}
Le fichier ASCII {\tt EOSdata} occupant environ 9Mo a été créé.\\
Editer la source du programme  {\tt opal\_ascii\_bin}, et
donner au fichier binaire le nom désiré, par exemple~:
\begin{tt}\begin{verbatim}

......................................

     CLOSE(unit=60)   <===   ligne 117 de opal_ascii_bin.f

c    f_eos='eos_opal_190.bin'
     f_eos='eos_opal_195.bin'
c    f_eos='eos_opal_330.bin'
c    f_eos='eos_opal_180.bin'
c    f_eos='eos_opal_170.bin'
c    f_eos='eos_opal_130.bin'
c    f_eos='eos_opal_050.bin'

     WRITE(*,6)f_eos
6    FORMAT('debut ecriture sur le fichier binaire: ',a50)
     CLOSE(unit=60)

............................................

\end{verbatim}\end{tt}
Exécuter le programme {\tt opal\_ascii\_bin} ainsi modifié~:
\begin{tt}\begin{verbatim}
exe2k opal_ascii_bin <==
Encountered 0 errors, 0 warnings in file opal_ASCII_bin.f.
donnees prises dans le fichier: EOSdata
lecture, et c'est long, de ce fichier
 fin de lecture des tables OPAL
 debut ecriture sur le fichier binaire: eos_opal_195.bin
 fin ecriture sur le fichier binaire
 donnees prises dans le fichier binaire: eos_opal_195.bin
 lecture, des donnees EOS opal, et c'est long
 fin de lecture des donnees EOS opal en binaire
 test relecture effectue
\end{verbatim}\end{tt}
Supprimer les modules exécutables~:
\begin{tt}\begin{verbatim}
rm *.out <==
rm: remove regular file `ZFSinterppeos.out'? y <==
rm: remove regular file `opal_ascii_bin.out'? y <==
\end{verbatim}\end{tt}
Enfin, recompresser les fichiers ASCII, et supprimer les fichiers
{\tt EOSdata} et {\tt fort.2} désormais inutiles~:
\begin{tt}\begin{verbatim}
gzip peos* <==
rm EOSdata <==
rm: remove regular file `EOSdata'? y <==
rm fort.2 <==
rm: remove regular file `fort.2'? y <==
\end{verbatim}\end{tt}

\subsection{Equations d'état etat\_opalX.f, etat\_opalZ.f}\index{etat\_opal.f}
\index{etat\_opalZ.f}\index{etat\_opalX.f}\index{opalX\_ascii\_bin.f}
\index{opalZ\_ascii\_bin.f}
Les équations d'état opal 2001 offrent une alternative pour la métallicité~:
{\tt etat\_opalZ}, comme dans la version 1991, crée une table pour
une métallicité donnée, et l'abondance d'hydrogène doit être dans l'intervalle
$X\in[0,0.8]$, tandis que {\tt etat\_opalX}, cré une table pour $X\in[0,1]$
donné mais avec $Z=0$, \cfparagr{sec:nlchim}.

\noi Les données et les programme de contruction des tables se trouvent dans
le sous-directory {\tt ETAT\_OPAL\_XZ} qu'il convient
de décompresser et où on se placera.

\begin{itemize}
\item Avec $Z\neq0$, créer le fichier d'équation d'état correspondant à la
métallicité requise
en décompressant puis exécutant le programme {\tt Z\_interp\_IEOS}~:\\
\noi saisir {\tt exe2k Z\_interp\_IEOS}, on obtient:
\begin{tt}\begin{verbatim}
 Encountered 0 errors, 0 warnings in file Z_interp_IEOS.f.
 type Z:  0.025  <===== entrer la valeur de Z
    0.025000000
\end{verbatim}\end{tt}
Il y a création d'un fichier ASCII compressé de nom {\tt EOSdata.gz}.
Transformer ce fichier en binaire, en lui donnant le nom avec lequel il sera
identifié par la suite. Pour ce faire, entrer ce nom dans le programme
{\tt opalZ\_ascii\_bin} (vers la ligne 135)~:
\begin{tt}\begin{verbatim}
c	f_eos='eos_opal_190.bin'
c	f_eos='eos_opal_195.bin'
	f_eos='eos_opal_250.bin'  <========
c	f_eos='eos_opal_330.bin'
c	f_eos='eos_opal_180.bin'
\end{verbatim}\end{tt}
puis exécuter ce programme qui comporte un test de lecture~:\\
\noi saisir {\tt exe2k opalZ\_ascii\_bin}, on obtient:
\begin{tt}\begin{verbatim}
Encountered 0 errors, 0 warnings in file opalZ_ascii_bin.f.
Fichier de données inconnu : EOSdata
décompression du fichier ASCII de données : EOSdata.gz
données ASCII prises dans le fichier: EOSdata
lecture, et c'est long, de ce fichier
 fin de lecture des tables OPAL
début des écritures sur le fichier binaire: eos_opal_250.bin
fin des écritures en binaire, test de relecture
 données prises dans le fichier binaire: eos_opal_250.bin
 décompression du fichier
 lecture, des données EOS opal, et c'est long
recompression du fichier binaire eos_opal_250.bin
 fin de lecture des données EOS opal en binaire
 test de relecture réussi
\end{verbatim}\end{tt}
Eventuellement supprimer {\tt EOSdata.gz}~:
\begin{tt}\begin{verbatim}
 rm EOSdata.gz
\end{verbatim}\end{tt}
\item Avec $Z=0$, l'interpolation utilise le fichier {\tt EOSdata\_H-He}
qu'il suffit de transformer en binaire en exécutant le programme
{\tt opalX\_ascii\_bin} du sous-directory {\tt SUN\_STAR\_DATA}.
\end {itemize}

\subsection{Equation d'état etat\_opal5.f}\index{etat\_opal5}
\index{opal5Z\_ascii\_bin.f}\label{sec:eosopal5}\index{\tt ZFS\_interp\_EOS5.f}
Equation d'état similaire aux précédentes se trouvant dans le sous-directory
{\tt ETAT\_OPAL5}. Le README original donne
quelques explications pour l'utilisation. La table est créée par
les deux programmes {\tt ZFS\_interp\_EOS5} et {\tt opal5Z\_ascii\_bin} dont on formera
les exécutables.
Le script {\tt create\_EOS5} lance la formation de la table en binaire dont le nom
{\tt op5\_iiii.bin} utilise la valeur iiii déduite de Z (ici $Z=0.0174$)
qui figurera dans l'appel à la
procédure: {\tt create\_EOS5 0.0174}. Placer ensuite la table compressée de nom
{\tt op5\_0174.bin.gz} dans le directory {\tt SUN\_STAR\_DATA}. Dans le
fichier de données il ne sera pas nécessaire d'indiquer que la table est compressée.
L'EOS opal5 a été communiquée et poue l'essentiel, adaptée à \cesam2k par
V.A. Baturin \&  A.V. Oreshina du Sternberg Astronomical Institute,
Lomonosov Moscow State.

\begin{figure}%[ht]
\includegraphics[width=0.9\textwidth]{SAHA_OPALS_domains.pdf}
\caption{Domaines des EOS OPAL2001, OPAL2005 et SAHA-S.
Graphe communiqué par A.V. Oreshina du Sternberg Astronomical Institute, Lomonosov
Moscow State University.}
\label{fig:EOS}
\end{figure}

\subsection{Equation d'état etat\_mhd.f}\index{etat\_mhd.f}\label{sec:mhdk}
Package de l'\EOS\ MHD \citep{d88} appelé par la routine {\tt etat\_mhd}
({\em vérifier que ce package, fourni par W. D\"appen, est actualisé}).
Les 8 tables {\tt mhd1\_oc\_tau.tab} ... {\tt mhd8\_oc\_tau.tab}
qui se trouvent sur le serveur anonyme {\tt usc.edu}, dans le répertoire
{\tt pub/astro-physics/mhd-oc-tau/wd-evo}, sont disposées dans
le sous-directory {\tt ETAT\_MHD} sous les noms {\tt mhd1.tab.gz} ...
{\tt mhd8.tab.gz}.

\noi Décompresser {\tt ETAT\_MHD}, et s'y placer.
Décompresser les tables en ASCII~: {\tt gzip mhd* <==} et la source du
programme {\tt fmttob}~: {\tt gzip fmttob.f.gz}. Transformer les tables
en binaire en exécutant {\tt fmttob <==}. Le README rappelle cette procédure.
\begin{tt}\begin{verbatim}
exe2k fmttob
Encountered 0 errors, 0 warnings in file fmttob.f.
 decompression

Press Enter to Continue. <==

 enter main
 ZAMS-type: filename of input (formatted) table #  1
 enter filename of output (unformatted) table #  1
 ZAMS-type: filename of input (formatted) table #  2
 enter filename of output (unformatted) table #  2
 ZAMS-type: filename of input (formatted) table #  3
 enter filename of output (unformatted) table #  3
 center-type: filename of input (formatted) table #  4

 ...................................

     4.002600       7.7222100E-02   0.2299999

     12.01100       4.2665000E-04   3.8132454E-03

     14.00670       1.0717000E-04   1.1169993E-03

     15.99940       9.1215000E-04   1.0859599E-02

     20.17900       2.8039000E-04   4.2102317E-03

 mean molecular weight =    1.2455340


bilou@port-morel%
\end{verbatim}\end{tt}
Supprimer les exécutables~:
\begin{tt}\begin{verbatim}
rm *.out <==
rm: remove regular file fmttob.out ?  y <==
\end{verbatim}\end{tt}

\noi Placer les tables binaires obtenues dans {~/SUN\_STAR\_DATA}.

\subsection{Equation d'état analytique etat\_irwin.f}
\index{etat\_irwin.f}\label{sec:irwin}
\index{lapack}\index{blas}\index{free\_eos}
Cette équation d'état "analytique" est plus sophistiquée que {\tt etat\_eff} ou
{\tt etat\_ceff} au sens où elle permet de tenir compte séparément de chacun des éléments lourds de la mixture et non pas
globalement en tant que "Z" et ce
au prix d'un effort de calcul beaucoup plus considérable. Suivant le système
d'exploitation utilisé il est possible de l'implanter de différentes façons. Le mode
d'emploi qui suit est essentiellement dû à Y.Lebreton.\\
Un préalable est de vérifier si les bibliothèques d'algèbre
linéaire {\tt liblapack.a} et {\tt libblas.a} sont déjà implantées, souvent dans le
directory {\tt /usr/lib}. Si tel n'est pas le cas les implanter à l'aide
d'{\tt apt-get} ou des {\tt paquets synaptic}, \cfparagr{sec:lapack}.

\noi  {\bf Pour implémenter {\tt free\_eos}}, la procédure la plus directe
consiste à se placer dans le sous-directory {\tt ETAT\_irwin} et
d'y suivre les instructions du {\tt README\_installation}:

\begin{enumerate}
\item Se placer dans {\tt free\_eos2.2.1/src}.
\item Saisir : {\tt ../scripts/compile2k-irw\_list lib\_eos list\_compil}.
\item Copier libeos.a : {\tt cp libeos.a \$HOME/SUN\_STAR\_DATA/libeos.a}.
\item Se placer dans utils : {\tt cd ../utils}.
\item Saisir : {\tt ../scripts/compile2k-irw\_list libutils list\_compil}.
\item Copier libutils.a : {\tt cp libeos.a \$HOME/SUN\_STAR\_DATA/libutils.a}.
\end{enumerate}

\noi En cas d'échec il conviendra de suivre les instructions des auteurs:
 \begin{enumerate}
  \item Créer cette bibliothèque en suivant la procédure des MAKEFILEs décrite
  dans le README du fichier {\tt free\_eos-2.2.1}.
  \item Créer la bibliothèque avec le compilateur à disposition:
  \begin{itemize}
   \item Se placer dans le sous-directory {\tt scripts}. Dans le
   script (bash) {\tt compile}, adapter les paramètres de compilation au
   compilateur utilisé.
   \item Se placer dans le sous-directory {\tt cd ../src}, exécuter:\\
   {\tt ../scripts/compile\_list libeos list\_compil} et copier la bibliothèque
   {\tt libeos.a} dans le directory {\tt SUN\_STAR\_DATA}:\\
   {\tt cp libeos.a $\sim$/SUN\_STAR\_DATA/libeos.a}
   \item Se placer dans le sous-directory {\tt cd ../utils}, exécuter:\\
   {\tt ../scripts/compile\_list libutils list\_compil} et
   copier la bibliothèque {\tt libutils.a} dans le directory {\tt SUN\_STAR\_DATA}:\\
   {\tt cp libutils.a $\sim$/SUN\_STAR\_DATA/libutils.a}.
  \end{itemize}
% \end{enumerate}
%\end{enumerate}
\item Un type d'implantation adapté à \cesam2k est décrit dans le fichier
{\tt README\_YL\_EOS\_IRW}.
Le fichier {\tt README} donne des informations générales concernant l'implanation
et l'exploitation de {\tt free\_eos}.
Dans le {\tt script exe2k},  \cfparagr{sec:exploit},  et/ou dans les
Makefiles indiquer le chemin des
bibliothèques {\tt liblapack, libblas, libeos}:
\begin{verbatim}
	-L ~/SUN_STAR_DATA -leos \
	-lm -llapack -lblas
\end{verbatim}

\item Il est évidemment possible de suivre et d'exécuter les instructions développées
dans les différents README de cette source.
\end{enumerate}

\noi Une possibilité de personnalisation
des paramètres de cette équation d'état est décrite au \paragr{sec:pfree} et, pour
son exploitation, \paragr{sec:nletat}.

\subsection{Equation d'état etat\_saha.f}\index{etat\_saha.f}\label{sec:eosaha}
\index{etat\_saha}
Equation d'état tabulée à Z variable. L'EOS est calculée à partir des tables de
Gryaznov, Iosilevsky \& Starostin, communiquées et adaptées à \cesam2k par
V.A. Baturin \&  A.V. Oreshina du Sternberg Astronomical Institute, Lomonosov Moscow
State University. On en trouvera les données et les explications originales
dans le sous-directory {\tt ETAT\_SAHA} dans lequel
les 8 tables {\tt ASCII} {\tt eos\_saha...dat.gz} compressées doivent être placées.
Ne {\bf pas} indiquer leur nom dans le fichier de données.
La métallicité initiale doit être dans l'intervalle $[0.00 < Z < 0.020]$. Au premier
appel les tables entourant la métallicité initiale sont reprises des données.
La dépendance en Z est obtenue par des interpolations linéaires. Les dérivées des
grandeurs thermodynamiques sont déduites des interpolations des tables par
B-splines en utilisant des routines reprises de \citep{db78}.

\section{Lois T($\tau$)}
\subsection{Lois T($\tau$) MARCS}\index{MARCS}
 Les lois T($\tau$) de MARCS, \cfparagr{sec:nlatm}, sont disposées dans le
 sous-directory {\tt ATM\_MARCS}.
\subsection{Lois T($\tau$) PIAU}\index{PIAU}
 Les lois T($\tau$ )de L.Piau, \cfparagr{sec:nlatm}, sont disposées dans le
 sous-directory {\tt ATM\_PIAU}.
\subsection{Lois T($\tau$) Roger}
 Les lois T($\tau$) non purement radiatives de R.Cayrel, \cfparagr{sec:nlatm},
 sont disposées dans le
 sous-directory {\tt ATM\_ROGER}. Ces lois sont dérivées des modèles d'atmosphère
 de Kurucz pour différentes métallicités. Les fonctions $q(\tau)$ sont extraites des
 données originales et mises sous la forme
 \[T=T_{\rm eff}(3/4(\tau+q(\tau)))^{1/4}\] puis interpolées en fonction de la
 profondeur optique $\tau$ Rosseland.

\section{Divers}
\subsection{Package Lapack} \label{sec:lapack}\index{lapack}
Le package d'analyse numérique linéaire {\tt Lapack} est souvent introduit
de façon native dans les installations si tel n'est pas le cas, il est nécessaire de
construire les bibliothèques et les exécutables. A cette la version 3.7.1
est disposée dans le sous-directory {\tt LAPACK-3.7.1}.
Un préalable à son installation est de vérifier si les bibliothèques d'algèbre
linéaire {\tt lapack} et {\tt blas} ne sont pas déjà implantées.
Sinon, sous LINUX, une première possibilité est les installer avec:
\centerline {\tt apt-get install lapack3-dev blas3-dev}

\noi Il y a échec si la bibliothèque {\tt apt-get} n'est pas compatible.
Dans cas tenter d'utiliser le {\em gestionnaire de paquets synaptic}, pour l'installer
saisir:
\centerline{\tt sudo apt-get install synaptic}

\noi l'activer à partir des "favoris" regroupées dans le "système".

\noi En cas d'échec, suivre la procédure d'installation contenue dans le README du
package LAPACK:
\begin{itemize}
\item Rechercher dans le sous-directory {\tt INSTALL} s'il existe un Makefile de nom
{\tt make.inc.cmpl}
correspondant au compilateur 'cmpl' utilisé; Exemple pour le compilateur ifort:
{\tt make.inc.ifort}.
\item S'il existe, le recopier dans le directory {\tt LAPACK} sous le nom de
{\tt make.inc}.
\item S'il n'existe pas, dans le directory {\tt LAPACK}, copier le makefile
{\tt make.inc.example} dans {\tt make.inc} et adapter ce dernier au compilateur
utilisé.
\item Saisir "make" pour exécuter le Makefile créant les bibliothèques et les
exécutables.
\end{itemize}

 \subsection{Modèles ASCII d'initialisation PMS et ZAMS homogènes}

Des modèles ASCII d'initialisation PMS et ZAMS homogènes sont disposés dans
le sous-directory {\tt HOM\_PMS}.\par
Trois modèles ASCII d'initialisation PMS :
\begin{enumerate}
\item 2d-2.pms : modèle initial de PMS calculé avec une valeur de la constante de
contraction égale à $210^{-2}$. La température centrale initiale étant de l'ordre
de $2 10^5$K cette initialisation est à utiliser si on recherche des effets liés
aux molécules.
\item 5d-4.pms : modèle initial de PMS calculé avec une valeur de la constante de
contraction égale à $510^{-4}$. La température centrale initiale étant de l'ordre
de $5 10^5$K cette initialisation convient pour la plupart des situations.
\item 8d-5.pms : modèle initial de PMS calculé avec une valeur de la constante de
contraction égale à $810^{-5}$. La température centrale initiale étant de l'ordre
de quelques $10^6$K, à réserver pour les masse élevées.
 \end{enumerate}

\medskip

Les modèles de ZAMS homogène\footnote{Ces modèles de noms génériques
{\tt mon\_modele\_B.hom}
diffèrent des modèles de ZAMS issus d'une évolution pré-séquence principale,
noms génériques {\tt mon\_modele\_B.zams}.} n'ont pas de sens
physique au sens où les réactions nucléaires ne sont pas en équilibre avec les
abondances des éléments chimiques. Ils se
différencient des modèles de ZAMS caractérisés par l'équilibre entre la production
d'énergie radiative et d'énergie gravitationnelle. Les incohérences physiques des
modèles initialisés sur la ZAMS homogène sont relaxées à l'issue d'une vingtaine
de pas temporels environ et l'évolution ultérieure coïncide avec celle d'un
modèle de mêmes
caractéristiques initialisé sur la PMS. Une réserve toutefois à cette assertion
concerne les modèles comportant des éléments dont l'abondance {\em cosmique initiale}
conduit à des réactions nucléaires explosives dues aux conditions physiques centrales.
Le lithium et le deutérium étant particulièrement concernés.

\noi Trois modèles ASCII d'initialisation ZAMS :
\begin{enumerate}
\item m010.zams : modèle initial de ZAMS homogène d'une masse $1M_\odot$, convient
pour l'initialisation de modèles entre $0.5M_\odot$ et $1.5M_\odot$. En deça, calculer
des modèles initiaux de masse inférieure en procédant par étapes successives avec
des masses décroissantes.
\item  m020.zams: modèle initial de ZAMS homogène d'une masse $2M_\odot$, convient
pour l'initialisation de modèles entre $1.5M_\odot$ et $3.5M_\odot$
\item m050.zams : modèle initial de ZAMS homogène d'une masse $5M_\odot$, convient
pour l'initialisation de modèles entre $3.5M_\odot$ et $10M_\odot$. Au delà, calculer
des modèles initiaux de masse supérieure en procédan par étapes  successives avec des
masses croissantes.
 \end{enumerate}

\subsection{Données pour accélérations radiatives}
Ces données permettant le calcul des accélérations radiatives selon le formalisme
de G.Alécian, \cfparagr{sec:accrad}. Elles sont regroupées dans les fichiers du
sous-directory
{\tt ACC\_RAD}. Les accélérations radiatives n'ont d'efficacité que pour des
étoiles de types spectral au delà de {\bf F}.\index{accélérations radiatives}




