\section{Programme Principal}\index{programme principal}\label{sec:pp}
Le programme principal se compose des instructions FORTRAN:
{\sf\begin{verbatim}
	program star

	implicit none

	include 'modele.common'

	external etat,opa,conv,nuc,
	1	lim,t_tau,diffm,difft,perte,ctes,des

	sub_phys(1)='etat,opa,conv,nuc'
	sub_phys(2)='lim,t_tau,diffm,difft,perte,ctes,des'

	call cesam(etat,opa,conv,nuc,
	1	lim,t_tau,diffm,difft,perte,ctes,des)

	stop

	end
\end{verbatim}}

\medskip
\PB{L'ordre des arguments doit être respecté; un nom pour chacune des
routines doit né\-ces\-sai\-re\-ment figurer, même si le
modèle à calculer ne les utilise pas toutes ef\-fec\-ti\-vement.}

\section{Options physiques standard et non standard}\label{sec:opt}
\index{options}
Pour chacun des sous-programmes {\em externes} de physique,
arguments de la routine {\sf cesam},on donne le nom de l'{\bf op\-tion
stan\-dard}; c'est une
routine qui assure, du point de vue {\em numérique}, un déroulement
satisfaisant
des calculs; du point de vue physique l'option standard n'est pas, hélas,
nécessairement la plus pertinente. On décrit aussi les fonctions d'un
certain nombre de sous programmes correspondants à des options physiques non
standards qui se trouvent dans la source. La description détaillée des
routines de la source de {\sc cesam} fait l'objet du \cha{cha:ssp}.


\begin{enumerate}
 \item{\sf etat}: option standard {\sf etat\_eff}, équation
d'état.\index{equation d'état}
  \begin{itemize}
   \item {\sf etat\_eff}: équation d'état EFF, Eggleton \etal{eff73},
   {\bf option standard},
   {\it robuste, usage conseillé}, constitue un package
   \cf \paragr{sec:pack}.\index{etat\_eff}

   \item {\sf etat\_ceff}: équation d'état CEFF, physiquement
plus complet que {\sf etat\_eff},
{\it peu robuste, usage délicat, peu
con\-seil\-lé}, constitue un package
   \cf \paragr{sec:pack}.\index{etat\_ceff}

   \item {\sf etat\_gong1}: équation d'état complètement ionisé sans
dé\-gé\-né\-res\-cen\-ce ni pression de radiation, très utile pour
tests ou essais d'algorithmes, {\it usage conseillé.}\index{etat\_gong1}

   \item {\sf etat\_gong2}: équation d'état avec ionisation partielle
sans dégénérescence ni pression de radiation,
{\it usage con\-seil\-lé pour mises au point.}
\index{etat\_gong2}

   \item {\sf etat\_opal}: équation d'état tabulée OPAL96
   pour modèles avec composition solaire, Iglesias \& Rogers \cite{ir91},
    utilise une
table à Z donné calculée par interpolation en utilisant le package de
Livermore {\sf eosplus} \cf \paragr{sec:opal}, {\it usage nécessaire},
 constitue un package \cf \paragr{sec:pack}.
Les tables d'\EOS\ sont disponibles sur le site WEB
{\tt ftp://www-phys.llnl.gov/pub/opal/eos/}.\index{etat\_opal}

\medskip
\PB{Dans la source de {\sc cesam}, certaines routines originelles de Livermore
ont été modifiées sans changer leur nom.}

\PB{En cas de difficultés, \eg sortie de table,
l'é\-qua\-tion d'état MHD est utilisée; un message signale, mais
seu\-lement
la pre\-miè\-re fois, que cette nécessité a été rencontrée.}


    \item {\sf etat\_mhd}: équation d'état tabulée MHD,
    pour modèles avec composition solaire \cf \paragr{sec:mhd},
    {\it usage nécessaire}, constitue un package \cf \paragr{sec:pack}.
\index{etat\_mhd}

\medskip
\PB{En cas de difficulté, \eg sortie de table,
l'é\-qua\-tion d'état EFF est utilisée; un message indique que
cette nécessité a été rencontrée.}

 \end{itemize}

 \item {\sf opa}: option standard {\sf opa\_int\_zsx}, calcule
l'opacité.\index{opa}

  \begin{itemize}

%   \item {\sf opa\_allard}: opacités $\alpha$ enhanced d'OPAL
%   pour la mixture allard96 prolongée pour les basses températures
%   par les opacités atmosphériques de Kurucz $\alpha$ enhanced de 4\%;
%   constitue un package \cf \paragr{sec:pack}.\index{opa\_allard}

   \item {\sf opa\_gong}: formule type Kramers améliorée,
   {\it très utile pour des tests ou des essais d'al\-go\-ri\-thmes.}
\index{opa\_gong}

   \item {\sf opa\_int\_zsx}: interpolation des tables d'opacité OPAL
1991, et pour les basses temperatures Kurucz 1991, (raccord de Y. Lebreton et J.
Fernandez) par
spline $4\times1$\,D, suivant les quatre directions $T6, A, X, Z$, {\bf option standard},
{\it très pratique pour des essais, données obsolètes.}
\index{opa\_int\_zsx}

   \item {\sf opa\_houdek9}: interpolation de tables d'opacité OPAL 1995,
 Iglesias \& Rogers \cite{ir91}, avec raccord aux opacités de Kurucz ou
   d'Alexander pour les basses températures,
   par splines birationnelles suivant la version 9 \cf \paragr{sec:houd}
   du package de Houdek \& Rogl \cite{hr96},
{\it usage conseillé, limité aux valeurs
de $Z\leq0.04$}, constitue un package
\cf \paragr{sec:pack}. Il est possible, en modifiant des paramètres
internes à la routine {\sf opa\_houdek} de modifier la technique
d'interpolation et la source des opacités à
basse température. Opacités très voisines de celles de
{\sf opa\_yveline} dans leur recouvrement.\index{opa\_houdek}

   \item {\sf opa\_yveline}: interpolation de tables d'opacité OPAL 1995,
 Iglesias \& Rogers \cite{ir91}, avec raccord aux opacités de Kurucz
   pour les basses températures, routines d'interpolation de Y. Lebreton
{\it usage conseillé, limité aux valeurs
de $Z\leq0.1$}, constitue un package \cf \paragr{sec:pack}.
Opacités très voisines de celles de
{\sf opa\_houdek} dans leur recouvrement.
\index{opa\_yveline}

  \end{itemize}

 \item {\sf conv}: option standard {\sf
conv\_jmj}, calcule le gradient de température dans une zone convective.
\index{conv}
  \begin{itemize}
%   \item{\sf conv\_gong}: gradient calculé par la longueur de
%mélange, formulation classique, {\it usage
%conseillé.}\index{conv\_gong}

   \item {\sf conv\_jmj}: gradient calculé par la longueur de mélange,
formulation tenant compte de l'épaisseur optique de l'élément convectif,
{\bf option standard}, {\it usage conseillé.}\index{conv\_jmj}

   \item {\sf conv\_cm}: gradient calculé par la prescription de
   Canuto \& Mazitelli \cite{cm91}, {\it usage conseillé.}\index{conv\_cm}

  \end{itemize}

 \item {\sf lim}: option standard {\sf lim\_tau1}, calcule les conditions
limites.\index{lim}
  \begin{itemize}
    \item {\sf lim\_gong1}: conditions limites externes monocouche à
n'utiliser qu'avec la routine  {\sf etat\_gong1},
n'utilise pas de loi $T(\tau)$\index{lim\_gong1} pour tests ou essais des
algorithmes, {\it robuste, usage conseillé.}

    \item {\sf lim\_atm}: reconstitution d'une atmosphere en assurant
assure la continuité des gradients à la limite avec l'enveloppe
\cf \paragr{sec:rac}, {\it usage conseillé.}\index{lim\_atm}

    \item {\sf lim\_tau1}: conditions limites externes monocouche
    à $\tau =1$, n'utilise pas de loi $T(\tau)$,
{\bf option standard}, {\it robuste}, {\it usage conseillé.}
\index{lim\_tau1}
  \end{itemize}


 \item{\sf t\_detau}: option standard {\sf hopf}, calcule la température
en fonction de la profondeur
  optique pour reconstituer une atmosphère, initialisation de la densité
  à la limite externe du modèle.\index{t\_detau}
  \begin{itemize}
   \item {\sf hsra}: atmosphère du H.S.R.A. interpolée,
   loi non purement radiative, {\it robuste, gradient de température
   non lissé
   dans la partie transparente, usage limité.}\index{hsra}

   \item {\sf edding}: loi $T(\tau)$ purement radiative d'Eddington,
   {\it très robuste, usage conseillé.}\index{edding}

   \item {\sf hopf}: loi $T(\tau)$ purement radiative de Hopf, {\bf option
standard}, {\it très robuste, usage conseillé.}\index{hopf}

   \item {\sf k5750}: loi $T(\tau)$ non purement radiative déduite
   du modèle
d'atmosphère solaire calculé par C. van't Veer avec
le programme ATLAS9 de Kurucz
pour$T_{\rm eff}=5750$K, {\it robuste, usage conseillé.}\index{k5750}

   \item {\sf k5770}: loi $T(\tau)$ non purement radiative déduite
   du modèle
d'atmosphère solaire calculé par C. van't Veer avec
le programme ATLAS12 de Kurucz pour $T_{\rm eff}=5770$K, {\it
robuste, usage conseillé pour modèles solaires.}\index{k5770}

   \item {\sf roger00}: loi $T(\tau)$ non purement radiative déduite
   de modèles
d'atmosphère  de métallicité [Fe/H]=0.0 calculés par R. Cayrel avec
le programme ATLAS12 de Kurucz. Interpolation en température effective
$3500K < { T_{\rm eff}} < 6500K$, et gravité $1 < \log_{10}(g) < 5$.
 {\it robuste, usage conseillé.}.\index{roger00}

   \item {\sf roger02}: loi $T(\tau)$ non purement radiative déduite
   de modèles d'atmosphère de métallicité [Fe/H]=0.2
    calculés par R. Cayrel avec
le programme ATLAS12 de Kurucz. Interpolation en température effective
$4000K < T_{\rm eff} < 6500K$, et gravité  $1 < \log_{10}(g) < 5$.
{\it robuste, usage conseillé.}\index{roger02}

  \end{itemize}

 \item {\sf nuc}: option
standard {\sf ppcno9e}, calcule les taux des réactions
thermonucléaires, le
  débit d'énergie thermonucléaire et le nombre de neutrinos. Les routines
  de réactions thermonucléaires sont robustes.
  \index{nuc}
  \begin{itemize}
   \item {\sf nuc\_gong}: cycle PP simplifié, sans le calcul du neutrino:
{\it très robuste, pour essais, usage conseillé.}\index{nuc\_gong}

   \item {\sf ppcno9e}: réactions des cycles PP, CNO avec
$^2$D, $^7$Li, $^7$Be à l'équilibre, pour des températures
inférieures à 20MK,
{\it robuste, usage conseillé.}\index{ppcno9e}

  \item {\sf nacre9}: similaire à la précédente
   avec les taux de la compilation NACRE (Angulo \etal{a99},
   Morel \etal{mppb99});
{\it robuste, usage conseillé.}\index{NACRE}\index{nacre9}

   \item {\sf ppcno9e\_gt}: similaire à {\sf ppcno9e}
mais permettant d'atteindre la branche des géantes
\ie\ pour des températures inférieures à 50MK,
{\it robuste, usage conseillé.}
\index{ppcno9e\_gt}

   \item {\sf ppcno10Fe}:\index{ppcno10Fe}
 Cette routine est principalement destinée à suivre
l'évolution de l'abondance du lithium à partir d'un modèle
de ZAMS homogène en utilisant l'abondance météoritique du lithium.
``Fe'' correspond à un élément moyen représentant les
isotopes de masse supérieure à celle du potassium.
{\it robuste, usage conseillé.}

   \item {\sf nacre9\_gt}: similaire à la précédente avec les
   réactions de la compilation NACRE (Angulo \etal{a99}, Morel \etal{mppb99};
{\it robuste, usage conseillé.}\index{nacre9\_gt}

   \item {\sf ppcno3a9e}: similaire à {\sf ppcno9e}
   avec des réactions du cycle
   $3\alpha$ et pour des températures
inférieures à 200MK, {\it robuste, usage conseillé.}
\index{ppcno3a9e}

   \item {\sf ppcno3ac10}: similaire à {\sf ppcno3a9e}
   avec des réactions des cycles du carbone
   pour des températures
inférieures à 300MK, {\it semble robuste, peu testé.}
\index{ppcno3ac10}

   \item {\sf ppcno12e}: similaire à {\sf ppcno9e} mais sans
   élément à l'équilibre, pour évolutions avec \PMS, {\it
robuste, usage conseillé.}\index{ppcno12e}

   \item {\sf ppcno13e}: similaire à {\sf ppcno9e} mais sans
   élément à l'équilibre et avec l'isotope \Be9,
   pour évolutions avec \PMS, {\it robuste, usage conseillé.}
   \index{ppcno13e}

   \item {\sf ppcno12en}, {\sf ppcno13en}: similaires aux deux précédentes
   avec les nouveaux taux de réactions de Adelberger \etal{al98}.

    \item {\sf nacre12e}, {\sf  nacre13e}:
    similaires aux précédentes
   avec les nouveaux taux de réactions de la compilation européenne
   NACRE (Angulo \etal{a99}, Morel \etal{mppb99}).
   \index{nacre12e},\index{nacre13e}
%\medskip
%\PB{La source de {\sc cesam}
%comporte d'autres routines de ce type \cf \paragr{sec:bib},
%qui ne sont pas citées.}

\medskip
\PB{Chaque routine de ce type \eg\ {\sf nacre12e}, utilise une table
crée par le pro\-gram\-me {\sf tab\_reac}, dont il convient, pour quelques
unes, d'indiquer le
chemin d'accès dans la rou\-tine elle mê\-me \cf \paragr{sec:tabnu}.}

  \end{itemize}

 \item {\sf diffm}: option standard {\sf diffm\_mp}, calcul du
coefficient de diffusion turbulente. {\it Robuste, usage n\'cessaire}.
\index{diffm}
  \begin{itemize}
   \item {\sf diffm\_0}: Routine fictive à utiliser quand on ne tient
   compte que de la diffusion microscopique.\index{diffm\_0}

  \item {\sf diffm\_mp}: Calcul des coefficients de diffusion
  microscopique suivant le formalisme de Michaud \& Proffit \cite{mp93}
  les éléments lourds sont éléments traces, les coefficients de
  diffusion sont déduits du nombre de protons.
  {\it Robuste, pour les étoiles de la séquence principale.}\index{diffm\_mp}

\item {\sf diffm\_br}: Calcul des coefficients de diffusion
  microscopique suivant le formalisme de Burgers
\cf \paragr{sec:burgers}. Lorsque la variable logique {\sf f\_rad}
 de la NAMELIST {\sf nl\_chim} est vraie,
 les forces radiatives sont calculées suivant le formalisme
simplifié de G. Alécian \cf \paragr{sec:accrad}; On utilise alors les tables
{\sf phi\_psi2\_100.dat}....{\sf phi\_psi2\_200.dat} du directory {\tt DATA} de la
source de {\sc cesam}.\index{forces radiatives}\index{accelerations radiatives}
Tous les éléments sont diffusés.
{\it Robuste, demande beaucoup de ressources.}\index{diffm\_br}
 \end{itemize}

 \item {\sf difft}: option standard {\sf difft\_cte}, calcul du
coefficient de diffusion turbulente et de mélange.\index{difft}
  \begin{itemize}
   \item {\sf difft\_cte}: Calcul du coefficient de mélange turbulent
   pour les zones mélangées et, dans les zones radiatives,
   du coefficient de mélange turbulent
   {\sf d\_turb} de la NAMELIST {\sf nl\_chim}.
   {\it Robuste, usage conseillé}.\index{difft\_cte}

   \item {\sf difft\_nu}: Calcul du coefficient de mélange turbulent
   pour les zones mélangées et, dans les zones radiatives,
   du coefficient de mélange turbulent d\^u à la viscosité radiative
   selon Morel \& Thévenin \cite{mt02} et au paramètre
   {\sf d\_turb} de la NAMELIST {\sf nl\_chim}.
   {\it Robuste, usage conseillé}.\index{difft\_cte}

   \item {\sf difft\_g}: En plus du coefficient de mélange turbulent dans les
   zones convectives, calcul du coeffficient de mélange sous la  zone convective
   solaire suivant le formalime de Gabriel \cite{g97}. {\it Robuste, usage
   spécifique}.\index{difft\_g}

   \item {\sf difft\_wt}: En plus du coefficient de mélange turbulent dans les
   zones convectives, calcul d'un coeffficient de mélange
   dans les couches externes et coefficient de diffusion infini (rotation
   solide) pour le moment angulaire. {\it Robuste, usage
   spécifique}.\index{difft\_wt}

 \end{itemize}


\item{\sf perte}: option standard {\sf perte\_ext}\index{perte}, calcule la
perte de masse.
 \begin{itemize}
 \item{\sf perte\_ext}: perte de masse due à une perte externe constante,
{\bf option standard}, {\it Robuste, usage conseillé}.\index{perte\_ext}

 \item{\sf perte\_tot}: perte de masse externe due à une perte  constante et
au défaut de masse, {\it Robuste, usage conseillé}.\index{perte\_tot}

 \end{itemize}
\item {\sf ctes}: option standard {\sf ctes}, initialisation des constantes
de physique.\index{ctes}


  \begin{itemize}
   \item {\sf ctes}: valeurs des constantes le plus souvent utilisées,
{\bf option standard}, {\it Robuste.}

\PB{Certaines données atomiques ne sont pas définies dans {\sf ctes},
mais dans le programme {\sf tab\_reac}, elles n'apparaissent donc pas dans le
COMMON {\sf ctephy.common}.}

  \end{itemize}

\item {\sf des}: option standard {\sf des\_m}, dessin, {\it on line},
des variables globales, de la composition chimique, du diagramme HR
et de la localisation des zones convectives.\index{des}\index{dessin}
  \begin{itemize}
  \item {\sf des\_r}: les dessins sont effectués en fonction du rayon,
{\it Très robuste, usage conseillé.}\index{des\_r}
  \item {\sf des\_m}: les dessins sont effectués en fonction de la masse.
{\bf Option standard}, {\it très robuste, usage conseillé.}\index{des\_m}

 \item {\sf no\_des}: évite de faire le dessin.
 {\it Très robuste, usage conseillé.}\index{no\_des}

\PB{Les routines de cette section utilisent le logiciel
{\sc pgplot} s'il n'est pas disponible, utiliser {\sf no\_des}.
Pour ne pas compiler {\sf des\_r} et {\sf des\_m}, il convient aussi
d'enlever les noms de ces deux routines de la liste de compilation.}
  \end{itemize}\index{PGPLOT}
\end{enumerate}

\section{Exemples de programmes}\index{exemples de programmes}
\subsection{Programme pour un calcul d'évolution standard}
\index{exemple d'évolution standard}\label{sec:pstan}

{\sf
\begin{verbatim}
        program star

c       etat_eff : equation d'etat

c       opa_int_zsx : opacites

c       conv_jmj : convection

c       ppcno3a9e : reac. thermo. cycles PPCNO et 3 alpha

c       lim_tau1 : cond. lim. externes atmosphere monocouche

c       hopf : loi t(tau)

c       diffm_0 : diffusion microscopique nulle

c       difft_cte : diffusion turbulente dans ZC et ZR

c       perte_ext : perte de masse

c       ctes : constantes

c       des_m : dessin

        implicit none

        include 'modele.common'

        external etat_eff,opa_int_zsx,conv_jmj,ppcno3a9e,
        1       lim_tau1,hopf,diffm_0,difft_cte,perte_ext,ctes,des_m

        sub_phys(1)='etat_eff,opa_int_zsx,conv_jmj,ppcno3a9e'
        sub_phys(2)='lim_tau1,hopf,diffm_0,difft_cte,perte_ext,ctes,des_m'

        call cesam(etat_eff,opa_int_zsx,conv_jmj,ppcno3a9e,
        1        lim_tau1,hopf,diffm_0,difft_cte,perte_ext,ctes,des_m)

        stop

        end
\end{verbatim}
}

\subsection{Programme avec recherche de  précision}
\index{exemple de recherche de  précision}

{\sf\begin{verbatim}
        program soleil

c       etat_opal : equation d'etat

c       opa_houdek : opacites

c       conv_jmj : convection

c       ppcno9e : reac. thermo. cycles PPCNO

c       lim_atm : cond. lim. externes atmosphere monocouche

c       k5777 : loi t(tau)

c       diffm_mp : diffusion microscopique selom Michaud & Proffit

c       difft_cte : diffusion turbulente constante dans les ZC et ZR

c       perte_ext : perte de masse

c       ctes : constantes

c       des_m : dessin

        implicit none

        include 'modele.common'

        external etat_opal,opa_houdek,conv_jmj,ppcno9e,
        1       lim_atm,k5777,diffm_mp,difft_cte,perte_ext,ctes,des_m

        sub_phys(1)='etat_opal,opa_houdek9,conv_jmj,ppcno9e'
        sub_phys(2)='lim_atm,k5777,diffm_mp,difft_cte,perte_ext,ctes,des_m'

        call cesam(etat_opal,opa_houdek9,conv_jmj,ppcno9e,
        1        lim_atm,k5777,diffm_mp,difft_cte,perte_ext,ctes,des_m)

        stop

        end
\end{verbatim}
}

\subsection{Test d'une routine privée}\index{test d'une routine privée}
Pour tester la routine privée de réactions nucléaires {\sf mes\_reac} on
utilisera le programme:
{\sf\begin{verbatim}
        program essai

c       etat_gong2 : equation d'etat

c       opa_gong : opacites

c       conv_jmj : convection

c       mes_reac : nouvelles reactions

c       lim_tau1 : cond. lim. externes atmosphere monocouche

c       hopf : loi t(tau)

c       diffm_0 : sans diffusion microscopique

c       difft_cte : diffusion turbulente dans les ZC et ZR

c       perte_ext : perte de masse

c       ctes : constantes

c       des_m : dessin

        implicit none

        include 'modele.common'

        external etat_gong2,opa_gong,conv_jmj,mes_reac,
        1       lim_tau1,hopf,diffm_0,difft_cte,perte_ext,ctes,des_m

        sub_phys(1)='etat_gong2,opa_gong,conv_jmj,mes_reac'
        sub_phys(2)='lim_tau1,hopf,diffm_0,difft_cte,perte_ext,ctes,des_m'

        call cesam(etat_gong2,opa_gong,conv_jmj,mes_reac,
        1        lim_tau1,hopf,diffm_0,difft_cte,perte_ext,ctes,des_m)

        stop

        end

c*****************************************************************

        subroutine mes_reac(t,ro,comp,dcomp,jac,deriv,fait,
        1      epsilon,et,ero,ex,hhe,be7e,b8e,n13e,o15e,f17e)

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

        end
\end{verbatim}
}

\noi Les réactions thermonucléaires seront calculées
par la routine privée
{\sf mes\_reac}; pour tester cet algorithme on utilisera, pour
les autres options
physiques les options standards qui permettront d'effectuer
des calculs robustes et rapides.

%\newpage
%\end{document}

\section{Fichier des données}\index{NAMELIST}\label{sec:nlist}
Les paramètres externes \eg longueur de mélange, masse, \etc du modèle
sont introduits par sept NAMELISTs qui doivent être
placées dans un fichier dont le nom est {\bf nécessairement}
\index{fichier mon\_modele.don}
{\sf mon\_modele.don}, étant entendu que le nom générique
des modèles à
calculer est "mon\_modele":
\begin{enumerate}
\item {\tt nl\_espace}: regroupe les paramètres physiques relatifs à
la variable spatiale,\index{NAMELIST nl\_espace}

\item {\tt nl\_temps}: regroupe les paramètres physiques relatifs à
la variable temporelle,\index{NAMELIST nl\_temps}

\item {\tt nl\_chim}: regroupe les paramètres physiques relatifs à
la composition chimique,\index{NAMELIST nl\_chim}

\item {\tt nl\_rot}: regroupe les paramètres physiques relatifs à
la rotation,\index{NAMELIST nl\_rot}

\item {\tt nl\_conv}: regroupe les paramètres physiques relatifs à
la convection,\index{NAMELIST nl\_conv}

\item {\tt nl\_etat}: regroupe les noms des fichiers,
{\em d'accès externe}, éventuellement
nécessaires au calcul de l'\EOS,\index{NAMELIST nl\_etat}

\item {\tt nl\_opa}: regroupe les noms des fichiers, {\em d'accès externe},
éventuellement nécessaires au calcul de l'opacité.
\index{NAMELIST nl\_opa}

\item {\tt nl\_nuc}: regroupe le nom du fichier, {\em d'accès externe},
éventuellement nécessaires à l'interpolation des taux de réactions
thermonucléaires.
\index{NAMELIST nl\_nuc}

\end{enumerate}

\begin{table}
\caption{Valeurs des paramètres numériques suivant les diverses options
de précision prévues. Les valeurs de ces paramètres doivent
être adaptées au type d'évolution requis, pour ce faire il convient
d'intervenir dans la routine {\sf resout} \cf \paragr{sec:paranum}.
Les dénominations peuvent s'interpréter de la fa\c con suivante :
{\tt sp}: super précision, {\tt sr}: super précision eulérien,
{\tt co}: pour modèles de COROT, {\tt lm}: pour petites masses (low mass),
{\tt ds}: pour modèles de $\delta$ scuti, {\tt sa}: pour modèles avec
précision solaire (solar accuracy).
}\label{tab:opt1}
\begin{tt}
\begin{tabular}{cccccccc} \\ \hline
         & sp      & sr      & co      & lm      & ds      & sa       &\\ \hline \\
m\_qs    &2        &1        &2        &2        &2        &2         &\\
m\_ch    &3        &3        &3        &3        &2        &3         &\\
ordre    &2        &2        &2        &2        &2        &2         &\\
precix   &$10^{-4}$&$10^{-3}$&$10^{-4}$&$10^{-4}$&$10^{-4}$&$10^{-5}$ &\\
precit   &0.2      &0.2      &0.2      &1.0      &0.2      &0.1       &\\
ro\_test &0.1      &0.1      &0.1      &0.1      &0.1      &0.1       &\\
psi0     &0.08     &0.08     &0.08     &0.08     &0.09     &0.08      &\\
d\_grav  &0.5      &0.5      &0.5      &0.5      &0.5      &0.5       &\\
loc\_zc  &$10^{-4}$&$10^{-3}$&$10^{-4}$&$10^{-4}$&$10^{-4}$&$10^{-5}$ &\\
dtmax    &200      &200      &200      &300      &100      &200       &\\
dt0      &10       &10       &10       &10       &10       &10        &\\
ini0	 &6        &6        &6        &6        &5        &6         &\\
n\_atm   &3/4      &3/4      &3/4      &3/4      &1/2      &1/1       &\\
kipp     &.false.  &.false.  &.true.   &.true.   &.true.   &.false.   &\\
en\_masse&.true.   &.false.  &.true.   &.true.   &.true.   &.true.    &\\
ctem     &15.      &         &15.      &15.      &15.      &15.       &\\
cter     &         &20.      &         &         &         &          &\\
mvt\_dis &.true.   &.true.   &.false.  &.false.  &.false.  &.true.    &\\ \hline
\end{tabular}
\end{tt}
\end{table}

\begin{table}
\caption{Suite et fin de la \tab{tab:opt1}. Les dénominations peuvent s'interpréter de
la fa\c con suivante :
{\tt hp}: hyper précision, {\tt cp}: pour modèles de cephéides de grande précision,
{\tt c1}: pour modèles de cephéides, {\tt cr}: pour modèles de
cephéides avec les variables eulériennes, {\tt nr}: pour modèles de
précision normale avec les variables eulériennes, {\tt np}: pour modèles de
précision normale.
Avec la précision {\tt hp} et avec une perte de masse alors
{\tt ordre=(2)}.
}\label{tab:opt2}
\begin{tt}
\begin{tabular}{cccccccc} \\ \hline
         & hp       & cp      & c1      & cr      & nr      & np      &\\ \hline \\
m\_qs    &2         &2        &1        &1        &1        &1        &\\
m\_ch    &4         &2        &2        &2        &2        &2        &\\
ordre    &4 (2)     &2        &1        &2        &1        &1        &\\
precix   &$10^{-6}$ &0.0005   &0.005    &0.0005   &0.005    &0.005    &\\
precit   &0.1       &0.3      &1.0      &0.3      &0.2      &0.2      &\\
ro\_test &0.01      &0.001    &0.01     &0.001    &0.1      &0.1      &\\
psi0     &0.09      &0.07     &0.1      &0.07     &0.1      &0.1      &\\
d\_grav  &0.1       &0.5      &2.0      &0.5      &0.5      &0.5      &\\
loc\_zc  &$10^{-6}$ &0.0005   &0.005    &0.0005   &0.005    &0.005    &\\
dtmax    &200       &10       &10       &10       &300      &300      &\\
dt0      &10        &0.05     &0.1      &0.05     &10       &10       &\\
ini0	 &6         &6        &5        &5        &4        &4        &\\
n\_atm   &1/1       &3/4      &1/2      &3/4      &1/3      &1/3      &\\
kipp     &.false.   &.false.  &.true.   &.false.  &.true.   &.true.   &\\
en\_masse&.true.    &.true.   &.true.   &.false.  &.false.  &.true.   &\\
ctem     &15.       &15.      &15.      &         &         &15.      &\\
cter     &          &         &         &15.      &15.      &         &\\
mvt\_dis &.true.    &.false.  &.false.  &.false.  &.false.  &.false.   &\\ \hline
\end{tabular}
\end{tt}
\end{table}

\section{Signification des paramètres des NAMELISTs}\label{sec:nl}

{\sf\begin{verbatim}
 $NL_ESPACE
 MTOT	= 0.9
 MDOT	= 0.0
 DER_NUM	= F
 PRECISION	='lm'
 TAU_MAX	= 10.0
 LIM_RO	= T
 $END
 $NL_TEMPS
 AGEMAX	= 1054.
 DTLIST	= 100000000.0
 X_STOP	= 0.1
 LOG_TEFF	= 10.0
 T_STOP	= 100000000.0
 ARRET	='post'
 $END
 $NL_CHIM
 X0	= 0.7594
 Y0	= 0.24
 ZSX0   = 0.
 GRILLE_FIXE=f
 Z_CTE	= F
 D_TURB=0.
 DIFFUSION	= t
 F_RAD=F
 RE_NU=1.d0
 MITLER=f
 $END
 $NL_ROT
 W_ROT	= 0.0
 ROT_SOLID	= T
 D_MW = 0.d0
 $END
 $NL_CONV
 ALPHA	= 1.7
 CPTURB	= 0.0
 OVSHTS	= 0.0
 OVSHTI	= 0.0
 JPZ	= F
 LEDOUX	= F
 $END
 $NL_ETAT
 F_EOS	='~/CESAM5/SUN_STAR_DATA/eos_190.bin',
 '2                                                 ',
 '3                                                 ',
 '4                                                 ',
 '5                                                 ',
 '6                                                 ',
 '7                                                 ',
 '8                                                 '
 $END
 $NL_OPA
 F_OPA	='~/CESAM5/SUN_STAR_DATA/opa_yveline_etendu.bin',
 '2                                                 ',
 '3                                                 ',
 '4                                                 ',
 '5                                                 ',
 '6                                                 ',
 '7                                                 ',
 '8                                                 '
 $END
 $NL_NUC
 F_NUC   = '~/CESAM5/SUN_STAR\_DATA/nacre12e.data'
 $END
\end{verbatim}}
\noi avec T et F pour .true. et .false. respectivement.


\begin{enumerate}
 \item NAMELIST  {\tt nl\_espace}\index{NAMELIST nl\_espace}

  \begin{itemize}
   \item {\sf mtot=0.9}: masse totale en $M_\odot$,\index{mtot}

   \item{\sf mdot=0}: gain de masse en $M_\odot$ par an,\index{mdot}
   {\sf mdot}$\leq 0$ correspond à une {\bf perte} externe de masse,
   {\sf mdot}$\geq 0$ correspond à un {\bf accroissement} externe de la masse,

   \item{\sf der\_num=f}: calcul du jacobien par dérivées\index{der\_num}
analytiques, {\sf der\_num=t} calcul du jacobien par dérivées
nu\-mé\-ri\-ques; des
dérivées numériques sont nécessaires, par exemple, si les dérivées
des fonctions thermodynamiques ne sont pas {\em numériquement} cohérentes,

   \item {\sf precision='lm'}: niveau de précision requis. {\sc cesam} fixe lui
même ses paramètres numériques, nombre de couches, précision de
l'intégration \etc, suivant le niveau de pré\-ci\-sion re\-quis;
il y a trois\index{precision}
niveaux standards de précision \ie\ {\tt np}, {\tt sp}, {\tt sa},
et des niveaux plus personnalisés pour
des applications spécifiques\footnote{Un calcul exige d'autant plus de
ressources et est d'autant plus capricieux qu'il se veut plus précis.}.
Il est possible de modifier le choix des
paramètres, ou de créer d'autres options en intervenant
dans la routine {\sf resout}.
Les paramètres retenus pour les différentes options
   sont rassemblés dans la \tab{tab:opt1} et la \tab{tab:opt2}.
Les options sont les suivantes:
   \begin{description}
   \item[{\tt np}]: "normale précision", à utiliser pour une évolution
standard,\index{np}

   \item[{\tt sp}]: "super précision", à utiliser si une précision
supérieure est requise, par exemple, pour la calibration de
modèles solaires,\index{sp}

   \item[{\tt sr}]: super précision avec les variables eulériennes,
   \index{sr}

   \item[{\tt ds}]: "précision pour $\delta$ scuti", à utiliser pour une
   l'évolution d'une étoile avec c\oe ur convectif\index{ds}
   sur la séquence principale,

   \item[{\tt cp}]: "précision pour céphéides", à utiliser pour une
   l'évolution avec haute précision d'une étoile au delà de
   la combustion de l'hydrogène,\index{cp}

    \item[{\tt c1}]: "précision réduite pour céphéides",
    plus robuste que {\tt cp},\index{c1}

    \item[{\tt cr}]: "précision pour céphéides" avec variables
    eulériennes,\index{cr}

   \item[{\tt co}]: "précision pour COROT" adapté aux
   modèles d'étoiles {\sl solar like},\index{co}

   \item[{\tt hp}]: "hyper précision" à n'utiliser que de fa\c con
   limitée, la demande en ressources étant importante,\index{hp}


   \item[{\tt sa}]: "solar accuracy", à utiliser, par exemple,
    pour la calibration de
   modèles solaires se voulant très précis. Pour le calcul du modèle
   d'âge {\sf agemax} le nombre de couches est augmenté jusqu'à la valeur
   maximale prévue par le paramètre {\tt pn(=2000)} du common {\tt
   cesam.parametres}.\index{sa}\label{sec:sa}

   \item[{\tt lm}]: "low mass", à utiliser pour l'évolution de
   modèles de masse $M < 1M_\odot$, avec une précision moyenne,\index{lm}

   \end{description}

   \item {\sf tau\_max=10}: profondeur optique Rosseland du fond de
l'atmosphère reconstituée.\index{tau\_max}

   \item  {\sf lim\_ro=t}: la condition limite externe de l'atmosphère
   porte sur la densité et non sur la pression \cf \paragr{sec:rac}.
   \index{lim\_ro}

  \end{itemize}

 \item NAMELIST {\tt nl\_temps}\label{sec:arret}\index{NAMELIST nl\_temps}

  \begin{itemize}
   \item {\sf agemax=1054.}: âge maximal à atteindre en million d'années,
   \index{agemax}
   \item {\sf dtlist=1.d8}: intervalle de temps minimum, en million d'années,
    séparant deux listes détaillées du modèle dans le fichier
    {\sf mon\_modele.lis}  \eg avec {\sf dtlist=1.d8} seuls le modèle initial, le
modèle de ZAMS, le modèle de post main sequence et le modèle d'âge {\sf
agemax}, s'il sont calculés, seront listés.\index{dtlist}

   \item {\sf x\_stop=0.1}: lorsque pour un âge inférieur à {\sf agemax},
   l'abondance centrale en hydrogène
   devient in\-fé\-rieu\-re à $0.1\pm0.01$
    le pas temporel est ajusté de fa\c con à obtenir une valeur
    à l'intérieur de ces limites et le calcul de l'évolution
    est arrêté.\index{x\_stop}
   \item {\sf log\_teff=3.87}: le calcul de l'évolution est arrêté dès
que la \index{log\_teff}
    température effective devient {\em supérieure} à 3.87, en codant
    {\sf log\_teff=-3.87} le calcul de l'évolution est arrêté dès
que la
    température effective devient {\em inférieure} à 3.87,

   \item {\sf t\_stop=5.d7}: le calcul de l'évolution est arrêté dès
que la \index{t\_stop}
    température centrale devient supérieure à 50 000 000K,

    \item{\sf arret='else'}: le calcul s'arrètera dès que l'un des
critères précédents sera satisfait. En codant:\index{else}
    \begin{description}
    \item[{\sf arret='zams'}] le calcul est arrêté dès que le modèle
devient un modèle de séquence principale \ie\ dès que 50\% de l'énergie
est d'origine thermonucléaire,\index{zams}
     \item[{\sf arret='post'}] le calcul est arrêté dès que le modèle
devient un modèle post séquence principale \ie\ dès que $^1$H
a disparu au centre de l'étoile.\index{post}
     \item[{\sf arret='cohe'}] le calcul est arrêté dès que la combustion
     de l'hélium est amorcée au centre ($T_{\rm c}\geq 100MK$),\index{CoHe}
     \item[{\sf arret='coca'}] le calcul est arrêté dès que la combustion
     du carbone est amorcée au centre ($T_{\rm c}\geq 250MK$)\index{CoCa}
    \end{description}
  \end{itemize}
 \item NAMELIST {\tt nl\_chim}\index{NAMELIST nl\_chim}
  \begin{itemize}
   \item {\sf x0=0.7594}: abondance initiale, par unité de masse, de $^1$H,
   \index{x0}
   \item {\sf y0=0.24}: abondance initiale, par unité de masse, de $^4$He,
   \index{y0}
   \item {\sf zsx0=0.}: valeur initiale de Z/X, si {\sf zsx0 $\leq$ 0.}
   l'abondance initiale d'hydrogène est initialisée à
   {\sf x0} sinon, {\sf zsx0 $>$ 0.} l'abondance initiale d'hydrogène
   est déduite de {\sf y0} et {\sf zsx0} et
   la valeur indiquée pour  {\sf x0} est ignorée.
   \index{zsx0}\index{grille\_fixe}
   \item {\sf grille\_fixe=f}: on utilise une grille adaptative pour la
   composition chimique.
   \item {\sf z\_cte=f}: l'abondance initiale en éléments lourds est
{\sf z0=1-x0-y0}. Au cours de l'évolution les variations des éléments qui
composent le "$Z$" \eg Fe, Si, \etc ne sont pas calculées si bien que
la valeur\footnote{$Y$ doit inclure $^3$He et $^4$He.}$Z=1-X-Y$
traduit mal l'incidence des métaux sur l'opacité; pour la détermination
de l'opacité il
semble parfois moins inexact, \eg si les opacités sont connues pour $Z=cte$,
de conserver l'abondance en
éléments lourds constante; par contre, pour l'équation d'état il semble
plus réaliste\index{z\_cte}
de prendre\footnote{On trouve, \tab{tab:tab1}, la valeur adoptée pour $Z$
suivant l'option retenue.} $Z=1-X-Y$ bien que parfois l'\EOS ne soit connue que
pour $Z$ fixée, \eg {\sf etat\_opal}. {\sc cesam} prévoit une alternative: avec
{\sf z\_cte=t}, pour le calcul de l'opacité l'abondance
en éléments lourds utilisée, $Z_\kappa$, prend la valeur initiale
{\sf z0} par contre, avec {\sf z\_cte=f}, on prendra $Z_\kappa=1-X-Y$; avec {\sf
z\_cte=f} et diffusion des dispositions particulières sont prévues
(\cf \tab{tab:tab1})
$Z_\kappa$ ou partie de $Z_\kappa$ est considéré
comme un élément chimique à part
entière pouvant être diffusé, mélangé dans
les zones convectives \etc,
auquel cas $Z_\kappa$ est une des composantes du vecteur
de composition chimique
généralisée et sa valeur, pour le calcul de l'opacité, est
déterminée de fa\c con similaire à celle des autres éléments
chimiques.

NB - Ces dispositions sont devenues caduques avec la disponibilité de tables
d'opacité avec $Z$ variable.

\medskip
\PB{Avec diffusion, il n'est pas prévu d'avoir $Z_\kappa=1-X-Y$,
pour ce faire,
dans la routine de calcul de l'opacité utilisée, cal\-cu\-ler
ex\-pli\-ci\-te\-ment cet\-te
quantité et l'affecter à la variable {\sf z} dans la suite
d'ins\-truc\-tions
"de\-ter\-mi\-na\-tion de X et de Z".}

\medskip
\PB{$Z=1-X-Y$ n'est pas nécessairement une constante
au cours de l'é\-vo\-lu\-tion, si la va\-leur
ini\-tia\-le de $Z$ est voisine de 0, il y a lieu de pren\-dre
des dis\-po\-si\-tions par\-ti\-cu\-liè\-res.}
 \item{\sf d\_turb=0.}: valeur du coefficient de diffusion
 turbulente à utiliser dans la routine de diffusion {\sf difft\_cte}.
 \index{d\_turb}\index{difft\_cte}
 \item{\sf diffusion=f}: on ne tient pas compte des processus de diffusion.
 \index{diffusion}
 \item{\sf f\_rad=.true.}: on tient compte des accélérations radiatives
 dans le calcul des coefficients de diffusion effectués
 avec la routine {\sf diffm\_br}.\index{f\_rad}\index{diffm\_br}
{\sf f\_rad} {\em n'est opérant qu'avec} la routine {\sf diffm\_br}.
\index{re\_nu}\index{mitler}
 \item{\sf re\_nu=1.d0}: paramètre de diffusibilité radiative, 1 étant la
 valeur préconisée par Morel \& Thévenin \cite{mt02},
 \item{\sf mitler = t}: Utilisation de l'écrantage suivant Mitler
 \cite{m77} sinon, écrantage faible.
  \end{itemize}

 \item NAMELIST {\tt nl\_rot}\index{NAMELIST nl\_rot}\index{moment angulaire}
 \index{vitesse angulaire}\index{rotation}
  \begin{itemize}
  \item{\sf w\_rot=0.} période de rotation initiale ou bien en:
  \begin{itemize}
  \item  {\bf jours} \eg {\tt w\_rot=28} pour le soleil actuel,
  \item {\bf radian par seconde} \eg {\tt w\_rot= 2.6d-6} pour le soleil actuel.
\end{itemize}
Une valeur de la période de rotation {\tt w\_rot} $< 1$ jour est donc
considérée comme donnée en radian par seconde, avec cette convention,
{\sf w\_rot=0} correspondant
à une vitesse angulaire nulle \ie\ une période infinie.
On peut modifier ces conventions
en intervenant dans la routine interne {\sf resout} \cf \paragr{sec:resout}.

  \item{\sf rot\_solid=t} on suppose la vitesse angulaire constante
  \ie\ rotation solide\index{rot\_solid}. Dans ce cas $0$ ou $-1$ est
  affecté à l'indice {\tt iw} -- voir ci-dessous.
  Avec {\sf rot\_solid=f} {\bf et} {\sf w\_rot $\geq 0,$} le moment
  angulaire est diffusé; dans la version actuelle de {\sc cesam}, la seule
  possibilité offerte est celle d'un coefficient de diffusion constant pour
  le moment angulaire. Ce coefficient est introduit dans les routines externes
  du type {\sf difft} \cf \paragr{sec:diff}, \paragr{sec:difft}. La vitesse
  angulaire est traitée comme un élément chimique particulier,
  \cf \paragr{sec:vcgen}, d'indice {\tt iw}.\index{iw}
  Alors ou bien:
\begin{itemize}
\item{\sf w\_rot $\geq 0,$} le moment angulaire est conservé point par point
dans les zones radiatives, la variation locale de moment angulaire étant
transformée en énergie interne\footnote{La physique restant
à imaginer, ces options de {\sc cesam} ne peuvent
être totalement banalisées.}.
Dans les zones convectives le moment angulaire est globalement
conservé et il y a rotation solide \cf \tab{tab:tab1} et
\paragr{sec:mntcin}, dans ce cas {\tt iw=-1}.
\item{\sf w\_rot $<0,$} le moment angulaire est globalement conservé,
la vitesse
angulaire, rigide, variant au cours du temps \cf \paragr{sec:mntcin},
dans ce cas {\tt iw=0}.
\item{\sf d\_mw = 0.d0}: taux de variation de vitesse angulaire
$a_{\Omega}$ pour la loi de
Skumanich \cite{sk72}. Typiquement $a_{\Omega}=4.10^{-7}\rm s$.
\index{Skumanich}\index{moment angulaire}
\end{itemize}

\end{itemize}

 \item NAMELIST {\tt nl\_conv}\index{NAMELIST nl\_conv}
  \begin{itemize}\index{ovshti}\index{ovshts}\index{jpz}
   \item {\sf alpha=1.8}: longueur de mélange,\index{alpha}
   \item {\sf cpturb=0.0}: paramètre de pression turbulente nul \ie\ on ne
   tient pas compte de la pression turbulente; on en tient compte avec
    {\tt cpturb > 0}, sa valeur varie avec les auteurs, toutefois,
    {\sf cpturb} $\sim 1$.\index{cpturb}
    Avec une valeur strictement négative {\tt cpturb < 0}, le terme correctif
    de pression turbulente est introduit \cf \paragr{sec:pturb}
    toutefois des difficultés liées à la raideur du problème
    en rendent son utilisation très incertaine \cf \paragr{sec:bug}.
   \item {\sf ovshts, ovshti}: overshooting supérieur et inférieur, en
    échelle de hauteur de pression, avec une limite supérieure
    égale à {\sf ovshts} fois leur rayon,
     pour les noyaux convectifs,
   \item {\sf jpz=t}: on utilise la formulation de Zahn \cite{z91} pour la
    convection pénétrative, le paramètre $\zeta$ est
    alors pris égal à {\sf ovshti}.
   \item {\sf ledoux=f}: utilisation du critère de Schwarzschild  pour
la convection, de celui de Ledoux avec {\sf ledoux=t}.\index{Ledoux}
  \end{itemize}

 \item NAMELIST {\tt nl\_etat}\index{NAMELIST nl\_etat}

  Indique les noms des fichiers, au plus 8, éventuellement
  utilisés pour le calcul de l'\EOS\ tabulée et
  dont le chemin d'accès est
  transmis de fa\c con externe, \eg {\sf etat\_opal}.

\medskip
\PB{Cette instruction est nécessaire, même si la détermination de
l'\EOS\ ne né\-ces\-si\-te pas de table, auquel cas,
cette NAMELIST peut servir à transmettre
des noms de fichiers sans rapport avec l'\EOS.}

\item NAMELIST {\tt nl\_opa}\index{NAMELIST nl\_opa}

  Indique les noms des fichiers, au plus 8, éventuellement
  utilisés pour le calcul de l'\opa\ tabulée et
  dont le chemin d'accès est
  transmis de fa\c con externe, \eg {\sf opa\_yveline}.

\medskip
\PB{Cette instruction est nécessaire, même si
la détermination des \opa\ ne né\-ces\-si\-te pas de
table, auquel cas cette NAMELIST peut servir à transmettre
des noms de fichiers sans rapport avec l'opacité.}

\item NAMELIST {\tt nl\_nuc}\index{NAMELIST nl\_nuc}

  Indique le nom du fichier, éventuellement
  utilisé pour l'interpolation des réactions thermonucléaires
  \eg {\sf ~/SUN\_DATA/nacre12e.data}.

\medskip
\PB{Cette instruction est nécessaire, même si
la détermination des taux des réactions thermonucléaires
ne né\-ces\-si\-te pas de
table, auquel cas cette NAMELIST peut servir à transmettre
des noms de fichiers sans rapport avec les réactions thermonucléaires.}

  \end{enumerate}

 \begin{table}
\caption{Valeurs de $Z_\kappa$ pour l'\opa\ et de la vitesse angulaire
$\Omega$ utilisées suivant les
options retenues.}\label{tab:tab1}
\begin{tabular}{ccc|cc|cc} \\ \hline
{\sf rot\_solid} & {\sf z\_cte} & {\sf diffusion} & Diffusion de $Z$ & $Z_\kappa$ & &
$\Omega$ \\
\hline
{\sf .true.} & {\sf .true.} &  {\sf .true.} & non & $Z_0$ & &$\Omega=\Omega_0$
\\
{\sf .false.} & {\sf .false.} &  {\sf .true.} & oui & $Z_{\rm diff}$ &
&$\Omega=\Omega_{\rm diff}$\\
{\sf .true.} & {\sf .true.} &  {\sf .false.} & non & $Z_0$ &
&$\Omega=\Omega_0$\\
{\sf .false.} & {\sf .false.} &  {\sf .false.} & non & 1-\H1-\He4-\He3 &
&$\Omega=\Omega_{\rm mel}$\ \

 \\ \hline \\
\end{tabular}
\end{table}

\section{Exemples}\index{exemples de fichiers *.don}

\subsection{Etoile de 2$M_\odot$}\label{sec:dstan}
Données pour une évolution d'une étoile de 2$M_\odot$
jusqu'à l'âge de 750 Ma sans recherche de précision:
{\sf\begin{verbatim}
 $NL_ESPACE
 MTOT	= 2.
 MDOT	= 0.0
 DER_NUM	= F
 PRECISION	='np'
 TAU_MAX	= 10.0
 LIM_RO	= T
 $END
 $NL_TEMPS
 AGEMAX	= 750.
 DTLIST	= 100000000.0
 X_STOP	= -1.
 LOG_TEFF	= 10.0
 T_STOP	= 100000000.0
 ARRET	='else'
 $END
 $NL_CHIM
 X0	= 0.71
 Y0	= 0.27
 ZSX0   = 0.
 GRILLE_FIXE= F
 Z_CTE	= F
 D_TURB=0.
 DIFFUSION	= F
 F_RAD=F
  RE_NU=1.d0
 MITLER=F
 $END
 $NL_ROT
 W_ROT	= 0.0
 ROT_SOLID	= T
 D_MW = 0.d0
 $END
 $NL_CONV
 ALPHA	= 1.7
 CPTURB	= 0.0
 OVSHTS	= 0.0
 OVSHTI	= 0.0
 JPZ	= F
 LEDOUX	= F
 $END
 $NL_ETAT
 F_EOS	='../LAOL_EOS/eos_190.bin                   ',
 '2                                                 ',
 '3                                                 ',
 '4                                                 ',
 '5                                                 ',
 '6                                                 ',
 '7                                                 ',
 '8                                                 '
 $END
 $NL_OPA
 F_OPA	='/home/morel/OPACITE/opa_yveline.dat       ',
 '2                                                 ',
 '3                                                 ',
 '4                                                 ',
 '5                                                 ',
 '6                                                 ',
 '7                                                 ',
 '8                                                 '
 $END
 $NL_NUC
 F_NUC   = '~/STAR_DATA/nacre9_gt.data                           '
 $END
\end{verbatim}}

\subsection{Etoile de $1.25M_\odot$}
Données pour une évolution d'une étoile de $1.25M_\odot$
jusqu'à une abondance de
0.1 en hydrogène au centre avec recherche de précision, overshooting du
c\oe ur, perte de masse de $1.10^{-12}M_\odot$ par an, diffusion et
détermination de l'opacité tenant compte des variations en
éléments lourds, on utilise une grille fixe pour la composition chimique:
{\sf\begin{verbatim}
 $NL_ESPACE
 MTOT	= 1.25
 MDOT	= -1.d-12
 DER_NUM	= F
 PRECISION	='sp'
 TAU_MAX	= 10.0
 LIM_RO	= T
 $END
 $NL_TEMPS
 AGEMAX	= 15.d3
 DTLIST	= 100000000.0
 X_STOP	= 0.1
 LOG_TEFF	= 10.0
 T_STOP	= 100000000.0
 ARRET	='else'
 $END
 $NL_CHIM
 X0	= 0.71
 Y0	= 0.27
 ZSX0   = 0.
 GRILLE_FIXE= T
 Z_CTE	= F
 D_TURB=0.
 DIFFUSION	= T
 F_RAD=F
 RE_NU=1.d0
 MITLER=f
 $END
 $NL_ROT
 W_ROT	= 0.0
 ROT_SOLID	= T
 D_MW = 0.d0
 $END
 $NL_CONV
 ALPHA	= 1.7
 CPTURB	= 0.0
 OVSHTS	= 1.5
 OVSHTI	= 0.0
 JPZ	= F
 LEDOUX	= T
 $END
 $NL_ETAT
 F_EOS	='../LAOL_EOS/eos_190.bin                   ',
 '2                                                 ',
 '3                                                 ',
 '4                                                 ',
 '5                                                 ',
 '6                                                 ',
 '7                                                 ',
 '8                                                 '
 $END
 $NL_OPA
 F_OPA	='/home/morel/OPACITE/opa_yveline.dat       ',
 '2                                                 ',
 '3                                                 ',
 '4                                                 ',
 '5                                                 ',
 '6                                                 ',
 '7                                                 ',
 '8                                                 '
 $END
 $NL_NUC
 F_NUC   = '~/SUN_DATA/nacre12e.data                           '
 $END
\end{verbatim}}


\section{Fichiers d'entrées/sorties et de données}\label{sec:es}
Comme précédemment, on utilise le nom générique "{\sf mon\_modele}" pour
identifier les fichiers relatifs au modèle calculé.
\medskip

\PB{L'atmosphère est exclue des fichiers d'initialisation.}

\medskip

\PB{Un fichier dont le nom comporte "\_B" avant l'extension est un fichier
{\bf binaire}.}
 \begin{enumerate}\index{fichier pms.dat}
  \item Fichiers d'entrée:\index{fichiers d'entrée}
   \begin{itemize}
    \item {\sf mon\_modele.don}: fichier ASCII des paramètres
    du modèle à calculer, \cf \paragr{sec:fdon}.
    \index{fichier mon\_modele.don}\label{sec:ASCII}
    \item {\sf m010.zams, m020.zams, m050.zams, 2d-2.pms, 5d-4.pms,
    8d-5.pms}: fichiers ASCII du sous-directory {\sc sun\_star\_data}
     \index{m010.zams}
    \index{m020.zams}\index{m050.zams}\index{2d-2.pms}\index{5d-4.pms}
    \index{8d-5.pms}
    contenant des modèles initiaux de \hZAMS et \PMS pour diverses
    masses et de \PMS pour diverses constantes de contraction.
    Ces fichiers servent à l'initialisation du
    calcul \cf \paragr{sec:in}.
     De tels fichiers ASCII peuvent être obtenus sur l'écran pour
    chaque pas temporel, pour ce faire changer, vers la ligne 653,
    dans la routine {\sf cesam} du sous directory {\sc source}
    la valeur de la variable logique {\tt llist}
    de {\tt llist=.false.} en {\tt llist=.true.}.
    Les fichier ASCII d'initialisation de \PMS permettent d'obtenir
    des modèle homogène proches d`un polytrope totalement
    convectif d'indice 3; il sont utilisables pour toute masse.

     Exemple (fichier {\sf m010.zams}):
    {\scriptsize\tt
\begin{verbatim}
  0.0000000000D+00 6.41078D+04 5.66016D+03 8.75272D-01 7.05717D-01 7.000D-01
  4.6875836546D-12 7.12579D+04 5.78508D+03 8.75256D-01 7.05717D-01 7.000D-01
  9.3751673091D-12 7.84084D+04 5.92484D+03 8.75242D-01 7.05717D-01 7.000D-01
  1.8750001551D-11 9.27109D+04 6.26842D+03 8.75215D-01 7.05717D-01 7.000D-01
  2.8125168861D-11 1.07015D+05 6.76516D+03 8.75191D-01 7.05717D-01 7.000D-01
  3.2812419448D-11 1.14168D+05 7.08807D+03 8.75180D-01 7.05717D-01 7.000D-01

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

\end{verbatim}}
Pour chaque ligne on trouve, {\tt FORMAT(es17.10,4es12.5,es10.3)}:
\[1-M/M_\star,\ P,,\ T,,\ R,,\ L,,\ X.\]

    \item{\sf mon\_modele.ascii}: fichier ASCII pour reprise d'une
    évolution. Exemple:
{\tiny\tt
\begin{verbatim}
  418   12   12    4   -1
 H1  H2 He3 He4 Li7 C12 C13 N14 N15 O16 O17  Ex
 1.327445055196350E+00 2.085520603399631E-01 2.000000000000000E+00 7.000000000000000E-01 2.800000000000000E-01
 0.000000000000000E+00 7.891871487974700E+14 5.124835479201639E+06 0.000000000000000E+00 0.000000000000000E+00
-4.817833341723919E+14 6.999369072038494E-01 1.078656068515044E-17 8.626132182982691E-05 2.799768389912248E-01
 5.631241216526664E-13 3.425311440624477E-03 4.124124070699791E-05 1.059185722985522E-03 4.182296017124328E-06
 9.641394470975912E-03 3.908451654922855E-06 5.824768859567780E-03
 5.664216595332840E-04 7.822307786587146E+14 5.114785868097107E+06 8.871433417789346E-02 4.464972301820737E-03
-4.801207969351468E+14 6.999369072840300E-01 1.080144701986864E-17 8.626124172069982E-05 2.799768389910720E-01
 6.482668882100181E-13 3.425311440623827E-03 4.124124070695796E-05 1.059185722985311E-03 4.182296017123762E-06
 9.641394470974006E-03 3.908451654922081E-06 5.824768859566627E-03
 1.601610711155896E-03 7.753044713540025E+14 5.104698342053870E+06 1.256340326138659E-01 1.259699082081043E-02
-4.784484456764199E+14 6.999369073632549E-01 1.081644735417698E-17 8.626116256836154E-05 2.799768389909071E-01
 7.446708024296804E-13 3.425311440623188E-03 4.124124070691969E-05 1.059185722985103E-03 4.182296017123190E-06
 9.641394470972118E-03 3.908451654921318E-06 5.824768859565489E-03
 2.941643492913661E-03 7.684172674832989E+14 5.094591249172359E+06 1.540762311355063E-01 2.308685030688712E-02

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

\end{verbatim}}
Le modèle à poursuivre:
 \begin{description}
 \item[ligne 1]: nombre de couches: 418, nombre d'éléments: 102
 nombre d'éléments chimiques: 12, indice de \He4: 3, indice de la vitesse
 angulaire: -1 ({\tt FORMAT(10i5)};
 \item[ligne 2]: symboles des éléments ({\tt FORMAT(20a4)};
 \item[ligne 3-4]: age(Myr), dt(Myr), mtot($M_\odot$),x0,
  y0, âge du modèle, pas temporel précédent, masse totale,
  abondances initiales par masse d'hydrogène et d'hélium
({\tt FORMAT(5es22.15)};
\item[ligne 5-]: pour chaque couche, en partant du centre,
masse ($M_\odot$), pression, température, rayon($R_\odot$),
luminosité($L_\odot$), énergie graviphique\footnote{$\dsdx Ut+P\dsdx Vt$.}(erg/Myr), composition chimique ({\tt FORMAT(5es22.15)}.
 \end{description}
 Ce fichier est destiné à permettre la poursuite d'une évolution calculée
 par un autre code il n'a donc pas la vocation d'être créé par {\sc cesam}.
 Il est lu dans la routine {\sf cesam} et la plupart des quantités qu'il
 contient sont transmises par le COMMON {\sf ascii.common} \cf
 \paragr{sec:com}. On trouve dans le sous-directory {\sc tests} un
 programme, {\tt reprise\_ascii\_file}, permettant de générer un tel fichier
 en utilisant {\sc cesam}.
    \end{itemize}
   \item Fichiers d'entrée et/ou de sortie:
   chacun de ces fichiers peut servir pour reprendre ou réinitialiser
   une évolution:
    \index{fichiers d'entrée/sortie}
    \begin{itemize}
     \item {\sf mon\_modele\_B.pms}: fichier BINAIRE du modèle initial de
      pré-sequence principale. Il est conseillé de créer et conserver
      un modèle
      initial de \PMS de $1M_\odot$, fichier qui servira par la suite à
      initialiser des \PMS pour toute masse.
      \index{fichier mon\_modele\_B.pms}
     \item {\sf mon\_modele\_B.zams}: fichier BINAIRE du modèle
      de ZAMS non homogène; il est formé au cours d'une évolution \PMS
      dès que 50\% de l'énergie libérée est d'origine thermonucléaire.
      \index{fichier mon\_modele\_B.zams}

\medskip
\PB{Les conditions de formation d'un tel fichier peuvent parfois se trouver
satisfaites lorsque l'évolution est initialisée sur la ZAMS, dans ce cas il
conviendra d'interpréter le sens physique du modèle avec précautions.}

     \item {\sf mon\_modele\_B.hom}: fichier BINAIRE du modèle d'âge 0
      homogène.\index{fichier mon\_modele\_B.hom}
     \item {\sf mon\_modele\_B.rep}: fichier BINAIRE du point de reprise;
     ce fichier contient le dernier modèle calculé, l'avant dernier
     lorsque l'évolution a été poursuivie jusqu'à l'âge {\sf agemax}
     prévu.
     En changeant dans {\sf cesam} la valeur de la variable logique
     {\tt statut}
     de {\tt statut=.false.} en {\tt statut=.true.},
     il est possible de conserver jusqu'à 90
     fichiers de reprise dont les noms seront:

\centerline{{\sf mon\_modele\_10\_B.rep}, {\sf mon\_modele\_11\_B.rep}
... {\sf mon\_modele\_99\_B.rep}}\index{fichier mon\_modele\_B.rep}

     \item {\sf mon\_modele\_B.post}: fichier BINAIRE du modèle au
     début de
      l'évolution post-séquence principale; il est formé au cours
      d'une évolution dès que l'hydrogène a disparu du centre.
      \index{fichier mon\_modele\_B.post}

      \item {\sf mon\_modele\_B.cohe}: fichier BINAIRE du modèle
      au début de
      la combustion de l'helium; il est formé au cours
      d'une évolution dès que la température au centre
      dépasse $10^8$\,K.
      \index{fichier mon\_modele\_B.cohe}

       \item {\sf mon\_modele\_B.coca}: fichier BINAIRE du modèle
       au début de
      la combustion du carbone; il est formé au cours
      d'une évolution dès que la température au centre dépasse
      $2.6\,10^8$\,K.
      \index{fichier mon\_modele\_B.coca}

     \item {\sf mon\_modele\_B.dat}: fichier BINAIRE du modèle formé
     lorsque \index{fichier mon\_modele\_B.dat}
     l'évolution a été poursuivie jusqu'à ce que soit atteint ou bien
     \cf \paragr{sec:arret}:
     \begin{enumerate}
      \item l'âge {\sf agemax} prévu dans le fichier {\sf mon\_modele.don};
      \item la température effective prévue dans le fichier
      {\sf mon\_modele.don};
      \item l'abondance centrale en hydrogène prévue dans le fichier
     { \sf mon\_modele.don};
      \item la ZAMS, la fin de la séquence principale, l'amor\c cage de la
      combustion de l'hélium, du carbone suivant la valeur du
      paramètre d'entrée  {\tt arret}
      ZAMS, POST, COHE, COCA de la NAMELIST {\tt nl\_temps} du fichier de
      données {\sf mon\_modèle.don}.
     \end{enumerate}
    \end{itemize}
   \item Fichiers de sortie:\index{fichiers de sortie}
     \begin{itemize}
      \item {\sf mon\_modele.lis}: fichier ASCII du listing.
       \index{fichier mon\_modele.lis}
      \item {\sf mon\_modele.HR}: fichier ASCII pour le
      tracé d'un diagramme HR,
      de l'évolution des zones convectives et de la composition chimique.
      \index{fichier mon\_modele.HR}
      \item {\sf mon\_modele.osc}: fichier ASCII pour calcul des oscillations
      adiabatiques, non adiabatiques ou encore pour les inversions.
       \index{fichier mon\_modele.osc}\index{oscillations adiabatiques}
       \index{inversions}\index{oscillations non adiabatiques}
      \item {\sf mon\_modele\_B.atm}: fichier BINAIRE de l'atmosphère
       reconstituée correspondant au dernier modèle calculé.
      \index{fichier mon\_modele\_B.atm}
     \end{itemize}
    \item Fichiers de données:\index{fichier de données}
     \begin{itemize}
      \item {\sf f\_eos}: tableau de 8 chaines d'au plus 50 caractères,
      \cf\paragr{sec:modcom},
      pour les noms de fichiers de données pour l'\EOS.\index{fichier f\_eos}
      \item {\sf f\_opa}: tableau de 8 chaines d'au plus 50 caractères,
      \cf\paragr{sec:modcom}, pour des
       fichiers de données pour les \opa.\index{fichier f\_opa}
       \item {\sf f\_nuc}: chaine d'au plus 50 caractères,
        \cf\paragr{sec:modcom}, pour des
       fichiers de données pour les réactions thermonucléaires.
       \index{fichier f\_nuc}
      \item {\sf ppcno***.data}, {\sf nacre***.data}:
      fichiers BINAIREs de réactions
       thermonucléaires crées par le programme {\sf tab\_reac}.
       \index{fichier ppcno***.data}\index{fichier nacre***.data}
       \index{tab\_reac}\index{fichier de réactions nucléaires}
       \item {\sf mon\_modele.TeffL}: fichier ASCII, à placer dans
       l'environnement, permettant de tracer une boîte d'erreur
       de largeur $2\Delta T_{\rm eff}\times 2\Delta L/L_\odot$
       autour du point $T_{\rm eff},\ L/L_\odot$ dans le diagramme HR
       généré par les routines {\sf des\_r} ou {\sf des\_m}. Exemple:
       {\tt\begin{verbatim}
        5777. 50.   Teff, dTeff
        1.    0.1   L, dL
      \end{verbatim}}\index{fichier mon\_modele.TeffL}
      L'extension {\sf .TeffL} est {\em nécessaire}.
     \end{itemize}
    \item FORMATs des fichiers en ASCII:\index{format des fichiers ASCII}
     \begin{itemize} \index{fichier mon\_modele.don}
      \item {\sf mon\_modele.don}: Le format du fichier ASCII des
       paramètres du modèle à calculer est décrit au \paragr{sec:nl}.
      \item {\sf m010.zams, m020.zams, m050.zams, 2d-2.pms, 5d-4.pms,
       8d-5.pms}: Dans ces fichiers
      ASCII de modèles d'initialisation\index{m010.zams}
      \index{m020.zams}\index{m050.zams}\index{2d-2.pms}
      \index{5d-4.pms}\index{8d-5.pms}
       chaque ligne correspond à une couche, on trouve en format libre:
       $1-m/M_\star$, $P$, $T$, $r/R_\odot$, $l/L_\odot$. La première couche
       est la surface, la dernière le centre; lors de la lecture,
       {\sc cesam} détecte le nombre total de couches qu'il contient.
      \item {\sf mon\_modele.lis}: Le fichier ASCII du listing n'a pas la
	vocation\index{fichier mon\_modele.lis}
       d'être relu son format n'est donc pas décrit.

\PB{Dans ce fichier certaines quantités prévues ne sont pas
calculées si les routines qui sont supposées le faire font défaut
\eg le calcul de la dégénerescence avec l'\EOS\ OPAL.}

\item {\sf mon\_modele.HR}: Fichier ASCII pour le tracé d'un
 diagramme HR et des zones convectives.\index{fichier mon\_modele.HR}
 Pour chaque modèle, sur une première ligne est indiqué:
 l'âge en $10^6$ ans, le nombre d'éléments du vecteur de composition
 chimique généralisé, \cf\paragr{sec:vcgen},
 le nombre de limites ZR/ZC et, pour chacune
 d'entre elles, la mention "T" ou "F" s'il s'agit, ou non, du début d'une
 ZC; suivant le nombre de limites une ou plusieurs lignes sont nécessaires
 pour indiquer $\log T_{\rm eff}$, $\log L/L_\odot$, $\log R/R_\odot$ et, pour
 chaque limite, $M_\star/M_\odot$, $(M_\star-m)/M_\odot$, $r/R_\odot$, $r_{\rm ov}/R_\odot$,
 $r_{\rm ov}$ étant le rayon de la limite étendue par overshooting.
 Dans les cas par\-ti\-cu\-liers on utilise les conventions {\em arbitraires}
 suivantes:
       \begin{description}
        \item[-] modèle totalement convectif: 1 (seule) limite "F" placée au
centre ($r/R_\odot=0$),
        \item[-] modèle totalement radiatif: 0 (aucune) limite "F" placée en
-100 ($r/R_\odot=-100$).
       \end{description}
Viennent ensuite les noms de éléments chimiques et leur abondances,
par unité de masse, au centre et à la surface. S'il n'est pas imposé
d'overshoot les valeurs $r_{\rm ov}$ des rayons des limites étendues sont
fixées à $-100$.

 	Exemple:

{\sf\scriptsize\begin{verbatim}
 0.000000000000000D+00 11  1 F
 3.626444D+00 2.279405D+00 1.409565D+00 2.000000D+00 0.000000D+00 2.567810D+01
-1.000000D+02
 H1  6.96708D-01 6.96708D-01
He3  8.94149D-05 8.94149D-05
He4  2.83545D-01 2.83545D-01
C12  3.38588D-03 3.38588D-03
C13  4.07665D-05 4.07665D-05
N14  1.04699D-03 1.04699D-03
N15  4.13415D-06 4.13415D-06
O16  9.53040D-03 9.53040D-03
O17  3.86346D-06 3.86346D-06
Fe56 1.24539D-03 1.24539D-03
 Ex  4.40002D-03 4.40002D-03
 1.010827515149304D-03 11  1 F
 3.630708D+00 2.217612D+00 1.370192D+00 2.000000D+00 0.000000D+00 2.345272D+01
-1.000000D+02
 H1  6.96708D-01 6.96708D-01
He3  8.94149D-05 8.94149D-05
He4  2.83545D-01 2.83545D-01
C12  3.38588D-03 3.38588D-03

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

O17  4.19556D-06 1.95567D-07
Fe56 1.24540D-03 9.35997D-05
 Ex  4.40008D-03 3.31192D-04
 5.878369894837250D+00 11  3 F T F
 3.917085D+00 1.200736D+00 2.896275D-01 2.000000D+00 1.695133D+00 2.300742D-01
-1.000000D+02 6.767105D-09 1.928841D+00-1.000000D+02 2.394701D-09 1.934984D+00
-1.000000D+02
 H1  6.96343D-01 9.81140D-01
He3  1.48941D-05 3.39057D-03
He4  2.83682D-01 1.06574D-04
C12  1.40677D-03 2.81623D-05
C13  4.03647D-04 3.17284D-06
N14  2.96953D-03 5.18858D-06
N15  1.28274D-07 1.59295D-08
O16  9.53005D-03 1.60057D-29
O17  4.43811D-06 1.70106D-29

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

\end{verbatim}}

      \item {\sf mon\_modele.osc}:\index{fichier mon\_modele.osc}
      Fichier ASCII pour le calcul des
       oscillations, les unités sont en c.g.s. Pour son exploitation,
       le fichier {\sf mon\_modele.osc} peut être lu par la routine
        {\sf read\_osc} du sous-directory {\sc source}.
       Ce fichier est créer à l'issue d'une évolution,
       par {\sf cesam} ou par le programme {\sf for037} du
       sous-directory {\sc exploit}, \cf \paragr{sec:prog}.
       Il y a la possibilité de créer soit un fichier pour le calcul des
       oscillations adiabatiques, des inversions ou encore des
       oscillations non adiabatiques. Le fichiers pour les
       oscillations adiabatiques étant inclus dans celui
       des inversions lui
       même inclus dans celui des oscillations non adiabatiques.

       Pour l'exemple ci-dessous -- cas des inversions:
       \begin{itemize}
        \item ligne 1: nom du modèle avec identification du type de
	fichier:
	\begin{enumerate}
	 \item fichier pour oscillations adiabatiques,
	 \item fichier pour inversions,
	 \item fichier pour oscillations non-adiabatiques.
	\end{enumerate}
        \item ligne 2: identification, date du calcul
	\item ligne 3-- 4: Physique utilisée,
        \item ligne 5: nombre et noms des éléments du
        vecteur de composition chimique généralisée
        \cf \paragr{sec:vcgen},
        \item ligne 6: nombre de couches: 504, nombre de constantes: 15,
         nombre de variables: 25, numéro de version: 5, dimension du
         vecteur de composition chimique généralisée: 10,
	 indices de la vitesse
         angulaire: -100, de l'abondance en éléments lourds: -100
	 dans le vecteur de
         composition chi\-mi\-que généralisée (la valeur de -100 indique
         que ces composantes ne sont pas utilisées).
	 Pour le fichier destiné au calcul des inversions le nombre de
	 variables est 25, pour celui destiné au calcul des oscillations
	 non adiabatiques variables est 30.
       \end{itemize}
       Les quantités qui figurent ensuite sont celles à l'issue de
       l'évolution; elles sont écrites en {\bf cgs} avec le format 5es16.9.
       Viennent d'abord 3 lignes o\`u sont regroupés
       des paramètres globaux:
       \begin{itemize}
        \item ligne 7: masse totale $M_\star$,
        rayon $R_\star$, luminosité $L_\star$, abondance
         initiale en éléments lourds $Z$, abondance initiale
	 en hydrogène $X$,
        \item ligne 8: longueur de mélange $\alpha$, premier paramètre
         convection $\varphi$, second paramètre de convection $\xi$,
         abondance en surface de $^1$H, abondance en surface de $^4$He,
        \item ligne 9: $\frac{R^2}P\dsdxx Pr$ au centre,
        $\frac{R^2}\rho\dsdxx \rho r$
         au centre, temps d'évolution en million d'années,
	 rapport du volume de
         l'élément convectif à sa surface, vitesse angulaire initiale.
       \end{itemize}
        Le modèle est ensuite écrit de la surface
        vers le centre, en incluant l'atmosphère, chaque
        couche utilisant un nombre de lignes qui est fonction de
        la dimension du
        vecteur de composition chimique généralisée:
       \begin{itemize}
        \item ligne $n+0$: rayon $r$, logarithme de la masse
	$\ln m/M_\star$ ($-10^{+38}$
        au centre), température  $T$, pression $P$, densité $\rho$,
        \item ligne $n+1$: gradient réel $\nabla$, luminosité $L$,
         opacité Rosseland $\kappa$, énergie thermonucléaire $\epsilon$,
         grand gamma $\Gamma_1$,
        \item ligne $n+2$: gradient adiabatique $\nabla_{ad}$,
        $\delta$, $c_p$,$\mu$ poids moléculaire
         moyen,\index{poids moléculaire moyen}\index{\bv}
         $\frac 1{\Gamma_1} \dsdx{\ln P}{\ln r}-\dsdx{\ln\rho}{\ln r}$,
        \item ligne $n+3$: vitesse angulaire $\Omega,
         \ \dsdx{\ln\kappa}{\ln T},\ \dsdx{\ln\kappa}{\ln\rho},
         \ \dsdx{\epsilon}{\ln T},\ \dsdx{\epsilon}{\ln\rho}$.
        \item ligne $n+4$:
        $\frac{P_{\rm tot}}{P_{\rm gaz}},\ \nabla_{\rm rad}$ puis:\index{inversions}
	 \item pour le fichier destiné aux inversions et au calcul
	 des oscillations non adiabatiques:
	 $\dsdx{\Gamma_1}{\ln P},\ \dsdx{\Gamma_1}{\ln\rho},
	 \ \dsdx{\Gamma_1}{\ln Y}$,
	 \item et seulement pour le fichier destiné au calcul
	 des oscillations non adiabatiques:
	 \index{oscillations non adiabatiques}
	  \item  ligne $n+5$: $(\dsdx P\rho)_{TX},\ (\dsdx PT)_{\rho X},
	  \ (\dsdx PX)_{\rho T},\ (\dsdx u\rho)_{TX},\ (\dsdx uT)_{\rho X}$
	  \item  ligne $n+6$: $(\dsdx PX)_{\rho T},\ (\dsdx u\rho)_{TX},
	  \ (\dsdx uT)_{\rho X},\ (\dsdx uX)_{\rho T},\ u$
	  \item ligne $n+7$: $(\dsdxx P\rho)_{\rho T},\ (\dsdxy P\rho T)_{X},
	  \ (\dsdxx PT)_{\rho X},\ (\dsdxx u\rho)_{\rho T},
	  \ (\dsdxy u\rho T)_{X}$
	 \item ligne $n+8$: $(\dsdxx uT)_{\rho X},\ \dsdx \kappa X,
	 \dsdxx\kappa T,\ \dsdx {\epsilon_\nu}X,\ \dsdx XR$
	 \item ligne $n+9$: $J-B,\ f_{\rm edd}$
	enfin, les valeurs
        des composantes du vecteur de composition chimique généralisée,
        {\em par unité de masse pour les espèces chimiques}.
      \end{itemize}
     \medskip

     \PB{On trouve une identification détaillée, des quantités du fichier
     d'oscillation dans les commentaires de la routine externe {\sf
     read\_osc}.}
\medskip

Exemple:
{\scriptsize\sf\begin{verbatim}
Fichier pour inversions: test.osc
CESAM version 5.0.0.0 lagr colloc 1 2 np no diffus du 15 Avril 2003 (18h16) - P. Morel, OCA
Physique utilisée: etat_eff,opa_yveline,conv_jmj,nacre9
lim_tau1,hopf,diffm_mp,difft_nu,perte_ext,ctes,des_r
 10  H1  He3  He4  C12  C13  N14  N15  O16  O17   Ex
       504        15        25         5        10        -1      -100
 3.978200000000E+33 1.214337243696E+11 6.457105850790E+34 2.000000000000E-02 7.000000000000E-01
 1.800000000000E+00 2.250000000000E+00 6.172839552164E-03 7.000000000000E-01 2.800000000000E-01
-1.000803895163E+02-5.971377485323E+01 2.000000000000E+02 2.222222222222E-01 0.000000000000E+00
 1.214337243696E+11 0.000000000000E+00 8.853843675066E+03 2.272319194075E+03 3.513300303060E-09
 1.874999910333E-01 6.457105850790E+34 7.921967835862E+00 1.200860459063E-04 1.135670541754E+00
 8.407557407342E-02 2.182272944396E+00 1.896100885356E+09 4.960106215595E-01-1.007184144967E+03
 0.000000000000E+00 1.242244738262E+01 1.988661000111E-01 0.000000000000E+00 0.000000000000E+00
 1.000000000000E+00 1.874999911842E-01-5.950757177708E-02 7.295386525448E-02-5.622838496741E-02
 7.000000000000E-01 8.826927693874E-05 2.799117307231E-01 3.425305928023E-03 4.124117433391E-05
 1.059184018361E-03 4.182289286256E-06 9.641378954380E-03 3.908445364768E-06 5.824799190251E-03
 1.214296449684E+11-6.893374759900E-13 9.073161860782E+03 2.538835999785E+03 3.742386450596E-09
 2.585721870273E-01 6.457105850790E+34 1.078339617970E+01 1.757335738270E-04 1.134226576139E+00
 8.180675900981E-02 2.341948048438E+00 2.140500959101E+09 4.976773004335E-01-1.047649479210E+03
 0.000000000000E+00 1.177897736708E+01 2.052012778581E-01 0.000000000000E+00 0.000000000000E+00
 1.000000000000E+00 2.585721900860E-01-3.635170726764E-02 4.878468851900E-02-3.704758721441E-02
 7.000000000000E-01 8.826927693874E-05 2.799117307231E-01 3.425305928023E-03 4.124117433391E-05
 1.059184018361E-03 4.182289286256E-06 9.641378954380E-03 3.908445364768E-06 5.824799190251E-03
 1.214253063080E+11-1.459166121266E-12 9.393457566739E+03 2.836612149649E+03 3.872672804248E-09
 3.753714619177E-01 6.457105850790E+34 1.609670993461E+01 3.134143009563E-04 1.132933459884E+00
 7.937218521937E-02 2.594982448694E+00 2.549351755104E+09 4.998293038369E-01-1.807994684410E+03
 0.000000000000E+00 1.086592042570E+01 2.245687520346E-01 0.000000000000E+00 0.000000000000E+00
 1.000000000000E+00 3.753715936615E-01-9.881947398197E-03 2.125561702971E-02-1.439829991708E-02

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

 2.267589438742E+09-7.136989758727E+00 2.130438684537E+07 1.718114783518E+17 6.447478820885E+01
 3.952783277956E-01 1.833762269910E+33 6.581720029878E-01 5.505244134878E+02 1.658587069386E+00
 3.952783145742E-01 9.966820474527E-01 3.153892291610E+08 4.636873209838E-01-3.780657123809E-07
 0.000000000000E+00-1.335849534739E+00 2.341530040552E-01 8.640614011742E+03 5.841218280498E+02
 1.000000000000E+00 1.254879593537E+00-1.735542418321E-02 2.215595312395E-02-2.220521227781E-02
 6.032552431576E-01 3.787117667829E-06 3.763229612378E-01 4.060973468983E-05 1.117628080613E-05
 6.810721719425E-03 2.844178599294E-07 6.242254443896E-03 1.484140616249E-03 5.828821274027E-03
 1.601800614549E+09-8.176373551288E+00 2.137815444622E+07 1.733205407418E+17 6.481563275549E+01
 3.952566555773E-01 6.736564987673E+32 6.559487507820E-01 5.844842123029E+02 1.658552042605E+00
 3.952566447781E-01 9.967426641888E-01 3.154306770882E+08 4.636872804509E-01-1.886409093798E-07
 0.000000000000E+00-1.335129349329E+00 2.333945317131E-01 9.177834262775E+03 6.201394603752E+02
 1.000000000000E+00 1.292468167488E+00-1.743359642627E-02 2.225706798920E-02-2.230516962498E-02
 6.032552431576E-01 3.787117667829E-06 3.763229612378E-01 4.060973468983E-05 1.117628080613E-05
 6.810721719425E-03 2.844178599294E-07 6.242254443896E-03 1.484140616249E-03 5.828821274027E-03
 0.000000000000E+00-1.000000000000E+38 2.145178409161E+07 1.748348296391E+17 6.515648254870E+01
 3.952349931740E-01 0.000000000000E+00 6.537287042209E-01 6.203564405043E+02 1.658517052618E+00
 3.952349931740E-01 9.968032618155E-01 3.154721080715E+08 4.636872403526E-01 0.000000000000E+00
 0.000000000000E+00-1.334345005924E+00 2.326082620423E-01 9.745036788115E+03 6.581824072877E+02
 1.000000000000E+00 1.320441967749E+00-1.751167730043E-02 2.235807049919E-02-2.240501130979E-02
 6.032552431576E-01 3.787117667829E-06 3.763229612378E-01 4.060973468983E-05 1.117628080613E-05
 6.810721719425E-03 2.844178599294E-07 6.242254443896E-03 1.484140616249E-03 5.828821274027E-03

 \end{verbatim}}
    \end{itemize}
\end{enumerate}

\medskip
\PB{Il faut intervenir dans la routine {\sf cesam} pour écrire soit le poids
moléculaire moyen par particule libre soit le poids
moléculaire moyen par électron libre.}

\medskip
\PB{Les taux d'ionisation sont recalculés par la subroutine {\sf saha} \cf
\paragr{sec:saha}, independemment de l'\EOS\ utilisée. Ils ne sont donc
qu'approximatifs.}

\medskip
\PB{La quantité $A=\frac 1{\Gamma_1}\dsdx{\ln P}{\ln r}-\dsdx{\ln\rho}{\ln r}$
est parfois sujette à de fortes oscillations, voir \paragr{sec:estbv} la fa\c con
dont {\sc cesam} calcule cette quantité.}

\medskip
\PB{Il est fortement conseillé de vérifier dans le
sous-programme {\sf cesam} que les quantités écrites dans le fichier {\sf
mon\_modele.osc} correspondent bien à ce qui est décrit ci-dessus.}

%\newpage

\section{Routines, programmes et procédures d'exploitation}
\label{sec:expl}\index{routines d'exploitation}
\index{programme d'exploitation}\index{procédures d'exploitation}
Les programmes de tabulation de données, comme d'ailleurs les
routines de lecture et d'interpolation sont {\em data dependent}, ils ne peuvent
pas être universels. L'utilisateur désirant utiliser d'autres données que
celles de la version standard de {\sc cesam} devra créer ses propres programmes
ou routines, par exemple en adaptant à ses conditions particulières celles
de la source.\index{dessin}
%\bigskip

\PB{Les programmes de dessin utilisent le logiciel {\sc pgplot},
au cas où ce
logiciel ne serait pas disponible, utiliser l'argument {\sf no\_des}
au lieu de {\tt des\_r} ou {\tt des\_m} dans l'appel à {\sf cesam}.}

\section{Routines}\label{sec:rout}
On trouvera ces routines dans le sous-directory {\sc source}.
\begin{itemize}
 \item {\sf intertot}: reconstitution en position, ou en masse, ou en rayon,
 de la solution. \index{intertot}

 \item {\sf fich\_osc}: constitution d'un fichier de même structure que
{\sf mon\_modele.osc} pour des points intérieurs au modèle, incluant
éventuellement l'atmosphère reconstituée, points définis soit en
 en position, en masse, ou en rayon. L'exécution se déroule
 de fa\c con interactive; les points en masse, $m/M_\star$, ou en rayon,
 $r/R_\star$ que l'on désire introduire, sont lus dans un fichier ASCII dont
 on s'inquiert du nom au cours de l'exécution du programme {\sf for037}
décrit au \paragr{sec:for037}.\index{fich\_osc}

\PB{Dans le sous-programme {\sf fich\_osc} on s'efforce de localiser chaque
limite entre zone convective et zone radiative avec une définition de l'ordre
de quelques $10^{-7}$, et 2 points séparés par une distance de l'ordre du
mètre {\it sic!}, sont disposés de part et d'autre de chaque
limite;
dans les cas o\`u ces limites sont le siège de discontinuités assez
marquées il arrive que des quantités faisant intervenir des valeurs
équivalentes à des dérivées,
dérivée seconde pour la \fbv, de fonctions
discontinues, la composition chimique aux limites \ZRZC soient
déterminées de façon inexploitable; dans le fichier {\sf ***.osc} ainsi
créé, il convient alors de retirer
``à la main'' les points jugés défectueux,\cf\paragr{sec:bug}.}

  \item {\sf read\_osc}: relecture des fichiers du type {\sf
mon\_modele.osc}. \index{read\_osc}
 \end{itemize}

\section{Programmes}\label{sec:prog}
\subsection{Sous-directory {\sc sun\_star\_data}}\label{sec:sprog}
\begin{itemize}
\item {\sf opal\_ascii\_bin}: transformation d'une table ASCII calculée
  avec le package OPAL en une table en binaire pour la routine d'équation
  d'état {\sf etat\_opal}. Fait partie du package {\sf etat\_opal}
  \cf \paragr{sec:pack}.\index{etat\_opal}\index{opal\_ascii\_bin}
 \item {\sf tab\_reac}: tabulation des réactions thermonucléaires.
  \index{tab\_reac}\index{tabulation des réactions nucléaires}
 \item {\sf fmttobin}:\index{fmttobin} permet de transformer en binaire
  la table {\tt opa\_yveline\_ASCII.dat}, utilisée
  par la routine {\sf opa\_yveline}.\index{opa\_yveline}
 \item {\sf fmttob}:\index{fmttob} permet de transformer en binaire
  les tables d'\EOS\ en ASCII {\sf mhd1.tab}...{\sf mhd8.tab} utilisées
  par la routine {\sf etat\_mhd}. Ces tables sont distribuées
  par W. D\"appen\index{etat\_mhd}
  sur le serveur anonyme usc.edu, répertoire
  {\tt pub/astro-physics/mhd-oc-tau/wd-evo} \cf \paragr{sec:mhdk}.
\end{itemize}
\subsection{Sous-directory {\sc tests}}\label{sec:tprog}
 \begin{itemize}
  \item {\sf test\_nuc}: programme pouvant servir de cannevas pour tester
    une routine de réactions nucléaires de type {\sf nuc}
    \cf \paragr{sec:jacob}.\index{test\_nuc}
% \item {\sf des\_full}: dessin, avec possibilité de zoom, des
%   principales variables d'un\index{des\_full}
%   modèle à partir des fichiers BINAIRES {\sf mon\_modele\_B.dat} et
%   {\sf mon\_modele\_B.atm}
  \item {\sf test\_acc\_rad}: programme de test des accélérations
  radiatives,\index{accélérations radiatives}
  \item {\sf test\_atm}: programme de test pour la restitution de
  l'atmosphère,\index{atmosphère}
  \item {\sf test\_burgers}: programme de vérification des coefficients de
  diffusion microscopique selon la théorie de Burgers \cite{b69},\index{burgers}
  \item {\sf test\_cesam}: programme de test pour {\sf cesam},\index{cesam}
  \item {\sf test\_coef\_diff}: programme de vérification des coefficients de
  diffusion, \index{coefficients de diffusion}
  \item {\sf test\_collision}: programme de vérification des coefficients
  de collision,\index{collisions}
  \item {\sf test\_conv}: programme de vérifications des routines de
  convection longueur de mélange,\index{longueur de mélange}
  \item {\sf test\_conv\_cm}: programme de vérifications des routines de
  convection selon Canuto \& Mazitelli \cite{cm91},
  \index{Canuto \& Mazitelli}
  \item {\sf test\_coulomb\_d}: programme de vérifications du logarithme de
  Coulomb,\index{logarithme de Coulomb}
  \item {\sf test\_der\_rotx}: programme de vérifications des opérateurs de
  dérivation,\index{opératuers de dérivation}
  \item {\sf test\_desr}: programme de test des routines {\sf des\_r} et
  {\sf des\_m}\index{des\_r}\index{des\_m}
  \item {\sf test\_difft}: programme de vérification des coefficients de
  diffusion turbulente,\index{diffusion turbulente}
  \item {\sf test\_diffusion}: programme de vérification de la diffusion,
  \index{diffusion}
  \item {\sf test\_etat}: programme de vérification des
  \EOS,\index{equations d'état}
  \item {\sf test\_etat\_opal}: programme de vérification de l'\EOS OPAL,
  \index{OPAL}
  \item {\sf test\_frad}: programme de vérification des forces radiatives,
  \index{forces radiatives}
  \item {\sf test\_grille\_fixe}: programme de vérification pour l'option
  grille\_fixe,\index{grille\_fixe}
  \item {\sf test\_intertot}: programme de test pour la routine
  {\sf intertot}\index{intertot}
  \item {\sf test\_lit\_hr}: programme de vérification de la lecture d'un
  fichier {\sf mon\_modele.HR},\index{fichier .HR}
  \item {\sf test\_opa}: programme de vérification des routines d'\opa,
  \index{opacités}
  \item {\sf test\_osc\_noadia}: programme de vérification des coefficients
  pour les oscillations non adiabatiques,\index{oscillations}
  \item {\sf test\_read\_osc}: programme de vérification de la routine de
  lecture du fichier des oscillations,\index{oscillations}
  \item {\sf test\_rk\_imps}: programme de vérification de la routine
  d'intégration temporelle de la composition chimique, \index{rk\_imps}
  \item {\sf test\_rq\_reac}: programme de vérification de la routine de
  restitution des taux des réactions thermonucléaires,\index{rq\_reac}
  \item {\sf test\_saha}: programme de vérification de la routine de calcul
  des taux d'ionisation,\index{saha}
  \item {\sf test\_tdetau}: programme de test pour les routines de loi
  $T(\tau)$, \index{t\_detau}
  \item {\sf test\_thermo}: programme de test pour la routine {\sf thermo},
  \index{thermo}
  \item {\sf test\_thermo\_atm}: programme de test pour la routine
  {\sf thermo\_atm}.\index{thermo\_atm}
 \end{itemize}

\subsection{Sous-directory {\sc exploit}}\label{sec:eprog}
 \begin{itemize}
%  \item {\sf etat\_tab\_herm}: tabulation de l'équation d'état CEFF pour
%  interpolation hermite 2D.\index{etat\_tab\_herm}
 \item {\sf calib\_zsxpr}: calibration pour modèles solaires: lit les
  fichiers
  {\sf mon\_modele.osc} et {\sf mon\_modele.don}, détermine les nouvelles
  valeurs
  des paramètres solaires en vue de la calibration et reforme
  le nouveau fichier {\sf mon\_modele.don}. {\sf calib}
  ajuste les paramètres libres de fa\c con à ce que le rayon de l'étoile
  \ie\ le rayon au niveau o\`u la température égale la
  température effective, soit égal à $1R_\odot$.\index{calib}
 \item {\sf calib\_vis}: calibration pour modèles solaires: lit les
  fichiers
  {\sf mon\_modele.osc} et {\sf mon\_modele.don}, détermine les nouvelles
  valeurs des paramètres solaires en vue de la calibration et reforme
  le nouveau fichier {\sf mon\_modele.don}. {\sf calib\_vis}
  ajuste les paramètres libres de fa\c con à ce que le rayon observable
  de l'étoile
  \ie\ le rayon au niveau o\`u l'épaisseur optique sur la ligne de visée est
  $\tau_{\rm v}=2/3$ ou $\tau_{\rm v}=1$, soit égal à $1R_\odot$.
  \index{calib\_vis}
 \item {\sf for037}: construction d'un fichier de type {\sf mon\_modele.osc}
  et de nom {\sf mon\_modele\_nnnn.osc}, avec reconstitution de la
  solution en position, masse, ou rayon, pour un
  modèle avec ou sans atmosphère; {\sf nnnn} est le nombre de couches
  du fichier.\index{for037}\label{sec:for037}

  Exemple de fichier de rayons:\index{fichier de rayons}
  {\tt\begin{verbatim}
           1   1.00074282092846
           2   1.00071280564769
           3   1.00068270425525
           4   1.00065236577711
           5   1.00062178411801
           6   1.00059095928822
           7   1.00055989115625
           8   1.00052857909087

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

        2435  2.448944943064284E-003
        2436  2.372408543451675E-003
        2437  2.295878215301406E-003
  \end{verbatim}}

  \medskip
\PB{Les extensions obtenues à l'aide de ce programme sont versatiles, en
particulier la \fbv. Dans la mesure du possible il est
préférable de calculer le modèle destiné à être exploité avec le
nombre de couches désiré, \cf\paragr{sec:bug}, \paragr{sec:sa}.}
 \item {\sf des\_osc}: dessin, avec possibilité de zoom, des principales
   variables d'un modèle à partir d'un fichier du type
  {\sf mon\_modele.osc}.\index{des\_osc}
 \item {\sf des\_abon\_r}: dessine la composition chimique en fonction
  du rayon à partir d'un fichier du type
  {\sf mon\_modele.osc}.\index{des\_abon\_r}
 \item {\sf des\_abon\_m}: dessine la composition chimique en fonction
  de la masse à partir d'un fichier du type
  {\sf mon\_modele.osc}.\index{des\_abon\_m}
 \item {\sf des\_hr}: dessine un diagramme HR à partir de fichiers
  {\sf mon\_modele.HR}.\index{des\_hr}
 \item {\sf des\_double}: dessine les diagramme HR à partir de fichiers
  {\sf mon\_modele.HR} pour une ou plusieurs étoiles.\index{des\_double} à
  partir des fichiers {\sf mon\_modele.HR} et de la connaissance des
  $T_{\rm eff}$ et $L/L_\odot$.
 \item {\sf des\_ZCr}: dessine un diagramme de Kippenhahn pour le rayon
  à partir d'un fichier {\sf mon\_modele.HR}.\index{des\_ZCr}
 \item {\sf des\_ZCm}: dessine un diagramme de Kippenhahn pour la masse
  à partir d'un fichier {\sf mon\_modele.HR}.\index{des\_ZCm}
% \item {\sf lit\_osc}: lecture d'un fichier du type {\sf mon\_modele.osc}.
%  \index{lit\_osc}
 \end{itemize}

\medskip
\PB{Certains des programmes de test et d'exploitation peuvent ne pas avoir
été mis à jour des dernières modifications apportées à la source. Il
convient à l'utilisateur d'effectuer ces mises à jour.}

\section{Procédures}\index{procédures}\label{sec:proc}
 On trouvera ces procédures {\sc unix} dans le sous-directory
 {\sc exploit}.

 \begin{itemize}
  \item {\sf Calib\_pms}: permet de calibrer, en incluant l'évolution
  pré-séquence principale, un modèle solaire sans
   manipulation explicite des fichiers et programmes, puis de former un fichier
   d'oscillation o\`u 3 points intermédiaires sont insérés entre deux
points de la grille:\index{calib\_pms}

   \begin{verbatim}
#* Calib_pms mon_modele
#* script pour calibrer en zsx=.0245 le modele de nom : mon_modele
#* en incluant la pre sequence principale
#* puis d'etendre le modele par le programme for037.f
#* le fichier de donnee mon_modele.don doit etre dans l'environnement
#* le Z/X=0.0245 est defini dans le programme calib.f
#* les modules executables soleil.out calib.out et for037.out
#* doivent se trouver dans l'environnement

#* Auteur: P. Morel, Departement J.D. Cassini, O.C.A.,
Observatoire de Nice

#* on place 1 dans le fichier .tempo
#* on calcule une evolution
#* on calibre on remet 0/1 si calibre oui/non
#* on continue tant qu'il y a 1 dans .tempo

unalias cp
unalias mv
unalias rm

echo 'calibration du modele' $1

rm $1.tempo
rm $1.calib

echo 'creation du fichier' $1'.tempo'
cat << mark > $1.tempo
1
mark

echo 'creation du fichier' $1'.calib'
cat << mark > $1.calib
mark

while (`cat $1.tempo` != 0)	#* tant qu'il n'y a pas 0 dans .tempo

echo 'execution de soleil.out'
soleil.out << mark
3	#modele de PMS
o
soleil_B.pms
2.d-2
$1
n	#dessin
o	#ok?
o	#ok?
1	#fichier .osc
mark

if ( $status != 0 )exit		#* on sort s'il y a eu Pb

calib.out << mark >> $1.calib	#* calibration
$1
mark

end

if ( $status != 0 )exit		#* on sort s'il y a eu Pb

echo 'execution de for037'
for037.out << mark
$1
o
o
o
o
o
3
o
mark

if ( $status != 0 )exit		#* on sort s'il y a eu Pb

rm $1.tempo
rm $1_B.zams
rm $1_B.rep
rm $1_B.pms
rm $1.HR
rm $1.osc
#*
   \end{verbatim}

   \item {\sf Calib\_zams}: permet de calibrer, à partir de la ZAMS
   homogène, un modèle solaire sans
   manipulation explicite des fichiers et programmes, puis de former un fichier
   d'oscillation o\`u 3 points sont insérés entre deux points de la grille,
   avec un point double aux limites de chaque zone convective, éventuellement
   étendue:\index{calib\_zams}

   \begin{verbatim}
#* Calib_zams mon_modele
#* script pour calibrer en zsx=.0245 le modele de nom : mon_modele
#* en partant de la ZAMS
#* le fichier de donnee mon_modele.don doit etre dans l'environnement
#* le Z/X=0.0245 est defini dans le programme calib.f
#* les modules executables soleil.out calib.out et for037.out
#* doivent se trouver dans l'environnement

#* Auteur: P. Morel, Departement J.D. Cassini, O.C.A.,
Observatoire de Nice

#* on place 1 dans le fichier .tempo
#* on calcule une evolution
#* on calibre on remet 0/1 si calibre oui/non
#* on continue tant qu'il y a 1 dans .tempo

unalias cp
unalias mv
unalias rm

echo 'calibration du modele' $1

rm $1.tempo
rm $1.calib

echo 'creation du fichier' $1'.tempo'
cat << mark > $1.tempo
1
mark

echo 'creation du fichier' $1'.calib'
cat << mark > $1.calib
mark

while (`cat $1.tempo` != 0)	#* tant qu'il n'y a pas 0 dans .tempo

echo 'execution de soleil.out'
soleil.out << mark
2	#modele repris
o
$1_B.hom
$1
n	#dessin
o	#pas temporel
1	#fichier .osc
mark

if ( $status != 0 )exit		#* on sort s'il y a eu Pb

calib.out << mark >> $1.calib	#* calibration
$1
mark

end

if ( $status != 0 )exit		#* on sort s'il y a eu Pb

echo 'execution de for037'
for037.out << mark
$1
o
o
o
o
o
3
o
mark

if ( $status != 0 )exit		#* on sort s'il y a eu Pb

rm $1.tempo
rm $1_B.zams
rm $1_B.rep
rm $1_B.pms
rm $1.HR
rm $1.osc
#*
   \end{verbatim}
 \end{itemize}

\section{Calibration d'un modèle solaire}\index{calibration solaire}
On décrit l'utilisation de la procédure {\sf Calib\_zams} qui permet
d'effectuer la
calibration d'un soleil
puis de créer un fichier pour oscillations en incorporant 3 points
intermédiaires entre deux points de la grille.
 En prenant pour nom générique des fichiers {\sf mon\_soleil}, on procède
aux opérations suivantes:
\begin{enumerate}
 \item Créer un fichier de données de nom: {\sf mon\_soleil.don}:
 {\sf\begin{verbatim}
 $NL_ESPACE
 MTOT	= 1.
 MDOT	= 0.0
 DER_NUM	= F
 PRECISION	='sa'
 TAU_MAX	= 10.0
 lim_ro=t
 $END
 $NL_TEMPS
 AGEMAX	= 4520.
 DTLIST	= 100000000.0
 X_STOP	= -1.0
 LOG_TEFF	= 10.0
 T_STOP	= 260000000.0
 ARRET	='else'
 $END
 $NL_CHIM
 X0	= 0.707
 Y0	= 0.275
 ZSX0   = 0.
 GRILLE_FIXE=f
 Z_CTE	= F
 D_TURB=0.
 DIFFUSION	= f
 F_RAD=F
 RE_NU=1.d0
 MITLER=t
 $END
 $NL_ROT
 W_ROT	= 0.0
 ROT_SOLID	= T
 D_MW = 0.d0
 $END
 $NL_CONV
 ALPHA	= 1.7
 CPTURB	= 0.0
 OVSHTS	= 0.0
 OVSHTI	= 0.0
 JPZ	= F
 LEDOUX	= F
 $END
 $NL_ETAT
 F_EOS	='                                          ',
 '2                                                 ',
 '3                                                 ',
 '4                                                 ',
 '5                                                 ',
 '6                                                 ',
 '7                                                 ',
 '8                                                 '
 $END
 $NL_OPA
 F_OPA	='                                          ',
 '2                                                 ',
 '3                                                 ',
 '4                                                 ',
 '5                                                 ',
 '6                                                 ',
 '7                                                 ',
 '8                                                 '
 $END
 $END
 $NL_NUC
 F_NUC   = '~/SUN_DATA/nacre12e.data                           '
 $END
\end{verbatim}}
\noi ce fichier sera modifié au cours du processus de calibration.

 \item Créer le programme d'appel à {\sf cesam} dans un fichier de
  nom libre, par exemple: {\sf soleil.f}:
{\sf\begin{verbatim}

	program soleil

	implicit none

	include 'modele.common'

	external etat_eff,opa_int_zsx,conv_jmj,ppcno9e,
	1	lim_atm,hopf,diffm_mp,difft_cte,perte_ext,ctes,des_r

	sub_phys(1)='etat_eff,opa_int_zsx,conv_jmj,ppcno9e'
	sub_phys(2)='lim_atm,hopf,diffm_mp,difft_cte,perte_ext,ctes,des_r'

	call cesam(etat_eff,opa_int_zsx,conv_jmj,ppcno9e,
	1	lim_atm,hopf,diffm_mp,difft_cte,perte_ext,ctes,des_r)

	stop

	end
\end{verbatim}}

\medskip
\PB{Au cas o\`u le logiciel de dessin {\sf PGPLOT} n'est pas disponible,
utiliser l'ar\-gu\-ment {\sf no\_des}, au lieu de {\sf des\_r}.}

\medskip
\PB{En partant de la ZAMS homogène il faut bien se garder d'utiliser une
rou\-ti\-ne de ré\-ac\-tions nucléaires \eg {\sf ppcno13e}, avec les
abondances cosmiques de $^7$Li et $^7$Be qui sont incompatibles
avec le modèle de \hZAMS.}

\item Former le module exécutable en utilisant la procédure {\sf exe5}:
{\tt exe5 soleil}. En profiter pour construire à partir, ou bien du modèle
d'initialisation du fichier ASCII {\sf m010.zams}, ou bien d'un modèle
en binaire déjà existant,
le modèle \hZAMS: {\sf mon\_soleil\_B.hom} qui
sera utilisé par la suite dans la procédure.
\medskip

\PB{Penser à rendre les procédures exécutables.}

 \item Créer\footnote{Il n'est pas
 nécessaire d'étendre les modèles
 quand on utilise le niveau de précision "sa",\cf \paragr{sec:nl}.}
 le programme d'extension des modèles:
 {\sf for037\_soleil}:
\begin{verbatim}

	program for037_soleil

c	formation du fichier pour le calcul des oscillations
c	fait appel a une routine fich_osc dont
c	les arguments sont les noms des routines utilisees
c	pour le calcul du modele. Ils doivent etre adaptes
c	pour chaque cas en sortie on obtient le fichier
c	pour le calcul des oscillations

c	il y a trois possibilites:
c	1 - insertion d'un nombre fixe de couches entre
c	    deux couches du modele
c	2 - interpolation en masse/Mtot
c	3 - interpolation en rayon/Rsol

c	pour les cas 2 et 3 les points d'interpolation doivent
c	se trouver en real*8 dans un fichier ASCII en
c	valeurs decroissantes i.e. surface-->centre
c	en format libre, pour chaque point : indice, R/Rsol ou M/Mtot
c	lors de l'execution, le programme
c	demande qu'on lui fixe les parametres dont il a besoin
c	en principe, il faut utiliser la physique qui a servi, dans
c	cesam, pour construire le modele

c	Auteur: P. Morel, Departement J.D. Cassini, O.C.A.,
c	Observatoire de Nice
c	CESAM4

	implicit none

	external etat_eff,opa_int_zsx,conv_jmj,ppcno9e,
	1	lim_atm,hopf,ctes
	call fich_osc(etat_eff,opa_int_zsx,conv_jmj,ppcno9e,
	1	lim_atm,hopf,ctes)

	stop

	end
\end{verbatim}

\item former le module exécutable en utilisant la procédure {\sf exe5}:
{\tt exe5 for037\_soleil}.

\item Enfin, lancer la calibration par {\sf Calib\_zams mon\_soleil}. Le
déroulement
de la calibration peut être contrôlé dans le fichier ASCII
{\tt mon\_soleil.calib}.

On obtient un fichier de nom {\sf mon\_soleil\_nnnn.osc}, le nombre
{\sf nnnn} est le nombre total de couches du modèle étendu.
\end{enumerate}

\section{Exemple d'application: un diagramme HR}

Le diagramme HR a été tracé avec le programme {\sf des\_hr} en utilisant
les anciennes opacités LAOL\footnote{non disponibles dans la version
standard.}
qui permettent de dépasser $10^8$K; il ne faut
pas attacher de sens physique aux phases ultimes atteintes o\`u l'hélium
br\^ule
en couches, le cycle du carbone n'étant pas implanté.

\begin{figure}[ht]
%\epsfxsize =10.cm\epsfbox{cesam_hr.ps}
%\includegraphics[width=0.9\textwidth]{cesam_hr.ps}
\includegraphics[width=0.9\textwidth]{cesam_HR.png}
\caption{Diagramme HR. Ces tracés évolutifs pour des étoiles de masses 1,
2, 3, 5, 7, 10 $M\odot$ ont été obtenus par le programme décrit
\paragr{sec:pstan} et \paragr{sec:dstan}. On remarque que les séquences principales
et les branches horizontales sont bien décrites, la faible précision requise
est à l'origine des hésitations observées pour les PMS et les branches des
géantes. Les évolutions ont été poursuivies au delà du début
du cycle 3$\alpha$ bien que les réactions du carbone soient incomplètes, il
ne faut donc pas donner de sens physique aux diagrammes obtenus à partir du
milieu des branches des géantes. Ce diagramme illustre la robustesse du
code qui, avec de grands pas temporels, permet de sauter des parties entières
du tracé, avec la super précision le tracé est plus lisse ainsi qu'il est
illustré \fig{fig:hr4}.
}\label{fig:hr}
\end{figure}

\begin{figure}[b]
%\epsfxsize =10.cm\epsfbox{hr_pub.ps}
\includegraphics[width=0.9\textwidth]{hr_pub.ps}
\caption{Tracés évolutifs pour une étoile de $4M_\odot$
obtenus avec la précision normale (pointillé) et la super précision (trait
plein). On remarquera que les séquences principales sont confondues.
}\label{fig:hr4}
\end{figure}
