/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        A T T R A C T E U R   D E   L O R E N Z  :                                                                                 */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*                                                                                   ..O..---.......  .:-...                         */
/*                                                                                  :O.-.......--....   ......                       */
/*                                                                                .:..-.....--........ ........                      */
/*                                                                               --.......-..---::-...  -.....                       */
/*                                                                              .-.....................                              */
/*                                                                             -..........-..-::.--....  .....                       */
/*                                                                            :......-......-.......... .......                      */
/*                                                                           -............-....:-.......-......                      */
/*                                                         ............     ................-....--....   ...                        */
/*                                                     .....:--:-.:.-.--..................---.--......                               */
/*                                                 ...---oOo:O::::::-:-:o-----.......-.-..--..................                       */
/*                                              ....--oOO:oo:o:o:o::-::::::-::o:...-...-...----..-.... .......                       */
/*                                             ...-oOOoOOoO::oo:o-::----------.......--...-...-......  .......                       */
/*                                           ...-::oO%OoO:O:o:-::-::-------.......-.-.---.--.........     .                          */
/*                                          ...-o%%%oOoOoo:o::::-:--.---.........-.-.----...-........                                */
/*                                        ...-::o%%OOOoO:oo::::------.-........-.---------........   ......                          */
/*                                       ...-o%%%%OOOOooooo:-:------........-..-----..-...-........ ........                         */
/*                                       ....:O%%o:oooo:::::::--..............---..-----...........  ......                          */
/*                                     ...:o%O%%o%Ooooo::::----.-..........----..--.---.-.......                                     */
/*                                    ....-o%%OoOOOoOoo:::-o:--........-----.----.-----.........  ....                               */
/*                                     ....:oOoOO:O:o::::oo:-.............---.-.--.--.......... ........                             */
/*                                   ...:O:O%O-%Ooo::-:-oo:......-------.-----.---.-.........   ........                             */
/*                                  ....-oOoOOO-oo:::--oo:.....-....--.--.-.-.--....--......      ....                               */
/*                                   ....-::-:Oo::-:--:oo-.::::---...--.-.-......--.......  ......                                   */
/*                                 ...-o-:o:OO-:-:-.-.:o:-....-----.:-:----.-..-......      .......                                  */
/*                                 ....:oo::::o-:----.-:::................-.........     ..........                                  */
/*                                  .....-ooo-o:-:---..-:::...      ...........        .......                                       */
/*                                 ..-:o-:::::::-:--.....:::::.                     ..........                                       */
/*                                 ...-:o:.-::-..-.........-:::::-:--.       . ..............                                        */
/*                                 .....-o-:---..-...............-.----.---.--...........                                            */
/*                                 ...-oo-.o:---..........    ......................                                                 */
/*                                 .......::.-.-........              .. ......                                                      */
/*                                  ...-::---..-.......                                                                              */
/*                                   .......-.--.....                                                                                */
/*                                    .............                                                                                  */
/*                                       .......                                                                                     */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Author of '$xrk/lorenz.11$K' :                                                                                             */
/*                                                                                                                                   */
/*                    Jean-Francois COLONNA (LACTAMME, 1992??????????).                                                              */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        I N T E R F A C E   ' listG '  :                                                                                           */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        :Debut_listG:                                                                                                              */
/*        :Fin_listG:                                                                                                                */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        D I R E C T I V E S   S P E C I F I Q U E S   D E   C O M P I L A T I O N  :                                               */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
@define   PRAGMA_CL_____MODULE_NON_OPTIMISABLE

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        F I C H I E R S   D ' I N C L U D E S  :                                                                                   */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#include  INCLUDES_BASE

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        D E F I N I T I O N S   D E   B A S E   E T   U N I V E R S E L L E S  :                                                   */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

#if       (         (defined(SYSTEME_APC_LinuxUlmint_GCC))                                                                              \
          ||        (defined(SYSTEME_APC_LinuxRedHat_GCC))                                                                              \
          ||        (defined(SYSTEME_APC_LinuxUbuntu_GCC))                                                                              \
           )
                                        /* Test introduit le 20170126113536 a cause de 'v $xil/defi_K2$vv$DEF 20170126111709'...     */
                                        /*                                                                                           */
                                        /* Cela fut complete le 20180404113035 avec 'SYSTEME_APC_LinuxRedHat_GCC' toujours pour la   */
                                        /* meme raison, c'est-a-dire supprimer le message :                                          */
                                        /*                                                                                           */
                                        /*                  warning: variably modified '...' at file scope [enabled by default]      */
                                        /*                                                                                           */
                                        /* du a la presence de typage '(double)' dans 'dSCAL(...)'.                                  */
                                        /*                                                                                           */
                                        /* Le 20210906080455, 'SYSTEME_APC_LinuxUbuntu_GCC' fut introduit pour les memes raisons     */
                                        /* lors de l'introduction de '$LACT1B'...                                                    */
#    define    NOMBRE_MAXIMAL_DE_PERIODES_DE_LA_SIMULATION                                                                              \
                         idSCAL(GRO1(CENT_MILLE),CINQ_CENT_DOUZE,ADD2(MemorySizeMB,SwapSizeMB))
#Aif      (         (defined(SYSTEME_APC_LinuxUlmint_GCC))                                                                              \
          ||        (defined(SYSTEME_APC_LinuxRedHat_GCC))                                                                              \
          ||        (defined(SYSTEME_APC_LinuxUbuntu_GCC))                                                                              \
           )
#    define    NOMBRE_MAXIMAL_DE_PERIODES_DE_LA_SIMULATION                                                                              \
                         dSCAL(GRO1(CENT_MILLE),CINQ_CENT_DOUZE,ADD2(MemorySizeMB,SwapSizeMB))
#Eif      (         (defined(SYSTEME_APC_LinuxUlmint_GCC))                                                                              \
          ||        (defined(SYSTEME_APC_LinuxRedHat_GCC))                                                                              \
          ||        (defined(SYSTEME_APC_LinuxUbuntu_GCC))                                                                              \
           )

                                        /* Definition du nombre maximal de periodes de la simulation. On pourrait s'etonner de la    */
                                        /* necessite d'une aussi grande valeur pour 'NOMBRE_MAXIMAL_DE_PERIODES_DE_LA_SIMULATION'.   */
                                        /* En fait, elle vient de la definition de 'NOMBRE_MAXIMAL_DE_POINTS_GERABLES' qui utilise   */
                                        /* un 'MIN2(...)' qui reference 'NOMBRE_MAXIMAL_DE_PERIODES_DE_LA_SIMULATION' qui doit donc  */
                                        /* etre grand. Ceci fut introduit le 20070814184221, puis sous cette forme "universelle"     */
                                        /* (independante de '$sHOTE') le 20070814185930...                                           */

#ifdef    NOMBRE_MAXIMAL_DE_PERIODES_DE_LA_SIMULATION
#    define    NOMBRE_MAXIMAL_DE_POINTS_VISUALISABLES                                                                                   \
                         NOMBRE_MAXIMAL_DE_PERIODES_DE_LA_SIMULATION                                                                    \
                                        /* Cette constante est destinee a dimensionner les listes "lineaires" de memorisation des    */ \
                                        /* points a visualiser. Ceci fut introduit le 20070814184757...                              */
#Aifdef   NOMBRE_MAXIMAL_DE_PERIODES_DE_LA_SIMULATION
#Eifdef   NOMBRE_MAXIMAL_DE_PERIODES_DE_LA_SIMULATION

#include  xrk/attractor.11.I"

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*                                                                                    3                                              */
/*        D E F I N I T I O N   D E   L ' E S P A C E   P H Y S I Q U E   D A N S   R     ( D E B U T )  :                           */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Nota :                                                                                                                     */
/*                                                                                                                                   */
/*                    Les extrema des coordonnees {x,y,z}                                                                            */
/*                  ainsi que ceux de leurs differentielles                                                                          */
/*                  {dx,dy,dz} sont fixees un peu arbitrairement                                                                     */
/*                  et sans etre parametrees. Elles ont ete                                                                          */
/*                  obtenues a l'aide du programme 'v $xtc/lorenz.01$c'.                                                             */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   hXmin_ESPACE                                                                                                                  \
                    PARE(-30.0)
#define   hYmin_ESPACE                                                                                                                  \
                    PARE(-30.0)
#define   hZmin_ESPACE                                                                                                                  \
                    PARE(0.0)
                                        /* Definition du "coin" inferieur-gauche-arriere de l'espace physique.                       */

#define   hXmax_ESPACE                                                                                                                  \
                    PARE(30.0)
#define   hYmax_ESPACE                                                                                                                  \
                    PARE(30.0)
#define   hZmax_ESPACE                                                                                                                  \
                    PARE(60.0)
                                        /* Definition du "coin" superieur-droite-avant de l'espace physique.                         */
                                        /*                                                                                           */
                                        /* ATTENTION, il y a eu pendant longtemps :                                                  */
                                        /*                                                                                           */
                                        /*                  #define   hZmax_ESPACE                                                \  */
                                        /*                                      55.0                                                 */
                                        /*                                                                                           */
                                        /* mais etant donne qu'il est plus intelligent de travailler avec un espace cubique (a cause */
                                        /* des rotations tridimensionnelles en particulier), j'ai remplace (le 1993061400) '55' par  */
                                        /* '60' qui correspond a '30-(-30)' (voir 'X' et 'Y').                                       */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*                                                                                    3                                              */
/*        D E F I N I T I O N   D E   L ' E S P A C E   P H Y S I Q U E   D A N S   R     ( D E B U T )  :                           */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#include  xrk/attractor.12.I"

#define   dXmin_ESPACE                                                                                                                  \
                    PARE(-2.4)
#define   dYmin_ESPACE                                                                                                                  \
                    PARE(-5.5)
#define   dZmin_ESPACE                                                                                                                  \
                    PARE(-2.8)
                                        /* Definition des minima des differentielles {dx,dy,dz}.                                     */
#define   dXmax_ESPACE                                                                                                                  \
                    PARE(1.8)
#define   dYmax_ESPACE                                                                                                                  \
                    PARE(3.8)
#define   dZmax_ESPACE                                                                                                                  \
                    PARE(4.8)
                                        /* Definition des maxima des differentielles {dx,dy,dz}.                                     */

#include  xrk/attractor.1D.I"
                                        /* Formules de renormalisation des differentielles dans [0,1] ; elles sont utilisees lorsque */
                                        /* la production d'images en couleurs est demandee (voir 'visualiser_en_RVB').               */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        D E F I N I T I O N   D E S   D I F F E R E N T S   E S P A C E S   E T   D E   L ' E F F E T   D E   B R U M E  :         */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#include  xrk/attractor.13.I"

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        A I D E   A U   C A D R A G E   D E S   I M A G E S  :                                                                     */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#include  xrk/attractor.1C.I"

DONNEES_DE_RECHERCHE_DES_EXTREMA_DES_COORDONNEES_ET_DES_DERIVEES
                                        /* Definition des extrema des coordonnees et des derivees. On notera bien l'absence de       */
                                        /* point-virgule apres 'DONNEES_DE_RECHERCHE_DES_EXTREMA_DES_COORDONNEES_ET_DES_DERIVEES'.   */

#define   EDITER_LES_COORDONNEES_ET_LES_VITESSES                                                                                        \
                    FAUX
DEFV(Local,DEFV(Logical,INIT(editer_les_coordonnees_et_les_vitesses,EDITER_LES_COORDONNEES_ET_LES_VITESSES)));
                                        /* Indique si a chaque pas de temps on doit editer ('VRAI') ou pas ('FAUX') les coordonnees  */
                                        /* et les vitesses de chaque corps...                                                        */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        G E N E R A T I O N   D E S   I M A G E S  :                                                                               */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#include  xrv/champs_5.14.I"

#include  xrk/attractor.1A.I"

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        D E F I N I T I O N S   G E N E R A L E S   R E L A T I V E S   A   L A   V I S U A L I S A T I O N  :                     */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#include  xrk/lorenz.11.I"

#include  xrk/attractor.14.I"

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        F O N C T I O N   D E   M E M O R I S A T I O N   D U   P O I N T   C O U R A N T  :                                       */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#include  xrk/attractor.16.I"

#define   RAYON_DE_VISUALISATION                                                                                                        \
                    FRA6(FRA10(mhXYZlongueur_ESPACE))
DEFV(Local,DEFV(Float,INIT(rayon_de_visualisation,RAYON_DE_VISUALISATION)));
                                        /* Rayon du disque materialisant une iteration. Il fut exprime longtemps sous la             */
                                        /* forme :                                                                                   */
                                        /*                                                                                           */
                                        /*                  GRO4(FRA4(FU))                                                           */
                                        /*                                                                                           */

BFonctionI

DEFV(Local,DEFV(FonctionI,memorisation_1_point_07(AXf,AYf,AZf,AdXf,AdYf,AdZf,numero_de_l_iteration_courante)))
DEFV(Argument,DEFV(Float,AXf));
DEFV(Argument,DEFV(Float,AYf));
DEFV(Argument,DEFV(Float,AZf));
                                        /* Definition de la position {x,y,z} de l'iteration courante.                                */
DEFV(Argument,DEFV(Float,AdXf));
DEFV(Argument,DEFV(Float,AdYf));
DEFV(Argument,DEFV(Float,AdZf));
                                        /* Definition des differentielles {dx,dy,dz} de la position de l'iteration courante.         */
DEFV(Argument,DEFV(Int,numero_de_l_iteration_courante));
                                        /* Numero de l'iteration courante afin d'attenuer eventuellement la luminance des points     */
                                        /* materialisant chaque iteration en fonction de leur numero (les premieres iterations etant */
                                        /* plus sombres, et les dernieres etant plus lumineuses).                                    */
/*-----------------------------------------------------------------------------------------------------------------------------------*/
     Bblock
#include  xrk/attractor.15.I"

     INIT_ERROR;
     /*..............................................................................................................................*/
     MEMORISATION_DU_POINT_COURANT(X_DERIVEE_DANS_01(AdXf)
                                  ,Y_DERIVEE_DANS_01(AdYf)
                                  ,Z_DERIVEE_DANS_01(AdZf)
                                   );
                                        /* Memorisation du point courant en Noir et Blanc ou en Couleurs, mais uniquement s'il est   */
                                        /* visible en fonction des conditions de visualisation...                                    */
     RETU_ERROR;
     Eblock

EFonctionI

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        D E F I N I T I O N   D E   L ' A T T R A C T E U R   D E   L O R E N Z  :                                                 */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Definition :                                                                                                               */
/*                                                                                                                                   */
/*                    Il est classiquement defini par                                                                                */
/*                  le systeme d'equations differentielles :                                                                         */
/*                                                                                                                                   */
/*                                       dx                                                                                          */
/*                                      ---- = -10.x + 10.y                                                                          */
/*                                       dt                                                                                          */
/*                                                                                                                                   */
/*                                       dy                                                                                          */
/*                                      ---- = 28.x - y - x.z                                                                        */
/*                                       dt                                                                                          */
/*                                                                                                                                   */
/*                                       dz       8                                                                                  */
/*                                      ---- = - ---.z + x.y                                                                         */
/*                                       dt       3                                                                                  */
/*                                                                                                                                   */
/*                  ce que l'on peut generaliser en :                                                                                */
/*                                                                                                                                   */
/*                                       dx                                                                                          */
/*                                      ---- = (X .x + X .y + X .z) + (X  .x.y + X  .y.z + X  .z.x) + (X   .x.y.z) = F (x,y,z)       */
/*                                       dt      x      y      z        xy        yz        zx          xyz           x              */
/*                                                                                                                                   */
/*                                       dy                                                                                          */
/*                                      ---- = (Y .x + Y .y + Y .z) + (Y  .x.y + Y  .y.z + Y  .z.x) + (Y   .x.y.z) = F (x,y,z)       */
/*                                       dt      x      y      z        xy        yz        zx          xyz           y              */
/*                                                                                                                                   */
/*                                       dz                                                                                          */
/*                                      ---- = (Z .x + Z .y + Z .z) + (Z  .x.y + Z  .y.z + Z  .z.x) + (Z   .x.y.z) = F (x,y,z)       */
/*                                       dt      x      y      z        xy        yz        zx          xyz           z              */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   __VERSION__PERMETTRE_L_UTILISATION_D_UN_FOND                                                                                  \
                                        /* Afin de permettre la mise en place d'un fond pour chaque image generee (definition        */ \
                                        /* deplacee ici le 20030313145405). D'autre part 'PERMETTRE_L_UTILISATION_D_UN_FOND'         */ \
                                        /* a ete change en '__VERSION__PERMETTRE_L_UTILISATION_D_UN_FOND' le 20030313145928          */ \
                                        /* afin de permettre sa recuperation dans 'v $xcc/cpp$Z _VERSION_'.                          */

#include  xrk/attractor.17.I"

dfTRANSFORMAT_31(liste_NOMBRE_D_ITERATIONS,fichier_NOMBRE_D_ITERATIONS,NOMBRE_D_ITERATIONS_IMPLICITE,NOMBRE_D_ITERATIONS)
                                        /* Definition du fichier des nombres d'iterations.                                           */
#define   sNOMBRE_D_ITERATIONS(numero_de_la_periode)                                                                                    \
                    INTE(sTRANSFORMAT_31(numero_de_la_periode,liste_NOMBRE_D_ITERATIONS))                                               \
                                        /* Formule generale definissant les variations du nombre d'iterations.                       */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        F O N C T I O N S   D E   V I S U A L I S A T I O N   E T   D ' I N T E R P O L A T I O N  :                               */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#include  xrv/particule.31.I"

dfTRANSFORMAT_31(liste_COEFFICIENT_Xx,fichier_COEFFICIENT_Xx,COEFFICIENT_Xx_IMPLICITE,CXx)
dfTRANSFORMAT_31(liste_COEFFICIENT_Xy,fichier_COEFFICIENT_Xy,COEFFICIENT_Xy_IMPLICITE,CXy)
dfTRANSFORMAT_31(liste_COEFFICIENT_Xz,fichier_COEFFICIENT_Xz,COEFFICIENT_Xz_IMPLICITE,CXz)
dfTRANSFORMAT_31(liste_COEFFICIENT_Xxy,fichier_COEFFICIENT_Xxy,COEFFICIENT_Xxy_IMPLICITE,CXxy)
dfTRANSFORMAT_31(liste_COEFFICIENT_Xyz,fichier_COEFFICIENT_Xyz,COEFFICIENT_Xyz_IMPLICITE,CXyz)
dfTRANSFORMAT_31(liste_COEFFICIENT_Xzx,fichier_COEFFICIENT_Xzx,COEFFICIENT_Xzx_IMPLICITE,CXzx)
dfTRANSFORMAT_31(liste_COEFFICIENT_Xxyz,fichier_COEFFICIENT_Xxyz,COEFFICIENT_Xxyz_IMPLICITE,CXxyz)
                                        /* Definition des fichiers des coefficients de la premiere equation differentielle.          */
#define   sCOEFFICIENT_Xx(numero_de_la_periode)                                                                                         \
                    FLOT(sTRANSFORMAT_31(numero_de_la_periode,liste_COEFFICIENT_Xx))
#define   sCOEFFICIENT_Xy(numero_de_la_periode)                                                                                         \
                    FLOT(sTRANSFORMAT_31(numero_de_la_periode,liste_COEFFICIENT_Xy))
#define   sCOEFFICIENT_Xz(numero_de_la_periode)                                                                                         \
                    FLOT(sTRANSFORMAT_31(numero_de_la_periode,liste_COEFFICIENT_Xz))
#define   sCOEFFICIENT_Xxy(numero_de_la_periode)                                                                                        \
                    FLOT(sTRANSFORMAT_31(numero_de_la_periode,liste_COEFFICIENT_Xxy))
#define   sCOEFFICIENT_Xyz(numero_de_la_periode)                                                                                        \
                    FLOT(sTRANSFORMAT_31(numero_de_la_periode,liste_COEFFICIENT_Xyz))
#define   sCOEFFICIENT_Xzx(numero_de_la_periode)                                                                                        \
                    FLOT(sTRANSFORMAT_31(numero_de_la_periode,liste_COEFFICIENT_Xzx))
#define   sCOEFFICIENT_Xxyz(numero_de_la_periode)                                                                                       \
                    FLOT(sTRANSFORMAT_31(numero_de_la_periode,liste_COEFFICIENT_Xxyz))
                                        /* Formule generale definissant les variations des coefficients de la premiere equation.     */
dfTRANSFORMAT_31(liste_COEFFICIENT_Yx,fichier_COEFFICIENT_Yx,COEFFICIENT_Yx_IMPLICITE,CYx)
dfTRANSFORMAT_31(liste_COEFFICIENT_Yy,fichier_COEFFICIENT_Yy,COEFFICIENT_Yy_IMPLICITE,CYy)
dfTRANSFORMAT_31(liste_COEFFICIENT_Yz,fichier_COEFFICIENT_Yz,COEFFICIENT_Yz_IMPLICITE,CYz)
dfTRANSFORMAT_31(liste_COEFFICIENT_Yxy,fichier_COEFFICIENT_Yxy,COEFFICIENT_Yxy_IMPLICITE,CYxy)
dfTRANSFORMAT_31(liste_COEFFICIENT_Yyz,fichier_COEFFICIENT_Yyz,COEFFICIENT_Yyz_IMPLICITE,CYyz)
dfTRANSFORMAT_31(liste_COEFFICIENT_Yzx,fichier_COEFFICIENT_Yzx,COEFFICIENT_Yzx_IMPLICITE,CYzx)
dfTRANSFORMAT_31(liste_COEFFICIENT_Yxyz,fichier_COEFFICIENT_Yxyz,COEFFICIENT_Yxyz_IMPLICITE,CYxyz)
                                        /* Definition des fichiers des coefficients de la deuxieme equation differentielle.          */
#define   sCOEFFICIENT_Yx(numero_de_la_periode)                                                                                         \
                    FLOT(sTRANSFORMAT_31(numero_de_la_periode,liste_COEFFICIENT_Yx))
#define   sCOEFFICIENT_Yy(numero_de_la_periode)                                                                                         \
                    FLOT(sTRANSFORMAT_31(numero_de_la_periode,liste_COEFFICIENT_Yy))
#define   sCOEFFICIENT_Yz(numero_de_la_periode)                                                                                         \
                    FLOT(sTRANSFORMAT_31(numero_de_la_periode,liste_COEFFICIENT_Yz))
#define   sCOEFFICIENT_Yxy(numero_de_la_periode)                                                                                        \
                    FLOT(sTRANSFORMAT_31(numero_de_la_periode,liste_COEFFICIENT_Yxy))
#define   sCOEFFICIENT_Yyz(numero_de_la_periode)                                                                                        \
                    FLOT(sTRANSFORMAT_31(numero_de_la_periode,liste_COEFFICIENT_Yyz))
#define   sCOEFFICIENT_Yzx(numero_de_la_periode)                                                                                        \
                    FLOT(sTRANSFORMAT_31(numero_de_la_periode,liste_COEFFICIENT_Yzx))
#define   sCOEFFICIENT_Yxyz(numero_de_la_periode)                                                                                       \
                    FLOT(sTRANSFORMAT_31(numero_de_la_periode,liste_COEFFICIENT_Yxyz))
                                        /* Formule generale definissant les variations des coefficients de la deuxieme equation.     */
dfTRANSFORMAT_31(liste_COEFFICIENT_Zx,fichier_COEFFICIENT_Zx,COEFFICIENT_Zx_IMPLICITE,CZx)
dfTRANSFORMAT_31(liste_COEFFICIENT_Zy,fichier_COEFFICIENT_Zy,COEFFICIENT_Zy_IMPLICITE,CZy)
dfTRANSFORMAT_31(liste_COEFFICIENT_Zz,fichier_COEFFICIENT_Zz,COEFFICIENT_Zz_IMPLICITE,CZz)
dfTRANSFORMAT_31(liste_COEFFICIENT_Zxy,fichier_COEFFICIENT_Zxy,COEFFICIENT_Zxy_IMPLICITE,CZxy)
dfTRANSFORMAT_31(liste_COEFFICIENT_Zyz,fichier_COEFFICIENT_Zyz,COEFFICIENT_Zyz_IMPLICITE,CZyz)
dfTRANSFORMAT_31(liste_COEFFICIENT_Zzx,fichier_COEFFICIENT_Zzx,COEFFICIENT_Zzx_IMPLICITE,CZzx)
dfTRANSFORMAT_31(liste_COEFFICIENT_Zxyz,fichier_COEFFICIENT_Zxyz,COEFFICIENT_Zxyz_IMPLICITE,CZxyz)
                                        /* Definition des fichiers des coefficients de la troisieme equation differentielle.         */
#define   sCOEFFICIENT_Zx(numero_de_la_periode)                                                                                         \
                    FLOT(sTRANSFORMAT_31(numero_de_la_periode,liste_COEFFICIENT_Zx))
#define   sCOEFFICIENT_Zy(numero_de_la_periode)                                                                                         \
                    FLOT(sTRANSFORMAT_31(numero_de_la_periode,liste_COEFFICIENT_Zy))
#define   sCOEFFICIENT_Zz(numero_de_la_periode)                                                                                         \
                    FLOT(sTRANSFORMAT_31(numero_de_la_periode,liste_COEFFICIENT_Zz))
#define   sCOEFFICIENT_Zxy(numero_de_la_periode)                                                                                        \
                    FLOT(sTRANSFORMAT_31(numero_de_la_periode,liste_COEFFICIENT_Zxy))
#define   sCOEFFICIENT_Zyz(numero_de_la_periode)                                                                                        \
                    FLOT(sTRANSFORMAT_31(numero_de_la_periode,liste_COEFFICIENT_Zyz))
#define   sCOEFFICIENT_Zzx(numero_de_la_periode)                                                                                        \
                    FLOT(sTRANSFORMAT_31(numero_de_la_periode,liste_COEFFICIENT_Zzx))
#define   sCOEFFICIENT_Zxyz(numero_de_la_periode)                                                                                       \
                    FLOT(sTRANSFORMAT_31(numero_de_la_periode,liste_COEFFICIENT_Zxyz))
                                        /* Formule generale definissant les variations des coefficients de la troisieme equation.    */

dfTRANSFORMAT_31(liste_VARIABLE_cx0,fichier_VARIABLE_cx0,VARIABLE_cx0_IMPLICITE,CX0)
dfTRANSFORMAT_31(liste_VARIABLE_cy0,fichier_VARIABLE_cy0,VARIABLE_cy0_IMPLICITE,CY0)
dfTRANSFORMAT_31(liste_VARIABLE_cz0,fichier_VARIABLE_cz0,VARIABLE_cz0_IMPLICITE,CZ0)
                                        /* Definition des fichiers des valeurs initiales des trois variables (x0,y0,z0).             */
#define   sVARIABLE_cx0(numero_de_la_periode)                                                                                           \
                    FLOT(sTRANSFORMAT_31(numero_de_la_periode,liste_VARIABLE_cx0))
#define   sVARIABLE_cy0(numero_de_la_periode)                                                                                           \
                    FLOT(sTRANSFORMAT_31(numero_de_la_periode,liste_VARIABLE_cy0))
#define   sVARIABLE_cz0(numero_de_la_periode)                                                                                           \
                    FLOT(sTRANSFORMAT_31(numero_de_la_periode,liste_VARIABLE_cz0))
                                        /* Formule generale definissant les variations des valeurs initiales des trois variables.    */

dfTRANSFORMAT_31(liste_PAS_DE_TEMPS_dct,fichier_PAS_DE_TEMPS_dct,PAS_DE_TEMPS_dct_IMPLICITE,DCT)
                                        /* Definition du fichier des pas de temps.                                                   */
#define   sPAS_DE_TEMPS_dct(numero_de_la_periode)                                                                                       \
                    FLOT(sTRANSFORMAT_31(numero_de_la_periode,liste_PAS_DE_TEMPS_dct))
                                        /* Formule generale definissant les variations du pas de temps.                              */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        D E F I N I T I O N   D E   L ' I N T E G R A T I O N   D U   S Y S T E M E                                                */
/*        D ' E Q U A T I O N S   D I F F E R E N T I E L L E S  :                                                                   */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#include  xrk/integr.1B.vv.I"

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        D E F I N I T I O N   D E S   I N I T I A L I S A T I O N S  :                                                             */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
                                        /* Jusqu'au 20030313145405, '__VERSION__PERMETTRE_L_UTILISATION_D_UN_FOND' etait defini      */
                                        /* ici, mais cela est contraire aux tests dont il est l'objet dans                           */
                                        /* 'v $xrv/champs_5.12$I __VERSION__PERMETTRE_L_UTILISATION_D_UN_FOND' via                   */
                                        /* 'v $xrk/attractor.17$I champs_5.12', d'ou son deplacement a cette date...                 */

#include  xrk/attractor.18.I"

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        A T T R A C T E U R   D E   L O R E N Z  :                                                                                 */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
BCommande(nombre_d_arguments,arguments)
/*-----------------------------------------------------------------------------------------------------------------------------------*/
     Bblock
     DONNEES_NECESSAIRES_A_L_UTILISATION_D_UN_FOND;
     /*..............................................................................................................................*/
     INITIALISATIONS_GENERALES;
                                        /* Initialisations generales faites au tout debut...                                         */

     iTRANSFORMAT_31(liste_COEFFICIENT_Xx,COEFFICIENT_Xx_IMPLICITE);
     iTRANSFORMAT_31(liste_COEFFICIENT_Xy,COEFFICIENT_Xy_IMPLICITE);
     iTRANSFORMAT_31(liste_COEFFICIENT_Xz,COEFFICIENT_Xz_IMPLICITE);
     iTRANSFORMAT_31(liste_COEFFICIENT_Xxy,COEFFICIENT_Xxy_IMPLICITE);
     iTRANSFORMAT_31(liste_COEFFICIENT_Xyz,COEFFICIENT_Xyz_IMPLICITE);
     iTRANSFORMAT_31(liste_COEFFICIENT_Xzx,COEFFICIENT_Xzx_IMPLICITE);
     iTRANSFORMAT_31(liste_COEFFICIENT_Xxyz,COEFFICIENT_Xxyz_IMPLICITE);
                                        /* Initialisation des coefficients de la premiere equation differentielle.                   */
     iTRANSFORMAT_31(liste_COEFFICIENT_Yx,COEFFICIENT_Yx_IMPLICITE);
     iTRANSFORMAT_31(liste_COEFFICIENT_Yy,COEFFICIENT_Yy_IMPLICITE);
     iTRANSFORMAT_31(liste_COEFFICIENT_Yz,COEFFICIENT_Yz_IMPLICITE);
     iTRANSFORMAT_31(liste_COEFFICIENT_Yxy,COEFFICIENT_Yxy_IMPLICITE);
     iTRANSFORMAT_31(liste_COEFFICIENT_Yyz,COEFFICIENT_Yyz_IMPLICITE);
     iTRANSFORMAT_31(liste_COEFFICIENT_Yzx,COEFFICIENT_Yzx_IMPLICITE);
     iTRANSFORMAT_31(liste_COEFFICIENT_Yxyz,COEFFICIENT_Yxyz_IMPLICITE);
                                        /* Initialisation des coefficients de la deuxieme equation differentielle.                   */
     iTRANSFORMAT_31(liste_COEFFICIENT_Zx,COEFFICIENT_Zx_IMPLICITE);
     iTRANSFORMAT_31(liste_COEFFICIENT_Zy,COEFFICIENT_Zy_IMPLICITE);
     iTRANSFORMAT_31(liste_COEFFICIENT_Zz,COEFFICIENT_Zz_IMPLICITE);
     iTRANSFORMAT_31(liste_COEFFICIENT_Zxy,COEFFICIENT_Zxy_IMPLICITE);
     iTRANSFORMAT_31(liste_COEFFICIENT_Zyz,COEFFICIENT_Zyz_IMPLICITE);
     iTRANSFORMAT_31(liste_COEFFICIENT_Zzx,COEFFICIENT_Zzx_IMPLICITE);
     iTRANSFORMAT_31(liste_COEFFICIENT_Zxyz,COEFFICIENT_Zxyz_IMPLICITE);
                                        /* Initialisation des coefficients de la troisieme equation differentielle.                  */
     iTRANSFORMAT_31(liste_VARIABLE_cx0,VARIABLE_cx0_IMPLICITE);
     iTRANSFORMAT_31(liste_VARIABLE_cy0,VARIABLE_cy0_IMPLICITE);
     iTRANSFORMAT_31(liste_VARIABLE_cz0,VARIABLE_cz0_IMPLICITE);
                                        /* Initialisation des valeurs initiales des trois variables (x0,y0,z0).                      */
     iTRANSFORMAT_31(liste_PAS_DE_TEMPS_dct,PAS_DE_TEMPS_dct_IMPLICITE);
                                        /* Initialisation du pas de temps.                                                           */
     iTRANSFORMAT_31(liste_NOMBRE_D_ITERATIONS,NOMBRE_D_ITERATIONS_IMPLICITE);
                                        /* Initialisation du nombre d'iterations.                                                    */

#include  xrv/champs_5.1A.I"

     GET_ARGUMENTSv(nombre_d_arguments
                   ,BLOC(PROCESS_ARGUMENTS_GEOMETRIQUES;

                         PROCESS_ARGUMENT_FICHIER("COEFFICIENT_Xx="
                                                 ,fichier_COEFFICIENT_Xx
                                                 ,liste_COEFFICIENT_Xx
                                                 ,COEFFICIENT_Xx_IMPLICITE
                                                 ,gTRANSFORMAT_31
                                                  );
                         PROCESS_ARGUMENT_FICHIER("COEFFICIENT_Xy="
                                                 ,fichier_COEFFICIENT_Xy
                                                 ,liste_COEFFICIENT_Xy
                                                 ,COEFFICIENT_Xy_IMPLICITE
                                                 ,gTRANSFORMAT_31
                                                  );
                         PROCESS_ARGUMENT_FICHIER("COEFFICIENT_Xz="
                                                 ,fichier_COEFFICIENT_Xz
                                                 ,liste_COEFFICIENT_Xz
                                                 ,COEFFICIENT_Xz_IMPLICITE
                                                 ,gTRANSFORMAT_31
                                                  );
                         PROCESS_ARGUMENT_FICHIER("COEFFICIENT_Xxy="
                                                 ,fichier_COEFFICIENT_Xxy
                                                 ,liste_COEFFICIENT_Xxy
                                                 ,COEFFICIENT_Xxy_IMPLICITE
                                                 ,gTRANSFORMAT_31
                                                  );
                         PROCESS_ARGUMENT_FICHIER("COEFFICIENT_Xyz="
                                                 ,fichier_COEFFICIENT_Xyz
                                                 ,liste_COEFFICIENT_Xyz
                                                 ,COEFFICIENT_Xyz_IMPLICITE
                                                 ,gTRANSFORMAT_31
                                                  );
                         PROCESS_ARGUMENT_FICHIER("COEFFICIENT_Xzx="
                                                 ,fichier_COEFFICIENT_Xzx
                                                 ,liste_COEFFICIENT_Xzx
                                                 ,COEFFICIENT_Xzx_IMPLICITE
                                                 ,gTRANSFORMAT_31
                                                  );
                         PROCESS_ARGUMENT_FICHIER("COEFFICIENT_Xxyz="
                                                 ,fichier_COEFFICIENT_Xxyz
                                                 ,liste_COEFFICIENT_Xxyz
                                                 ,COEFFICIENT_Xxyz_IMPLICITE
                                                 ,gTRANSFORMAT_31
                                                  );

                         PROCESS_ARGUMENT_FICHIER("COEFFICIENT_Yx="
                                                 ,fichier_COEFFICIENT_Yx
                                                 ,liste_COEFFICIENT_Yx
                                                 ,COEFFICIENT_Yx_IMPLICITE
                                                 ,gTRANSFORMAT_31
                                                  );
                         PROCESS_ARGUMENT_FICHIER("COEFFICIENT_Yy="
                                                 ,fichier_COEFFICIENT_Yy
                                                 ,liste_COEFFICIENT_Yy
                                                 ,COEFFICIENT_Yy_IMPLICITE
                                                 ,gTRANSFORMAT_31
                                                  );
                         PROCESS_ARGUMENT_FICHIER("COEFFICIENT_Yz="
                                                 ,fichier_COEFFICIENT_Yz
                                                 ,liste_COEFFICIENT_Yz
                                                 ,COEFFICIENT_Yz_IMPLICITE
                                                 ,gTRANSFORMAT_31
                                                  );
                         PROCESS_ARGUMENT_FICHIER("COEFFICIENT_Yxy="
                                                 ,fichier_COEFFICIENT_Yxy
                                                 ,liste_COEFFICIENT_Yxy
                                                 ,COEFFICIENT_Yxy_IMPLICITE
                                                 ,gTRANSFORMAT_31
                                                  );
                         PROCESS_ARGUMENT_FICHIER("COEFFICIENT_Yyz="
                                                 ,fichier_COEFFICIENT_Yyz
                                                 ,liste_COEFFICIENT_Yyz
                                                 ,COEFFICIENT_Yyz_IMPLICITE
                                                 ,gTRANSFORMAT_31
                                                  );
                         PROCESS_ARGUMENT_FICHIER("COEFFICIENT_Yzx="
                                                 ,fichier_COEFFICIENT_Yzx
                                                 ,liste_COEFFICIENT_Yzx
                                                 ,COEFFICIENT_Yzx_IMPLICITE
                                                 ,gTRANSFORMAT_31
                                                  );
                         PROCESS_ARGUMENT_FICHIER("COEFFICIENT_Yxyz="
                                                 ,fichier_COEFFICIENT_Yxyz
                                                 ,liste_COEFFICIENT_Yxyz
                                                 ,COEFFICIENT_Yxyz_IMPLICITE
                                                 ,gTRANSFORMAT_31
                                                  );

                         PROCESS_ARGUMENT_FICHIER("COEFFICIENT_Zx="
                                                 ,fichier_COEFFICIENT_Zx
                                                 ,liste_COEFFICIENT_Zx
                                                 ,COEFFICIENT_Zx_IMPLICITE
                                                 ,gTRANSFORMAT_31
                                                  );
                         PROCESS_ARGUMENT_FICHIER("COEFFICIENT_Zy="
                                                 ,fichier_COEFFICIENT_Zy
                                                 ,liste_COEFFICIENT_Zy
                                                 ,COEFFICIENT_Zy_IMPLICITE
                                                 ,gTRANSFORMAT_31
                                                  );
                         PROCESS_ARGUMENT_FICHIER("COEFFICIENT_Zz="
                                                 ,fichier_COEFFICIENT_Zz
                                                 ,liste_COEFFICIENT_Zz
                                                 ,COEFFICIENT_Zz_IMPLICITE
                                                 ,gTRANSFORMAT_31
                                                  );
                         PROCESS_ARGUMENT_FICHIER("COEFFICIENT_Zxy="
                                                 ,fichier_COEFFICIENT_Zxy
                                                 ,liste_COEFFICIENT_Zxy
                                                 ,COEFFICIENT_Zxy_IMPLICITE
                                                 ,gTRANSFORMAT_31
                                                  );
                         PROCESS_ARGUMENT_FICHIER("COEFFICIENT_Zyz="
                                                 ,fichier_COEFFICIENT_Zyz
                                                 ,liste_COEFFICIENT_Zyz
                                                 ,COEFFICIENT_Zyz_IMPLICITE
                                                 ,gTRANSFORMAT_31
                                                  );
                         PROCESS_ARGUMENT_FICHIER("COEFFICIENT_Zzx="
                                                 ,fichier_COEFFICIENT_Zzx
                                                 ,liste_COEFFICIENT_Zzx
                                                 ,COEFFICIENT_Zzx_IMPLICITE
                                                 ,gTRANSFORMAT_31
                                                  );
                         PROCESS_ARGUMENT_FICHIER("COEFFICIENT_Zxyz="
                                                 ,fichier_COEFFICIENT_Zxyz
                                                 ,liste_COEFFICIENT_Zxyz
                                                 ,COEFFICIENT_Zxyz_IMPLICITE
                                                 ,gTRANSFORMAT_31
                                                  );

                         PROCESS_ARGUMENT_FICHIER("VARIABLE_cx0="
                                                 ,fichier_VARIABLE_cx0
                                                 ,liste_VARIABLE_cx0
                                                 ,VARIABLE_cx0_IMPLICITE
                                                 ,gTRANSFORMAT_31
                                                  );
                         PROCESS_ARGUMENT_FICHIER("VARIABLE_cy0="
                                                 ,fichier_VARIABLE_cy0
                                                 ,liste_VARIABLE_cy0
                                                 ,VARIABLE_cy0_IMPLICITE
                                                 ,gTRANSFORMAT_31
                                                  );
                         PROCESS_ARGUMENT_FICHIER("VARIABLE_cz0="
                                                 ,fichier_VARIABLE_cz0
                                                 ,liste_VARIABLE_cz0
                                                 ,VARIABLE_cz0_IMPLICITE
                                                 ,gTRANSFORMAT_31
                                                  );

                         PROCESS_ARGUMENT_FICHIER("PAS_DE_TEMPS_dct="
                                                 ,fichier_PAS_DE_TEMPS_dct
                                                 ,liste_PAS_DE_TEMPS_dct
                                                 ,PAS_DE_TEMPS_dct_IMPLICITE
                                                 ,gTRANSFORMAT_31
                                                  );

                         PROCESS_ARGUMENT_FICHIER("NOMBRE_D_ITERATIONS="
                                                 ,fichier_NOMBRE_D_ITERATIONS
                                                 ,liste_NOMBRE_D_ITERATIONS
                                                 ,NOMBRE_D_ITERATIONS_IMPLICITE
                                                 ,gTRANSFORMAT_31
                                                  );

                         PROCESS_ARGUMENTS_DE_VISUALISATION;

                         PROCESS_ARGUMENTS_DE_VISUALISATION_DES_AXES_DE_COORDONNEES;

                         GET_ARGUMENT_I("n=""iterations=",nombre_d_iterations);

                         GET_ARGUMENT_F("dt=""dct=",dct);

                         GET_ARGUMENT_I("ordre=""methode=""integration=",ordre_de_la_methode_d_integration);
                                        /* Les synonymes de "ordre=", ont ete introduits le 20060608151452...                        */
                         GET_ARGUMENT_L("integration_adaptative=""adaptative=",faire_de_l_integration_adaptative);
                         GET_ARGUMENT_F("sia=""seuil_integration_adaptative="
                                       ,seuil_de_la_distance_lors_de_l_integration_adaptative
                                        );
                         GET_ARGUMENT_F("frdt=""frdct=""facteur_reduction_dt=""facteur_reduction_dct="
                                       ,facteur_de_reduction_du_pas_de_temps
                                        );
                                        /* L'integration adaptative a ete introduite le 20070814120230...                            */

                         GET_ARGUMENT_L("coordonnees_vitesses=",editer_les_coordonnees_et_les_vitesses);
                         )
                    );

#include  xrv/champs_5.19.I"
                                        /* Pour eviter le message :                                                                  */
                                        /*                                                                                           */
                                        /*                  Static function is not referenced.                                       */
                                        /*                                                                                           */
                                        /* sur 'SYSTEME_ES9000_AIX_CC'...                                                            */

#include  xrk/attractor.19.I"
                                        /* Validations et definition de l'espace physique.                                           */

     Komp(numero_de_la_periode_courante_de_la_simulation,nombre_de_periodes_de_la_simulation)
          Bblock
          PARALLELISME(BLOC(RE_INITIALISATION_DE_L_HORLOGE;
                            INITIALISATIONS_RELATIVES_A_CHAQUE_NOUVELLE_IMAGE(numero_de_la_periode_courante);
                                        /* Initialisations necessaires avant le calcul et la generation de chaque nouvelle image.    */

                            EGAL(Xx,sCOEFFICIENT_Xx(numero_de_la_periode_courante));
                            EGAL(Xy,sCOEFFICIENT_Xy(numero_de_la_periode_courante));
                            EGAL(Xz,sCOEFFICIENT_Xz(numero_de_la_periode_courante));
                            EGAL(Xxy,sCOEFFICIENT_Xxy(numero_de_la_periode_courante));
                            EGAL(Xyz,sCOEFFICIENT_Xyz(numero_de_la_periode_courante));
                            EGAL(Xzx,sCOEFFICIENT_Xzx(numero_de_la_periode_courante));
                            EGAL(Xxyz,sCOEFFICIENT_Xxyz(numero_de_la_periode_courante));
                                        /* Calcul des coefficients de la premiere equation differentielle.                           */
                            EGAL(Yx,sCOEFFICIENT_Yx(numero_de_la_periode_courante));
                            EGAL(Yy,sCOEFFICIENT_Yy(numero_de_la_periode_courante));
                            EGAL(Yz,sCOEFFICIENT_Yz(numero_de_la_periode_courante));
                            EGAL(Yxy,sCOEFFICIENT_Yxy(numero_de_la_periode_courante));
                            EGAL(Yyz,sCOEFFICIENT_Yyz(numero_de_la_periode_courante));
                            EGAL(Yzx,sCOEFFICIENT_Yzx(numero_de_la_periode_courante));
                            EGAL(Yxyz,sCOEFFICIENT_Yxyz(numero_de_la_periode_courante));
                                        /* Calcul des coefficients de la deuxieme equation differentielle.                           */
                            EGAL(Zx,sCOEFFICIENT_Zx(numero_de_la_periode_courante));
                            EGAL(Zy,sCOEFFICIENT_Zy(numero_de_la_periode_courante));
                            EGAL(Zz,sCOEFFICIENT_Zz(numero_de_la_periode_courante));
                            EGAL(Zxy,sCOEFFICIENT_Zxy(numero_de_la_periode_courante));
                            EGAL(Zyz,sCOEFFICIENT_Zyz(numero_de_la_periode_courante));
                            EGAL(Zzx,sCOEFFICIENT_Zzx(numero_de_la_periode_courante));
                            EGAL(Zxyz,sCOEFFICIENT_Zxyz(numero_de_la_periode_courante));
                                        /* Calcul des coefficients de la troisieme equation differentielle.                          */
                            EGAL(cx,sVARIABLE_cx0(numero_de_la_periode_courante));
                            EGAL(cy,sVARIABLE_cy0(numero_de_la_periode_courante));
                            EGAL(cz,sVARIABLE_cz0(numero_de_la_periode_courante));
                                        /* Calcul des valeurs initiales des trois variables (x0,y0,z0).                              */

                            EGAL(dcx,FZERO);
                            EGAL(dcy,FZERO);
                            EGAL(dcz,FZERO);
                                        /* Initialisation des differentielles pour la premiere visualisation si celle-ci a lieu      */
                                        /* en couleurs. On notera que 'FZERO' est la valeur la plus "logique"...                     */

                            vTRANSFORMAT_31(nombre_d_iterations
                                           ,sNOMBRE_D_ITERATIONS
                                           ,numero_de_la_periode_courante
                                           ,fichier_NOMBRE_D_ITERATIONS
                                            );
                                        /* Calcul du nombre d'iterations lorsqu'il est variable.                                     */

                            vTRANSFORMAT_31(dct
                                           ,sPAS_DE_TEMPS_dct
                                           ,numero_de_la_periode_courante
                                           ,fichier_PAS_DE_TEMPS_dct
                                            );
                                        /* Calcul du pas de temps.                                                                   */

                            Komp(numero_de_l_iteration_courante,nombre_d_iterations)
                                 Bblock
                                 RECHERCHE_DES_EXTREMA_DES_COORDONNEES_ET_DES_DERIVEES;
                                        /* On notera que cette recherche n'est pas conditionnee par 'editer_les_extrema', car les    */
                                        /* extrema pourraient etre utilises pour la visualisation...                                 */

                                 Test(IFOU(IL_FAUT(visualiser_le_fantome)
                                          ,IFGE(numero_de_l_iteration_courante,PREMIERE_ITERATION_VISUALISEE)
                                           )
                                      )
                                      Bblock
                                      CALS(memorisation_1_point_07(SOUS(cx,Xcentre_ESPACE)
                                                                  ,SOUS(cy,Ycentre_ESPACE)
                                                                  ,SOUS(cz,Zcentre_ESPACE)
                                                                  ,dcx
                                                                  ,dcy
                                                                  ,dcz
                                                                  ,numero_de_l_iteration_courante
                                                                   )
                                           );
                                        /* Memorisation de l'iteration courante...                                                   */

                                      Test(IL_FAUT(editer_les_coordonnees_et_les_vitesses))
                                           Bblock
                                           CAL2(Prin1("temps=%f",temps_courant));
                                           CAL2(Prin3("     coordonnees={%+.17f,%+.17f,%+.17f}"
                                                     ,cx
                                                     ,cy
                                                     ,cz
                                                      )
                                                );
                                           CAL2(Prin3("     vitesse={%+.17f,%+.17f,%+.17f}"
                                                     ,dcx
                                                     ,dcy
                                                     ,dcz
                                                      )
                                                );
                                           CAL2(Prin0("\n"));
                                           Eblock
                                      ATes
                                           Bblock
                                           Eblock
                                      ETes
                                      Eblock
                                 ATes
                                      Bblock
                                      Eblock
                                 ETes

                                 INTEGRATION_ADAPTATIVE_D_UN_SYSTEME_D_EQUATIONS_DIFFERENTIELLES_O1(temps_courant,dct);
                                        /* Integration du systeme d'equations differentielles suivant la methode choisie...          */
                                        /*                                                                                           */
                                        /* Le 20070814120230, 'INTEGRATION_D_UN_SYSTEME_D_EQUATIONS_DIFFERENTIELLES_O1(...)' a ete   */
                                        /* remplace par 'INTEGRATION_ADAPTATIVE_D_UN_SYSTEME_D_EQUATIONS_DIFFERENTIELLES_O1(...)'    */
                                        /* qui est le dispositif d'integration adaptatif...                                          */

                                 INCREMENTATION_DE_L_HORLOGE(dct);
                                        /* Simulation du temps de la simulation...                                                   */
                                 Eblock
                            EKom

                            VISUALISATION_DES_AXES_DE_COORDONNEES;
                                        /* Visualisation si necessaire des trois axes de coordonnees.                                */

                            GENERATION_D_UNE_IMAGE_ET_PASSAGE_A_LA_SUIVANTE(BLOC(VIDE;));
                                        /* Generation de l'image courante...                                                         */
                            )
                      ,BLOC(PASSAGE_A_L_IMAGE_SUIVANTE;)
                      ,numero_de_la_periode_courante
                       );
          Eblock
     EKom

     EDITION_DES_EXTREMA_DES_COORDONNEES_ET_DES_DERIVEES;
                                        /* Edition facultative des extrema des coordonnees et des derivees.                          */

     RETU_Commande;
     Eblock
ECommande



Copyright © Jean-François COLONNA, 2019-2024.
Copyright © CMAP (Centre de Mathématiques APpliquées) UMR CNRS 7641 / École polytechnique, Institut Polytechnique de Paris, 2019-2024.