\section{La restructuration \dcesam4/5 vers \cesam2k}\index{restructuration}
En vue d'extensions futures,
une restructuration\footnote{Ce paragraphe concerne principalement les
utilisateurs habitués aux versions précédentes de \dcesam.}
de {\sc cesam} est apparue nécessaire. Elle est
articulée autour d'une réécriture du code
en {\tt FORTRAN95} qui permet le regroupement des
routines en {\tt MODULE}s\footnote{Un module est une sorte de
"super {\tt COMMON}". Un des intérêts de cette structure
réside dans le fait que le compilateur vérifie la concordance des types,
({\tt real, integer...}), du nombre, des dimensions des arguments
des listes d'appel des routines entre le programme appelant et la routine
appel\'ee.}.
Elle concerne les points suivants:
\begin{itemize}
 \item dépoussiérage et fiabilisation des algorithmes,
 \item suppression de variables et de routines obsolètes,
 \item amélioration de la lisibilité, en particulier par l'utilisation de
  tableaux à plusieurs dimensions qui, grâce aux {\tt MODULEs}, sont gérés
  de façon plus fiable et surtout plus simple par {\tt FORTRAN95} que par
  {\tt FORTRAN77},
 \item exploitation sous forme ``générique'' des routines de physique, afin
  d'éviter les arborescences d'{\tt EXTERNAL}s et ainsi de faciliter et
  fiabiliser la mise en \oe uvre des extensions et des modifications
  ultérieures,
 \item utilisation de facilités de programmation offertes
  par {\tt FORTRAN95} par exemple: allocation dynamique des tableaux,
  boucles infinies, opérations sur les tableaux, gestion des chaînes
  de caractères, etc...
  \item \cesam2k est un abrégé de \dcesam2000.
  \item introduction des variables d'espace $\ln P,\ \ln T,\ R,\ L,\ M^{\frac13}$
  assurant la possibilité de modèles ayant une luminosité localement négative
  résultant de pertes d'énergie importantes par neutrinos.
\end{itemize}
% De fait, cette restructuration vise principalement
%à faciliter et fiabiliser la maintenance de {\sc cesam}, son mode
%d'exploitation n'étant pas fondamentalement modifié.
On trouvera \paragr{fig:org} un organigramme général du code.
