/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        S U P E R P O S I T I O N   D Y N A M I Q U E   D ' E T A T S                                                              */
/*        P R O P R E S   D E   L ' A T O M E   D ' H Y D R O G E N E  :                                                             */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Exemple de realisation :                                                                                                   */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*                  ................................................................                                                 */
/*                  ................................................................                                                 */
/*                  ................................................................                                                 */
/*                  ..---------...........................................---------.                                                 */
/*                  --------------.....................................-------------                                                 */
/*                  -----------------...............................----------------                                                 */
/*                  -------------------.......-------------.......------------------                                                 */
/*                  --::::::::---------------------:::---------------------::::::::-                                                 */
/*                  ::::::::::::-------------:::::::o:::::::-------------:::::::::::                                                 */
/*                  :::::::::::::----------:::ooooOOOOOoooo:::----------::::::::::::                                                 */
/*                  ::::::::::::::-------:::oooOO%%%%%%OOOooo:::-------:::::::::::::                                                 */
/*                  ::ooooo:::::::-------::ooOO%%%#####%%%OOoo::-------:::::::ooooo:                                                 */
/*                  ooooooooo:::::------:::ooO%%########%%%Ooo::-------:::::oooooooo                                                 */
/*                  oooooooooo::::-------::ooO%%%%%%%%%%%%%Ooo::-------::::ooooooooo                                                 */
/*                  oooooooooo::::--------:ooOOOOOo:-:oOOOOOo::--------::::ooooooooo                                                 */
/*                  ooooooooooo:::---------:oooOo:-. .-:oOoo::---------:::oooooooooo                                                 */
/*                  ooooooooooo:::----....--::ooo::---::ooo::--....----:::oooooooooo                                                 */
/*                  oooooooooooo:::--.......---:::::::::::---......---:::ooooooooooo                                                 */
/*                  oooooooooooo:::---..........---------..........---::oooooooooooo                                                 */
/*                  ooooooooooooo:::--............................---:::oooooooooooo                                                 */
/*                  :ooooooooooooo:::---.........................---:::ooooooooooooo                                                 */
/*                  ::ooooooooooooo::::--.......................--:::oooooooooooooo:                                                 */
/*                  :::oooooooooooooo:::----.................---::::oooooooooooooo::                                                 */
/*                  :::::oooooooooooooo::::-----.........-----::::oooooooooooooo::::                                                 */
/*                  -::::::oooooooooooooo::::::----------:::::::oooooooooooooo:::::-                                                 */
/*                  ----::::::oooooooooooooo::::::::::::::::ooooooooooooooo::::::---                                                 */
/*                  ------::::::::ooooooooooooooooo:::ooooooooooooooooo::::::::-----                                                 */
/*                  ..--------:::::::::ooooooooooooooooooooooooooo:::::::::--------.                                                 */
/*                  ......--------:::::::::::::::::::::::::::::::::::::--------.....                                                 */
/*                  ..........-----------:::::::::::::::::::::::-----------.........                                                 */
/*                  ................---------------------------------...............                                                 */
/*                  ...........................-----------..........................                                                 */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*                                      (A=1,B=1,C=1,D=1,E=1,F=1)                                                                    */
/*                                                (t=0)                                                                              */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*                  ...... ......................................---.-...... .....--                                                 */
/*                  ....... .....------...........-----........--:::::::-........-::                                                 */
/*                  ::--........----::::--:oo-....--oo:-....-::::ooooOOo::-... ..:oo                                                 */
/*                  ooo:-... ..--:--OOo:::o:.:....--OOo:. ...-::ooooO%%%Oo:. ...-oOO                                                 */
/*                  OOOOo:-..--:::--O%Oo:-.......---O%%O:....-::oOooO%##%O:-...-oOOO                                                 */
/*                  %%%%%%Oooooo::-.O%%%Oo:-...----.O%%%%Oo::ooOOo:-O%%###%OOOOO%OOo                                                 */
/*                  O%%%%%%%OOo:--..OO%%OOOoo:::-...oOO%%%%OOOoo:--.:ooO%%%%%%OOo:--                                                 */
/*                  OOO%%OOOo::-....oooooooo::-.....::::ooo:::-.....----::::::--....                                                 */
/*                  ................  ..................   .............. ..........                                                 */
/*                  ..    .....   ..................................................                                                 */
/*                  .......---............................................-:::-.....                                                 */
/*                  ......--.--............. .......-------.........:--...-:.:-.....                                                 */
/*                  ................--..............::::----........oo:-............                                                 */
/*                  ---...........--::::----------..ooooo:--........OOOo:-..........                                                 */
/*                  ::::::-----:::::oOOoooooo::::::-OOOOOOoo::----..O%%OOoo:::---...                                                 */
/*                  OOOOOOOOOOOOOOOOO%%%%%%OOOOOoooo%%%%%%OOOoo:::--O%%%%OOOoo::--..                                                 */
/*                  .......... ................................  ..................                                                  */
/*                  .---...... .................................................. ..                                                 */
/*                  .----.........--......-:o:-................................. ...                                                 */
/*                  .--:--.. ...-:oo......-:.:-...--..........------................                                                 */
/*                  .--:::--..-:oOOO.............-::.........---::::...............-                                                 */
/*                  ..-::oooooOO%%%%...........-:ooO........--::oooo..------...---::                                                 */
/*                  ...--:oOOO%%%%%%....---:::ooOO%%..----:::ooOOOOO-:::::::::oooooo                                                 */
/*                  ....--:ooOOO%%%O..---::ooOOO%%%%--:::oooOO%%%%%%oooooOOOOO%%%%%O                                                 */
/*                  --............-----..... .......----............................                                                 */
/*                  :::-.........-:::::-........-:::-::---........-----...........--                                                 */
/*                  oo:---:O%O:--::oooo:-......-:oOO:::::::o:-...-::---....-:o::-:::                                                 */
/*                  oOo:..:o.o:.-:oOoOOo-... .-:O%%%:ooo::o:.-...:oO---.. .-.:o::ooO                                                 */
/*                  oOOo-.......-oOOoOOOo:-..-oO%##%::ooo:--....:oO%.---.....--:oO%%                                                 */
/*                  :oOOo:-...-:oOOo:oOO%%OOO%%###%%--:ooo:::::oO%%%..--------:oO%%%                                                 */
/*                  --:ooooooooooo:-.-::oOO%%%%%%Ooo..--:ooOOOO%%OOO...--::oooOO%%%O                                                 */
/*                  ....---------........--::::::--- ....--:::oooo::.....--::ooooOoo                                                 */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*                                      (A=1,B=1,C=1,D=1,E=1,F=1)                                                                    */
/*                                          (pour  t E [0,8])                                                                        */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*                  oOOOOO%OOOoOOoOO%%##############                                                                                 */
/*                  oOooOooOOOOoo:oO%###############                                                                                 */
/*                  %OOOOoOOOoo:-:OOOO%############%                %                                                                */
/*                  oOOOOOOOoo-.-oOOooo#############%%%%%%%#      oOoo#      %OO%%%%                                                 */
/*                  OOOOO%OOo-..:o%Oo::%#####%%####%oO%##########-%Oo:o#OOOOOOOOOO%%                                                 */
/*                  %OO%%OOO-..-:O%O:.-%#####%%%%%%%oO%#########.:%O-.:##OOooooooO%%                                                 */
/*                  %%%%O%%%:..-:o#%-.-%%###%%%%%#%%:OO%#####%O..:#%-.:###%OOo::o%%#                                                 */
/*                  %%%%%%%%O---:o#:-.o%%#%%%%%%%%%%ooOO%##O:-...-O:-.%%####O--o%###                                                 */
/*                  %%%%%%%%%o:-:ooO%O%%%%%%%%OOO%%%:ooOO%##::...-:oOO%%###O-o%%####                                                 */
/*                  %%%#%#%%%Oo:ooooOOO%%%%%%%OOO%O%:ooooOO%##-..-:ooOO%%#%O%%######                                                 */
/*                  %%%%%%##%%OoooooOOO%%%%%OOOOO%%%ooO:ooOOOOO%%%%ooO%%%%%%%%%%#%##                                                 */
/*                  %%%%%#####%%OooO%%%%%%%OOOOOOO%%O:oOOOoooO%O%OO%%%%%%%%%%%%%%###                                                 */
/*                  %%%%%%##%##%%%%O%%%%%%%oO%O%O%%%Oo:OOooooOoOOO%%%%%%%%%%%%%%%%%#                                                 */
/*                  %%%%%%%%#%%%%%%%%%%%OO%%OOOO%%%OoOOOoooOoOoOOOOO%OO%%%%%%%%%%%%#                                                 */
/*                  %%%%#%%%%%%##%%%%%%%%O%%O%%%O%%OOOOOOooOOOO...........%%%%%%%%#%                                                 */
/*                  %%%%%#%%%%%%%%%%%%%%%%OOO%%O%%%%OOOO........................:##%                                                 */
/*                                                                                                                                   */
/*                     (A=1,B=0,C=1,D=0,E=0,F=1)      (A=1,B=1.50,C=1,D=1,E=1,F=1)                                                   */
/*                                                                                                                                   */
/*                                                                oO%##                                                              */
/*                     OO%O%%%%%%%#%o::%%%%O%%#%%#           OOO-:OOOo%##%%%                                                         */
/*                  OOO%%%%%%%#%%.O%-.##OOOO%O%%%%## %OOOOOOOo-.-o%Oo:o%##########%#                                                 */
/*                  OO%%######%%%.-oo%%#%OOOOOOOO%##%OOOOooo:..-:O%Oo-:%############                                                 */
/*                  %%%#######%%...:oO%%#OOOooOOO%%%%ooOOOo--..-:%%O-..O############                                                 */
/*                  %%########%%...:oOO%#OooOoooOO%%OOoOoOOo:--::O#o-.-%%###########                                                 */
/*                  %%#########....:oOO%%#oOoooooO%O%OOooO%OOO:::o%:-.O%%#%%%#######                                                 */
/*                  %%#::::%##%...-:oOO%%#%OoooooOO%:Oo%%%%%OOoo:ooOOOOO%%%%%%%%%###                                                 */
/*                  %%#%:::::-....-ooOO%%###Oo::oo%%OoOO%%%#%%%ooooOOOOO%%%%OOO%##%#                                                 */
/*                  %%###::::.....:ooOO%%###%OoooOO#O%%%%#####%%OoooOOOO%%OOOOO%%%##                                                 */
/*                  %%O%%##::-...-:ooO%%%###%ooOO%%#oOOOO%%#####%OOOOOO%%OOoOO%%%###                                                 */
/*                  O%%OO%%##:--:oooOO%%###%oOO%#%%#OOOO%%%##%#####OOOOOOooOOO%%%###                                                 */
/*                  o%OOOO%%%%%%%OO%%%%#%OO%%#%#####O%oOO%OO%%%%%%#%%%OOO%%%%%######                                                 */
/*                  OOOOOOOO%OO::.......::%#%%%%%%%#%OOO%OOO%%%%%%%%%%%%%%%%%%#%%###                                                 */
/*                  O...............................O%OO%OOO%o.............%%%%###%#                                                 */
/*                                                                                                                                   */
/*                    (A=1,B=1.50,C=0,D=0,E=0,F=0)     (A=1,B=0,C=1,D=0,E=0,F=0)                                                     */
/*                                                                                                                                   */
/*                                                (t=8)                                                                              */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*                  voir aussi 'v $xiaq/HYDR.6G$M$R16' et 'v $xiaq/HYDR.6d$R16$DROITE    p=$xiP/trou_noir.14'.                       */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Author of '$xrq/hydrogene.61$K' :                                                                                          */
/*                                                                                                                                   */
/*                    Jean-Francois Colonna (LACTAMME, 19930000000000).                                                              */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        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_____MODULE_NON_OPTIMISABLE
@define   PRAGMA_____MODULE_NON_DERIVABLE

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        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   D E S   F O N C T I O N S   U T I L E S   ( C O M P A T I B I L I T E )  :                           */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#include  xrk/attractor.11.I"
#include  xrv/particule.41.I"

#include  xrs/sphere.18.I"
#include  xrs/sphere.19.I"
                                        /* Inutile, mais pour la compatibilite...                                                    */
                                        /* Introduit le 20030130112733 a cause de 'v $xcc/cpp$Z INCLUDES_1.sed'.                     */

#include  xrk/attractor.12.I"

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        D E F I N I T I O N   D E   L ' A T O M E   D ' H Y D R O G E N E  :                                                       */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#include  xrs/sphere.12.I"
#include  xrq/Hspherik.14.I"
                                        /* Introduit le 20060611085053 suite a 'v $xrs/surfaces.12$I 20060602134331'.                */
#include  xrs/sphere.14.I"
#include  xrq/Laguerre.31.I"
#include  xrq/Legendre.31.I"
#include  xrq/Hspherik.21.I"
#include  xrq/hydrogene.21.I"
#include  xrq/Hspherik.12.I"
#include  xrq/hydrogene.23.I"
#include  xrq/hydrogene.24.I"
#include  xrq/hydrogene.25.I"

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        C A L C U L   L O C A L   D ' U N E   F O N C T I O N   P R O P R E  :                                                     */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   CALCUL_EVENTUEL_D_UNE_FONCTION_PROPRE(fonction_propre,ordre_n,ordre_l,ordre_m,coefficient)                                    \
                    Bblock                                                                                                              \
                    Test(IZNE(coefficient))                                                                                             \
                         Bblock                                                                                                         \
                         CALCUL_D_UNE_FONCTION_PROPRE_DE_NOM_QUELCONQUE(fonction_propre,ordre_n,ordre_l,ordre_m);                       \
                                        /* Calcul de la fonction propre locale pour un couple (n,l,m) de nom 'fonction_propre'       */ \
                                        /* quand sa ponderation ulterieure n'est pas nulle...                                        */ \
                         Eblock                                                                                                         \
                    ATes                                                                                                                \
                         Bblock                                                                                                         \
                         Cinitialisation(fonction_propre,FZERO,FZERO);                                                                  \
                                        /* Lorsque la ponderation ulterieure d'une fonction propre locale pour un couple (n,l,m)     */ \
                                        /* est nulle, on met cette derniere a zero par pure proprete (et peut-etre aussi pour        */ \
                                        /* eviter des problemes avec les nombres flottants. on ne sait jamais...).                   */ \
                         Eblock                                                                                                         \
                    ETes                                                                                                                \
                    Eblock                                                                                                              \
                                        /* Calcul de la fonction propre locale pour un couple (n,l,m) de nom 'fonction_propre'       */ \
                                        /* lorsque sa ponderation ulterieure n'est pas nulle...                                      */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        D E F I N I T I O N   D U   T E M P S  :                                                                                   */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#include  xrq/hydrogene.61.I"
                                        /* Forcage de la definition de 'ZOOM_IMPLICITE' afin d'assurer la compatibilite avec les     */
                                        /* sequences deja generees...                                                                */

#include  xrs/surfaces.11.I"

#define   TEMPS                                                                                                                         \
                    FZERO
DEFV(Local,DEFV(Float,INIT(temps,TEMPS)));
                                        /* Definition du temps.                                                                      */

dfTRANSFORMAT_31(liste_PARAMETRE_TEMPS,fichier_PARAMETRE_TEMPS,PARAMETRE_TEMPS_IMPLICITE,TEMPS)
                                        /* Definition du fichier du parametre 't'.                                                   */
#define   sPARAMETRE_TEMPS(numero_de_la_periode)                                                                                        \
                    FLOT(sTRANSFORMAT_31(numero_de_la_periode,liste_PARAMETRE_TEMPS))
                                        /* Formule generale definissant les variations de 't' au cours du temps.                     */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        D E F I N I T I O N   D E S   C O O R D O N N E E S  :                                                                     */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   caXf                                                                                                                          \
                    MUL2(ASD1(echelle_courante,cx)                                                                                      \
                        ,CARRE_OX_PAR_RAPPORT_A_OY(_____cNORMALISE_OX(SOUS(X,_lDENORMALISE_OX(ASD1(translation,dx)))))                  \
                         )
#define   caYf                                                                                                                          \
                    MUL2(ASD1(echelle_courante,cy)                                                                                      \
                        ,CARRE_OY_PAR_RAPPORT_A_OY(_____cNORMALISE_OY(SOUS(Y,_lDENORMALISE_OY(ASD1(translation,dy)))))                  \
                         )
#define   caZf                                                                                                                          \
                    MUL2(ASD1(echelle_courante,cz)                                                                                      \
                        ,SOUS(profondeur,ASD1(translation,dz))                                                                          \
                         )
                                        /* Definition des coordonnees cartesiennes. On notera que l'on utilise (cXf,cYf,cZf) afin    */
                                        /* de ne pas rentrer en conflit avec la procedure 'coordonnees_flottantes_X_et_Y_et_Z' qui   */
                                        /* definit {Xf,Yf,Zf} et qui est appelee dans '$xrv/champs_5.12$I' via '$xrs/surfaces.11$I'  */
                                        /* et '$xrk/attractor.17$I', et tout cela pour des raisons de compatibilite...               */

#define   PERMUTATION_XY                                                                                                                \
                    FAUX
DEFV(Local,DEFV(Logical,INIT(permutation_XY,PERMUTATION_XY)));
                                        /* Faut-il permuter 'X' et 'Y' ?                                                             */
#define   PERMUTATION_YZ                                                                                                                \
                    FAUX
DEFV(Local,DEFV(Logical,INIT(permutation_YZ,PERMUTATION_YZ)));
                                        /* Faut-il permuter 'Y' et 'Z' ?                                                             */
#define   PERMUTATION_ZX                                                                                                                \
                    FAUX
DEFV(Local,DEFV(Logical,INIT(permutation_ZX,PERMUTATION_ZX)));
                                        /* Faut-il permuter 'Z' et 'X' ?                                                             */

DEFV(Local,DEFV(Float,INIT(cXf,FLOT__UNDEF)));
DEFV(Local,DEFV(Float,INIT(cYf,FLOT__UNDEF)));
DEFV(Local,DEFV(Float,INIT(cZf,FLOT__UNDEF)));
                                        /* Definition des coordonnees cartesiennes apres permutation eventuelle des axes...          */

#define   PROFONDEUR                                                                                                                    \
                    FZERO
DEFV(Local,DEFV(Float,INIT(profondeur,PROFONDEUR)));
                                        /* Definition de la profondeur de la coupe a effectuer (du type [0,1] ou [-0.5,+0.5]).       */

dfTRANSFORMAT_31(liste_PARAMETRE_Z,fichier_PARAMETRE_Z,PARAMETRE_Z_IMPLICITE,PROFONDEUR)
                                        /* Definition du fichier du parametre 'z'.                                                   */
#define   sPARAMETRE_Z(numero_de_la_periode)                                                                                            \
                    FLOT(sTRANSFORMAT_31(numero_de_la_periode,liste_PARAMETRE_Z))
                                        /* Formule generale definissant les variations de 'z' au cours du temps.                     */

                                        /* ATTENTION, il y a eu pendant longtemps :                                                  */
                                        /*                                                                                           */
                                        /*                  #define   cRHO                                                        \  */
                                        /*                                      Rho_3D(cXf,cYf,cZf)                                  */
                                        /*                  #define   cPHI                                                        \  */
                                        /*                                      Teta_3D(cXf,cYf,cZf)                                 */
                                        /*                  #define   cTETA                                                       \  */
                                        /*                                      Phi_3D(cXf,cYf,cZf)                                  */
                                        /*                                                                                           */
                                        /* mais en fait cela etait faux car nous ne sommes pas en coordonnees spheriques relatives   */
                                        /* aux axes (OX,OY,OZ), mais par rapport aux axes (OY,OZ,OX). Il faut donc permuter les      */
                                        /* trois axes ainsi que les fonction 'Teta_3D(...)' et 'Phi_3D(...)'...                      */

#define   cRHO                                                                                                                          \
                    Rho_3D(cYf,cZf,cXf)                                                                                                 \
                                        /* Definition du rayon polaire.                                                              */
#define   cPHI                                                                                                                          \
                    Phi_3D(cYf,cZf,cXf)                                                                                                 \
                                        /* Definition de la coordonnee 'phi'.                                                        */
#define   cTETA                                                                                                                         \
                    Teta_3D(cYf,cZf,cXf)                                                                                                \
                                        /* Definition de la coordonnee 'theta'.                                                      */

                                        /*                                                               ,,   ,,   ,,                */
                                        /* Definition des coordonnees spheriques par rapport aux axes (OX  ,OY  ,OZ  ), alors que    */
                                        /* les axes du modele sont (OX,OY,OZ). On notera que l'angle 'phi' mesure une rotation par   */
                                        /* rapport a l'axe 'OX'.                                                                     */
                                        /*                                                                                           */
                                        /*                                             ,,                                            */
                                        /*                                    Y * ==> X                                              */
                                        /*                                      *                                                    */
                                        /*                   ,                  *                                                    */
                                        /*                  Y +                 C - - - - - - - - B                                  */
                                        /*                     +              . *               .                                    */
                                        /*                      +           .   * \           .   |                                  */
                                        /*                       +        .     *           .                                        */
                                        /*                        +     .       *   \     .       |                                  */
                                        /*                         +  .         *       .                                            */
                                        /*                          E - - - - - - - - P(X,Y,Z)    |                                  */
                                        /*                           +          *                                                    */
                                        /*                          | +         *    +|           |                                  */
                                        /*                             +        *                                                    */
                                        /*                          |   +--phi--*   + |           |                                  */
                                        /*                               +      *   |                                                */
                                        /*                          |     +     *  +t |           |                                  */
                                        /*                                 +    *   e                                                */
                                        /*                          |       +   * + t |           |                                  */
                                        /*                                   +  *   a                                                */
                                        /*                          |         + *+  | |           |                                  */
                                        /*                                     +*   |                                     ,     ,,   */
                                        /*                          |           O* * *|* * * * * *A* * * * * * * * * * X=X ==> Z     */
                                        /*                                    *                 .                                    */
                                        /*                          |       *  .  \   |       .                                      */
                                        /*                                *                 .                                        */
                                        /*                          |   *     .     \ |   .                                          */
                                        /*                            *                 .                                            */
                                        /*                          F - - - -.- - - - D                                              */
                                        /*                        *                                                                  */
                                        /*                      *           .                                                        */
                                        /*                    *                                                                      */
                                        /*                  *              .                                                         */
                                        /*                *                                                                          */
                                        /*              *                 .                                                          */
                                        /*            *                                                                              */
                                        /*          *    ,,              .                                                           */
                                        /*      Z * ==> Y                                                                            */
                                        /*                              .                                                            */
                                        /*                            ,                                                              */
                                        /*                           Z .                                                             */
                                        /*                                                                                           */
                                        /*                                                                                           */
                                        /* On a les proprietes suivantes :                                                           */
                                        /*                         ,   ,                                                             */
                                        /*                  P E (OX ,OY ), car 'OP' est la diagonale du quadrilatere plan OAPE.      */
                                        /*                                                                                           */
                                        /*                   ^     ^     pi                                                          */
                                        /*                  OCE = OEP = ----                                                         */
                                        /*                               2                                                           */
                                        /*                                                                                           */
                                        /*                   ^                                                                       */
                                        /*                  COE = phi                                                                */
                                        /*                                                                                           */
                                        /*                   ^     ^                                                                 */
                                        /*                  OPE = POA = theta                                                        */
                                        /*                                                                                           */
                                        /*                  OP = rho                                                                 */
                                        /*                                                                                           */
                                        /* d'ou :                                                                                    */
                                        /*                                                                                           */
                                        /*                                  ^      CE     Z                                          */
                                        /*                  tan(phi) = tan(COE) = ---- = ---                                         */
                                        /*                                         OC     Y                                          */
                                        /*                                                                                           */
                                        /*                              Z                                                            */
                                        /*                  phi = atan(---) = Teta_2D(Y,Z) = Phi_3D(Y,Z,X)                           */
                                        /*                              Y                                                            */
                                        /*                                                     ________                              */
                                        /*                                                    / 2    2                               */
                                        /*                                    ^      EO     \/ Y  + Z                                */
                                        /*                  tan(theta) = tan(OPE) = ---- = -------------                             */
                                        /*                                           PE          X                                   */
                                        /*                                                                                           */
                                        /*                                   ________                                                */
                                        /*                                  / 2    2                                                 */
                                        /*                                \/ Y  + Z                                                  */
                                        /*                  theta = atan(-------------) = Teta_3D(Y,Z,X)                             */
                                        /*                                     X                                                     */
                                        /*                                                                                           */
                                        /*                           -------------                                                   */
                                        /*                          / 2    2    2                                                    */
                                        /*                  rho = \/ X  + Y  + Z   = Rho_3D(Y,Z,X)                                   */
                                        /*                                                                                           */
                                        /* Enfin, on voit ainsi qu'il suffit de permuter les axes de la facon suivante :             */
                                        /*                                                                                           */
                                        /*                  {X,Y,Z} --> {Y,Z,X}                                                      */
                                        /*                                                                                           */
                                        /* soit :                                                                                    */
                                        /*                                                                                           */
                                        /*                  X --> Z                                                                  */
                                        /*                  Y --> X                                                                  */
                                        /*                  Z --> Y                                                                  */
                                        /*                                                                                           */

                                        /* ATTENTION, il y a eu pendant longtemps :                                                  */
                                        /*                                                                                           */
                                        /*                  #define   cRHO                                                        \  */
                                        /*                                      Rho_3D(cXf,cYf,cZf)                                  */
                                        /*                  #define   cPHI                                                        \  */
                                        /*                                      Teta_3D(cXf,cYf,cZf)                                 */
                                        /*                  #define   cTETA                                                       \  */
                                        /*                                      Phi_3D(cXf,cYf,cZf)                                  */
                                        /*                                                                                           */
                                        /* mais en fait cela etait faux car nous ne sommes pas en coordonnees spheriques relatives   */
                                        /* aux axes (OX,OY,OZ), mais par rapport aux axes (OY,OZ,OX). Il faut donc permuter les      */
                                        /* trois axes ainsi que les fonction 'Teta_3D(...)' et 'Phi_3D(...)'...                      */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        D E F I N I T I O N   D E S   C O M B I N A I S O N S   L I N E A I R E S  :                                               */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Definition :                                                                                                               */
/*                                                                                                                                   */
/*                    On etudie une combinaison lineaire                                                                             */
/*                  de plusieurs fonctions propres 'PSI(n,l,m)'                                                                      */
/*                  telle qu'elle evolue au cours du temps de                                                                        */
/*                  la facon suivante :                                                                                              */
/*                                                                                                                                   */
/*                                          2.i.pi.t                                                                                 */
/*                                         ----------                                                                                */
/*                                              2                                                                                    */
/*                                             1                                                                                     */
/*                                      = e          .[A.PSI   ]                                                                     */
/*                                                          100                                                                      */
/*                                                                                                                                   */
/*                                          2.i.pi.t                                                                                 */
/*                                         ----------                                                                                */
/*                                              2                                                                                    */
/*                                             2                                                                                     */
/*                                      + e          .[B.PSI    + C.PSI   ]                                                          */
/*                                                          200        211                                                           */
/*                                                                                                                                   */
/*                                          2.i.pi.t                                                                                 */
/*                                         ----------                                                                                */
/*                                              2                                                                                    */
/*                                             3                                                                                     */
/*                                      + e          .[D.PSI    + E.PSI    + F.PSI   ]                                               */
/*                                                          300        311        322                                                */
/*                                             /\                                                                                    */
/*                                             ||           .          .          .                                                  */
/*                                             ||          /|\        /|\        /|\                                                 */
/*                                             ||           |          |          |                                                  */
/*                                             ||           |          |          |                                                  */
/*                                                          |          |          |                                                  */
/*                                                2                                                                                  */
/*                                           T = n          n          n          n                                                  */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*                    On notera qu'en regle generale la periode                                                                      */
/*                  'T' des exponentielles est egale au carre du                                                                     */
/*                  nombre quantique 'n' des fonctions propres                                                                       */
/*                  associees. Cela peut etre outrepasse avec                                                                        */
/*                  les arguments d'appels ; en effet, si l'on                                                                       */
/*                  souhaite observer une periode complete du                                                                        */
/*                  phenomene, il faut faire varier le temps 't'                                                                     */
/*                  dans l'intervalle [0,36], ou '36' est en fait                                                                    */
/*                  le 'PPCM' des nombres (1,4,9). Or cet intervalle                                                                 */
/*                  est enorme par rapport au nombre d'images en                                                                     */
/*                  general calculees (128...). Le mouvement obtenu                                                                  */
/*                  sera tres saccade, et pire l'axe des 't' ne sera                                                                 */
/*                  pas echantillonne regulierement. Ceci est tres                                                                   */
/*                  visible sur la sequence :                                                                                        */
/*                                                                                                                                   */
/*                                      xivPdf 1 2 / 004677_004804                                                                   */
/*                                                                                                                                   */
/*                    On sera donc amene a tricher un peu, en                                                                        */
/*                  choisissant par exemple :                                                                                        */
/*                                                                                                                                   */
/*                                      T1=1                                                                                         */
/*                                      T2=4                                                                                         */
/*                                      T3=8 (au lieu de 9, mais en restant tres proche de cette valeur)                             */
/*                                                                                                                                   */
/*                  La sequence :                                                                                                    */
/*                                                                                                                                   */
/*                                      xivPdf 1 2 / 006597_006724                                                                   */
/*                                                                                                                                   */
/*                  est ainsi generee dans [0,8]...                                                                                  */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*                    Enfin, on notera que les ordres 'n', 'l'                                                                       */
/*                  et 'm' reellement utilises sont en fait                                                                          */
/*                  parametres ci-dessous...                                                                                         */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   ORDRE_n_A                                                                                                                     \
                    ORDRE_n_01
DEFV(Local,DEFV(Int,INIT(ordre_n_A,ORDRE_n_A)));
#define   ORDRE_l_A                                                                                                                     \
                    ORDRE_l_00
DEFV(Local,DEFV(Int,INIT(ordre_l_A,ORDRE_l_A)));
#define   ORDRE_m_A                                                                                                                     \
                    ORDRE_m_00
DEFV(Local,DEFV(Int,INIT(ordre_m_A,ORDRE_m_A)));

#define   COEFFICIENT_A                                                                                                                 \
                    FU
DEFV(Local,DEFV(Float,INIT(coefficient_A,COEFFICIENT_A)));
                                        /* Fonction propre 'A'.                                                                      */
dfTRANSFORMAT_31(liste_COEFFICIENT_A,fichier_COEFFICIENT_A,COEFFICIENT_A_IMPLICITE,COEFFICIENT_A)
                                        /* Definition du coefficient 'A'.                                                            */
#define   sCOEFFICIENT_A(numero_de_la_periode)                                                                                          \
                    FLOT(sTRANSFORMAT_31(numero_de_la_periode,liste_COEFFICIENT_A))
                                        /* Formule generale definissant les variations de 'A' au cours du temps.                     */

#define   ORDRE_n_B                                                                                                                     \
                    ORDRE_n_02
DEFV(Local,DEFV(Int,INIT(ordre_n_B,ORDRE_n_B)));
#define   ORDRE_l_B                                                                                                                     \
                    ORDRE_l_00
DEFV(Local,DEFV(Int,INIT(ordre_l_B,ORDRE_l_B)));
#define   ORDRE_m_B                                                                                                                     \
                    ORDRE_m_00
DEFV(Local,DEFV(Int,INIT(ordre_m_B,ORDRE_m_B)));

#define   COEFFICIENT_B                                                                                                                 \
                    FU
DEFV(Local,DEFV(Float,INIT(coefficient_B,COEFFICIENT_B)));
                                        /* Fonction propre 'B'.                                                                      */
dfTRANSFORMAT_31(liste_COEFFICIENT_B,fichier_COEFFICIENT_B,COEFFICIENT_B_IMPLICITE,COEFFICIENT_B)
                                        /* Definition du coefficient 'B'.                                                            */
#define   sCOEFFICIENT_B(numero_de_la_periode)                                                                                          \
                    FLOT(sTRANSFORMAT_31(numero_de_la_periode,liste_COEFFICIENT_B))
                                        /* Formule generale definissant les variations de 'B' au cours du temps.                     */

#define   ORDRE_n_C                                                                                                                     \
                    ORDRE_n_B
DEFV(Local,DEFV(Int,INIT(ordre_n_C,ORDRE_n_C)));
#define   ORDRE_l_C                                                                                                                     \
                    ORDRE_l_01
DEFV(Local,DEFV(Int,INIT(ordre_l_C,ORDRE_l_C)));
#define   ORDRE_m_C                                                                                                                     \
                    ORDRE_m_01
DEFV(Local,DEFV(Int,INIT(ordre_m_C,ORDRE_m_C)));

#define   COEFFICIENT_C                                                                                                                 \
                    FU
DEFV(Local,DEFV(Float,INIT(coefficient_C,COEFFICIENT_C)));
                                        /* Fonction propre 'C'.                                                                      */
dfTRANSFORMAT_31(liste_COEFFICIENT_C,fichier_COEFFICIENT_C,COEFFICIENT_C_IMPLICITE,COEFFICIENT_C)
                                        /* Definition du coefficient 'B'.                                                            */
#define   sCOEFFICIENT_C(numero_de_la_periode)                                                                                          \
                    FLOT(sTRANSFORMAT_31(numero_de_la_periode,liste_COEFFICIENT_C))
                                        /* Formule generale definissant les variations de 'B' au cours du temps.                     */

#define   ORDRE_n_D                                                                                                                     \
                    ORDRE_n_03
DEFV(Local,DEFV(Int,INIT(ordre_n_D,ORDRE_n_D)));
#define   ORDRE_l_D                                                                                                                     \
                    ORDRE_l_00
DEFV(Local,DEFV(Int,INIT(ordre_l_D,ORDRE_l_D)));
#define   ORDRE_m_D                                                                                                                     \
                    ORDRE_m_00
DEFV(Local,DEFV(Int,INIT(ordre_m_D,ORDRE_m_D)));

#define   COEFFICIENT_D                                                                                                                 \
                    FU
DEFV(Local,DEFV(Float,INIT(coefficient_D,COEFFICIENT_D)));
                                        /* Fonction propre 'D'.                                                                      */
dfTRANSFORMAT_31(liste_COEFFICIENT_D,fichier_COEFFICIENT_D,COEFFICIENT_D_IMPLICITE,COEFFICIENT_D)
                                        /* Definition du coefficient 'D'.                                                            */
#define   sCOEFFICIENT_D(numero_de_la_periode)                                                                                          \
                    FLOT(sTRANSFORMAT_31(numero_de_la_periode,liste_COEFFICIENT_D))
                                        /* Formule generale definissant les variations de 'D' au cours du temps.                     */

#define   ORDRE_n_E                                                                                                                     \
                    ORDRE_n_D
DEFV(Local,DEFV(Int,INIT(ordre_n_E,ORDRE_n_E)));
#define   ORDRE_l_E                                                                                                                     \
                    ORDRE_l_01
DEFV(Local,DEFV(Int,INIT(ordre_l_E,ORDRE_l_E)));
#define   ORDRE_m_E                                                                                                                     \
                    ORDRE_m_01
DEFV(Local,DEFV(Int,INIT(ordre_m_E,ORDRE_m_E)));

#define   COEFFICIENT_E                                                                                                                 \
                    FU
DEFV(Local,DEFV(Float,INIT(coefficient_E,COEFFICIENT_E)));
                                        /* Fonction propre 'E'.                                                                      */
dfTRANSFORMAT_31(liste_COEFFICIENT_E,fichier_COEFFICIENT_E,COEFFICIENT_E_IMPLICITE,COEFFICIENT_E)
                                        /* Definition du coefficient 'E'.                                                            */
#define   sCOEFFICIENT_E(numero_de_la_periode)                                                                                          \
                    FLOT(sTRANSFORMAT_31(numero_de_la_periode,liste_COEFFICIENT_E))
                                        /* Formule generale definissant les variations de 'E' au cours du temps.                     */

#define   ORDRE_n_F                                                                                                                     \
                    ORDRE_n_D
DEFV(Local,DEFV(Int,INIT(ordre_n_F,ORDRE_n_F)));
#define   ORDRE_l_F                                                                                                                     \
                    ORDRE_l_02
DEFV(Local,DEFV(Int,INIT(ordre_l_F,ORDRE_l_F)));
#define   ORDRE_m_F                                                                                                                     \
                    ORDRE_m_02
DEFV(Local,DEFV(Int,INIT(ordre_m_F,ORDRE_m_F)));

#define   COEFFICIENT_F                                                                                                                 \
                    FU
DEFV(Local,DEFV(Float,INIT(coefficient_F,COEFFICIENT_F)));
                                        /* Fonction propre 'F'.                                                                      */
dfTRANSFORMAT_31(liste_COEFFICIENT_F,fichier_COEFFICIENT_F,COEFFICIENT_F_IMPLICITE,COEFFICIENT_F)
                                        /* Definition du coefficient 'F'.                                                            */
#define   sCOEFFICIENT_F(numero_de_la_periode)                                                                                          \
                    FLOT(sTRANSFORMAT_31(numero_de_la_periode,liste_COEFFICIENT_F))
                                        /* Formule generale definissant les variations de 'F' au cours du temps.                     */

DEFV(Local,DEFV(Int,INIT(plus_grand_des_ordres_n,UNDEF)));
                                        /* Plus grand des 6 ordres 'n' relatifs aux 6 fonctions propres 'A', 'B', 'C', 'D, 'E' et    */
                                        /* 'F' lorsque l'ajustement automatique par 'CORRECTION_DE_L_ECHELLE(...)' est demande...    */

#define   PERIODE_1                                                                                                                     \
                    FLOT(EXP2(ORDRE_n_A))
DEFV(Local,DEFV(Float,INIT(periode_1,PERIODE_1)));
                                        /* Premiere periode.                                                                         */
#define   PERIODE_2                                                                                                                     \
                    FLOT(EXP2(ORDRE_n_B))
DEFV(Local,DEFV(Float,INIT(periode_2,PERIODE_2)));
                                        /* Seconde periode.                                                                          */
#define   PERIODE_3                                                                                                                     \
                    FLOT(EXP2(ORDRE_n_D))
DEFV(Local,DEFV(Float,INIT(periode_3,PERIODE_3)));
                                        /* Troisieme periode.                                                                        */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        C H O I X   D E   C E   Q U I   S E R A   V I S U A L I S E  :                                                             */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   CALCULER_AUSSI_LA_PARTIE_IMAGINAIRE                                                                                           \
                    VRAI
DEFV(Local,DEFV(Logical,INIT(calculer_aussi_la_partie_Imaginaire,CALCULER_AUSSI_LA_PARTIE_IMAGINAIRE)));
                                        /* Faut-il calculer la partie Imaginaire :                                                   */
                                        /*                                                                                           */
                                        /* VRAI : c'est le module de la fonction propre qui sera visualise,                          */
                                        /* FAUX : c'est uniquement la partie Reelle de la fonction propre qui sera visualise.        */
                                        /*                                                                                           */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        P A R A M E T R E S  :                                                                                                     */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   X_ECHELLE                                                                                                                     \
                    FU                                                                                                                  \
                                        /* Echelle horizontale du champ,                                                             */
#define   Y_ECHELLE                                                                                                                     \
                    FU                                                                                                                  \
                                        /* Echelle verticale du champ,                                                               */
#define   Z_ECHELLE                                                                                                                     \
                    FU                                                                                                                  \
                                        /* Echelle de profondeur du champ.                                                           */

#define   AJUSTEMENT_AUTOMATIQUE_DES_ECHELLES                                                                                           \
                    VRAI                                                                                                                \
                                        /* Indique si les echelles horizontales et verticales doivent etre ajustees automatiquement  */ \
                                        /* en fonction des ordres 'n' ('VRAI') ou pas ('FAUX')...                                    */

#define   X_TRANSLATION                                                                                                                 \
                    FDU                                                                                                                 \
                                        /* Translation horizontale du champ,                                                         */
#define   Y_TRANSLATION                                                                                                                 \
                    FDU                                                                                                                 \
                                        /* Translation verticale du champ,                                                           */
#define   Z_TRANSLATION                                                                                                                 \
                    FZERO                                                                                                               \
                                        /* Translation de profondeur du champ.                                                       */

#define   RENORMALISER_CHAQUE_CHAMP_INDEPENDAMMENT                                                                                      \
                    FAUX                                                                                                                \
                                        /* Faut-il renormaliser chaque champ independamment des autres ('VRAI') ou bien faire une    */ \
                                        /* renormalisation globale de l'ensemble des champs ('FAUX') ?                               */

#define   PRENDRE_UNE_DYNAMIQUE_LOGARITHMIQUE                                                                                           \
                    FAUX                                                                                                                \
                                        /* Faut-il prendre une dynamique logarithmique ('VRAI') ou laisser le champ des fonctions    */ \
                                        /* propres tel qu'il a ete calcule ('FAUX') ?                                                */
#define   NOMBRE_D_ITERATIONS_DE_LA_DYNAMIQUE_LOGARITHMIQUE                                                                             \
                    UN                                                                                                                  \
                                        /* S'il faut prendre une dynamique logarithmique, combien de fois faut-il iterer cela ?      */

#define   EDITER_LES_EXTREMA_DE_LA_DENSITE_DE_PROBABILITE                                                                               \
                    FAUX                                                                                                                \
                                        /* Faut-il editer les extrema de la densite de probabilite ('VRAI') ou pas ('FAUX') ?        */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        M A C R O S   U T I L E S  :                                                                                               */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   CORRECTION_DE_L_ECHELLE(echelle)                                                                                              \
                    COND(IL_FAUT(ajustement_automatique_des_echelles)                                                                   \
                        ,MUL2(DIVI(ADD3(MUL2(FLOT(NEUT(DEUX)),EXP2(plus_grand_des_ordres_n))                                            \
                                       ,MUL2(FLOT(NEUT(SEPT)),EXP1(plus_grand_des_ordres_n))                                            \
                                       ,MUL2(FLOT(NEGA(CINQ)),EXP0(plus_grand_des_ordres_n))                                            \
                                        )                                                                                               \
                                  ,FLOT(CINQ)                                                                                           \
                                   )                                                                                                    \
                             ,echelle                                                                                                   \
                              )                                                                                                         \
                        ,echelle                                                                                                        \
                         )                                                                                                              \
                                        /* Correction de l'echelle du champ a generer en fonction de l'ordre 'n' a l'aide de la      */ \
                                        /* formule relativement arbitraire :                                                         */ \
                                        /*                                                                                           */ \
                                        /*                       2                                                                   */ \
                                        /*                   (2.n  + 7.n - 5).echelle                                                */ \
                                        /*                  --------------------------                                               */ \
                                        /*                               5                                                           */ \
                                        /*                                                                                           */ \
                                        /* (ou 'n' represente le plus grand des 6 ordres 'n' relatifs aux 6 fonctions propres 'A',   */ \
                                        /* 'B', 'C', 'D, 'E' et 'F') lorsque cet ajustement automatique est demande... On notera     */ \
                                        /* un facteur diviseur egal a 5 par rapport a la meme procedure de '$xrq/hydrogene.41$K'.    */ \
                                        /* Celui-ci est approximativement egal a :                                                   */ \
                                        /*                                                                                           */ \
                                        /*                   f(3)     034                                                            */ \
                                        /*                  ------ = ----- ~ 5                                                       */ \
                                        /*                   f(8)     179                                                            */ \
                                        /*                                                                                           */ \
                                        /* ou 'f(...)' designe 'CORRECTION_DE_L_ECHELLE(...)' dans '$xrq/hydrogene.41$K'. En effet   */ \
                                        /* dans ce programme 'n' peut aller jusqu'a 8, alors qu'ici, on s'arrete a 3, d'ou ce        */ \
                                        /* rapport...                                                                                */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        S U P E R P O S I T I O N   D Y N A M I Q U E   D ' E T A T S                                                              */
/*        P R O P R E S   D E   L ' A T O M E   D ' H Y D R O G E N E  :                                                             */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
BCommande(nombre_d_arguments,arguments)
/*-----------------------------------------------------------------------------------------------------------------------------------*/
     Bblock
     INIT_ERROR;
     DEFV(CHAR,INIC(POINTERc(nom_imageR),NOM_PIPE));
                                        /* Nom de la sequence d'images a generer.                                                    */
     DEFV(CHAR,INIT(POINTERc(nom_image),NOM_UNDEF));
                                        /* Nom courant des images.                                                                   */
     DEFV(Logical,INIT(ajustement_automatique_des_echelles,AJUSTEMENT_AUTOMATIQUE_DES_ECHELLES));
                                        /* Indique si les echelles horizontales et verticales doivent etre ajustees automatiquement  */
                                        /* en fonction des ordres 'n' ('VRAI') ou pas ('FAUX')...                                    */
     DEFV(coeffF_3D,echelle);
     DEFV(coeffF_3D,echelle_courante);
                                        /* Echelle du champ a generer (valeur initiale et valeur courante).                          */
     DEFV(deltaF_3D,translation);
                                        /* Translation du champ a generer.                                                           */
     DEFV(Float,INIT(densite_de_probabilite_de_presence,FLOT__UNDEF));
                                        /* Definition de la densite de probabilite de presence...                                    */
     DEFV(Logical,INIT(renormaliser_chaque_champ_independamment,RENORMALISER_CHAQUE_CHAMP_INDEPENDAMMENT));
                                        /* Faut-il renormaliser chaque champ independamment des autres ('VRAI') ou bien faire une    */
                                        /* renormalisation globale de l'ensemble des champs ('FAUX') ?                               */
     DEFV(Logical,INIT(prendre_une_dynamique_logarithmique,PRENDRE_UNE_DYNAMIQUE_LOGARITHMIQUE));
                                        /* Faut-il prendre une dynamique logarithmique ('VRAI') ou laisser le champ des fonctions    */
                                        /* propres tel qu'il a ete calcule ('FAUX') ?                                                */
     DEFV(Positive,INIT(nombre_d_iterations_de_la_dynamique_logarithmique,NOMBRE_D_ITERATIONS_DE_LA_DYNAMIQUE_LOGARITHMIQUE));
                                        /* S'il faut prendre une dynamique logarithmique, combien de fois faut-il iterer cela ?      */
     DEFV(Logical,INIT(editer_les_extrema_de_la_densite_de_probabilite,EDITER_LES_EXTREMA_DE_LA_DENSITE_DE_PROBABILITE));
                                        /* Faut-il editer les extrema de la densite de probabilite ('VRAI') ou pas ('FAUX') ?        */
     /*..............................................................................................................................*/
     DEBUT_DE_L_INITIALISATION_DES_INTERPOLATIONS_GEOMETRIQUES;
                                        /* Et ceci afin de pouvoir tourner dans le champ de densite de probabilite de presence...    */

     iTRANSFORMAT_31(liste_PARAMETRE_TEMPS,PARAMETRE_TEMPS_IMPLICITE);
                                        /* Initialisation du parametre 't'.                                                          */

     iTRANSFORMAT_31(liste_PARAMETRE_Z,PARAMETRE_Z_IMPLICITE);
                                        /* Initialisation du parametre 'z'.                                                          */

     iTRANSFORMAT_31(liste_COEFFICIENT_A,COEFFICIENT_A_IMPLICITE);
                                        /* Initialisation du parametre 'A'.                                                          */
     iTRANSFORMAT_31(liste_COEFFICIENT_B,COEFFICIENT_B_IMPLICITE);
                                        /* Initialisation du parametre 'B'.                                                          */
     iTRANSFORMAT_31(liste_COEFFICIENT_C,COEFFICIENT_C_IMPLICITE);
                                        /* Initialisation du parametre 'C'.                                                          */
     iTRANSFORMAT_31(liste_COEFFICIENT_D,COEFFICIENT_D_IMPLICITE);
                                        /* Initialisation du parametre 'D'.                                                          */
     iTRANSFORMAT_31(liste_COEFFICIENT_E,COEFFICIENT_E_IMPLICITE);
                                        /* Initialisation du parametre 'E'.                                                          */
     iTRANSFORMAT_31(liste_COEFFICIENT_F,COEFFICIENT_F_IMPLICITE);
                                        /* Initialisation du parametre 'F'.                                                          */

     INITIALISATION_COEFFICIENT_3D(echelle,X_ECHELLE,Y_ECHELLE,Z_ECHELLE);
                                        /* Initialisation de l'echelle du champ a generer.                                           */
     INITIALISATION_ACCROISSEMENT_3D(translation,X_TRANSLATION,Y_TRANSLATION,Z_TRANSLATION);
                                        /* Initialisation de la translation du champ a generer.                                      */

#include  xrv/champs_5.1A.I"

     GET_ARGUMENTSi(nombre_d_arguments
                   ,BLOC(PROCESS_ARGUMENTS_GEOMETRIQUES;

                         PROCESS_ARGUMENT_C("PARAMETRE_TEMPS=",fichier_PARAMETRE_TEMPS
                                           ,BLOC(VIDE;)
                                           ,BLOC(gTRANSFORMAT_31(fichier_PARAMETRE_TEMPS
                                                                ,liste_PARAMETRE_TEMPS
                                                                ,PARAMETRE_TEMPS_IMPLICITE
                                                                 );
                                                 )
                                            );

                         PROCESS_ARGUMENT_C("PARAMETRE_Z=",fichier_PARAMETRE_Z
                                           ,BLOC(VIDE;)
                                           ,BLOC(gTRANSFORMAT_31(fichier_PARAMETRE_Z
                                                                ,liste_PARAMETRE_Z
                                                                ,PARAMETRE_Z_IMPLICITE
                                                                 );
                                                 )
                                            );

                         PROCESS_ARGUMENT_C("COEFFICIENT_A=",fichier_COEFFICIENT_A
                                           ,BLOC(VIDE;)
                                           ,BLOC(gTRANSFORMAT_31(fichier_COEFFICIENT_A
                                                                ,liste_COEFFICIENT_A
                                                                ,COEFFICIENT_A_IMPLICITE
                                                                 );
                                                 )
                                            );
                         PROCESS_ARGUMENT_C("COEFFICIENT_B=",fichier_COEFFICIENT_B
                                           ,BLOC(VIDE;)
                                           ,BLOC(gTRANSFORMAT_31(fichier_COEFFICIENT_B
                                                                ,liste_COEFFICIENT_B
                                                                ,COEFFICIENT_B_IMPLICITE
                                                                 );
                                                 )
                                            );
                         PROCESS_ARGUMENT_C("COEFFICIENT_C=",fichier_COEFFICIENT_C
                                           ,BLOC(VIDE;)
                                           ,BLOC(gTRANSFORMAT_31(fichier_COEFFICIENT_C
                                                                ,liste_COEFFICIENT_C
                                                                ,COEFFICIENT_C_IMPLICITE
                                                                 );
                                                 )
                                            );
                         PROCESS_ARGUMENT_C("COEFFICIENT_D=",fichier_COEFFICIENT_D
                                           ,BLOC(VIDE;)
                                           ,BLOC(gTRANSFORMAT_31(fichier_COEFFICIENT_D
                                                                ,liste_COEFFICIENT_D
                                                                ,COEFFICIENT_D_IMPLICITE
                                                                 );
                                                 )
                                            );
                         PROCESS_ARGUMENT_C("COEFFICIENT_E=",fichier_COEFFICIENT_E
                                           ,BLOC(VIDE;)
                                           ,BLOC(gTRANSFORMAT_31(fichier_COEFFICIENT_E
                                                                ,liste_COEFFICIENT_E
                                                                ,COEFFICIENT_E_IMPLICITE
                                                                 );
                                                 )
                                            );
                         PROCESS_ARGUMENT_C("COEFFICIENT_F=",fichier_COEFFICIENT_F
                                           ,BLOC(VIDE;)
                                           ,BLOC(gTRANSFORMAT_31(fichier_COEFFICIENT_F
                                                                ,liste_COEFFICIENT_F
                                                                ,COEFFICIENT_F_IMPLICITE
                                                                 );
                                                 )
                                            );

                         GET_ARGUMENT_C("imageR=""R=",nom_imageR);
                         GET_ARGUMENT_L("standard=",les_images_sont_standards);

                         GET_ARGUMENT_L("XY=",permutation_XY);
                         GET_ARGUMENT_L("YZ=",permutation_YZ);
                         GET_ARGUMENT_L("ZX=",permutation_ZX);

                         GET_ARGUMENT_L("automatique=""auto=",ajustement_automatique_des_echelles);
                         GET_ARGUMENT_F("Ex=",ASD1(echelle,cx));
                         GET_ARGUMENT_F("Ey=",ASD1(echelle,cy));
                         GET_ARGUMENT_F("Ez=",ASD1(echelle,cz));
                         GET_ARGUMENT_F("Tx=",ASD1(translation,dx));
                         GET_ARGUMENT_F("Ty=",ASD1(translation,dy));
                         GET_ARGUMENT_F("Tz=",ASD1(translation,dz));

                         GET_ARGUMENT_F("z=""profondeur=""coupe=""Z=",profondeur);
                         GET_ARGUMENT_F("temps=""t=""T=",temps);

                         GET_ARGUMENT_F("T1=",periode_1);
                         GET_ARGUMENT_F("T2=",periode_2);
                         GET_ARGUMENT_F("T3=",periode_3);

                         GET_ARGUMENT_I("ordre_n_A=""nA=",ordre_n_A);
                         GET_ARGUMENT_I("ordre_m_A=""mA=",ordre_m_A);
                         GET_ARGUMENT_I("ordre_l_A=""lA=",ordre_l_A);
                         GET_ARGUMENT_F("A=",coefficient_A);

                         GET_ARGUMENT_I("ordre_n_B=""nB=",ordre_n_B);
                         GET_ARGUMENT_I("ordre_m_B=""mB=",ordre_m_B);
                         GET_ARGUMENT_I("ordre_l_B=""lB=",ordre_l_B);
                         GET_ARGUMENT_F("B=",coefficient_B);

                         GET_ARGUMENT_I("ordre_n_C=""nC=",ordre_n_C);
                         GET_ARGUMENT_I("ordre_m_C=""mC=",ordre_m_C);
                         GET_ARGUMENT_I("ordre_l_C=""lC=",ordre_l_C);
                         GET_ARGUMENT_F("C=",coefficient_C);

                         GET_ARGUMENT_I("ordre_n_D=""nD=",ordre_n_D);
                         GET_ARGUMENT_I("ordre_m_D=""mD=",ordre_m_D);
                         GET_ARGUMENT_I("ordre_l_D=""lD=",ordre_l_D);
                         GET_ARGUMENT_F("D=",coefficient_D);

                         GET_ARGUMENT_I("ordre_n_E=""nE=",ordre_n_E);
                         GET_ARGUMENT_I("ordre_m_E=""mE=",ordre_m_E);
                         GET_ARGUMENT_I("ordre_l_E=""lE=",ordre_l_E);
                         GET_ARGUMENT_F("E=",coefficient_E);

                         GET_ARGUMENT_I("ordre_n_F=""nF=",ordre_n_F);
                         GET_ARGUMENT_I("ordre_m_F=""mF=",ordre_m_F);
                         GET_ARGUMENT_I("ordre_l_F=""lF=",ordre_l_F);
                         GET_ARGUMENT_F("F=",coefficient_F);

                         GET_ARGUMENT_L("spheriques=",calculer_la_probabilite_en_coordonnees_spheriques);
                         GET_ARGUMENT_F("tr=""Tr=",translation_du_carre_du_rayon);

                         GET_ARGUMENT_L("imaginaire=",calculer_aussi_la_partie_Imaginaire);

                         GET_ARGUMENT_L("independant=",renormaliser_chaque_champ_independamment);

                         GET_ARGUMENT_L("logarithmique=""log=",prendre_une_dynamique_logarithmique);
                         GET_ARGUMENT_I("iterations=",nombre_d_iterations_de_la_dynamique_logarithmique);

                         GET_ARGUMENT_L("editer=",editer_les_extrema_de_la_densite_de_probabilite);
                         )
                    );

#include  xrq/synapse.11.I"

     begin_nouveau_block
          Bblock
          DONNEES_DE_RECHERCHE_DES_EXTREMA_GLOBAUX_D_UNE_SEQUENCE_D_IMAGES;
                                        /* Extrema globaux de l'ensemble de la sequence...                                           */

          BDEFV(imageF,champ_des_fonctions_propres);
                                        /* Image flottante dans laquelle on trouve les fonctions propres avant renormalisation.      */

          EGAL(plus_grand_des_ordres_n
              ,MAX3(MAX1(ordre_n_A)
                   ,MAX2(ordre_n_B,ordre_n_C)
                   ,MAX3(ordre_n_D,ordre_n_E,ordre_n_F)
                    )
               );
                                        /* Plus grand des 6 ordres 'n' relatifs aux 6 fonctions propres 'A', 'B', 'C', 'D, 'E' et    */
                                        /* 'F' lorsque l'ajustement automatique par 'CORRECTION_DE_L_ECHELLE(...)' est demande...    */

          CALi(Inoir(ImageR));
                                        /* Initialisation de l'image Resultat.                                                       */

          Komp(numero_de_la_periode_courante_de_la_simulation,nombre_de_periodes_de_la_simulation)
               Bblock
               DONNEES_DE_RECHERCHE_DES_EXTREMA_LOCAUX_D_UNE_SEQUENCE_D_IMAGES;
                                        /* Extrema locaux de la sequence...                                                          */

               CHANGEMENT_DU_POINT_DE_VUE_GEOMETRIQUE;
                                        /* Et ceci afin de pouvoir tourner dans le champ de densite de probabilite de presence...    */

               INITIALISATION_COEFFICIENT_3D(echelle_courante
                                            ,CORRECTION_DE_L_ECHELLE(ASD1(echelle,cx))
                                            ,CORRECTION_DE_L_ECHELLE(ASD1(echelle,cy))
                                            ,CORRECTION_DE_L_ECHELLE(ASD1(echelle,cz))
                                             );
                                        /* Correction de l'echelle du champ a generer en fonction des ordres 'n'...                  */

               vTRANSFORMAT_31(temps,sPARAMETRE_TEMPS,numero_de_la_periode_courante,fichier_PARAMETRE_TEMPS);
                                        /* Definition du temps courant...                                                            */

               vTRANSFORMAT_31(profondeur,sPARAMETRE_Z,numero_de_la_periode_courante,fichier_PARAMETRE_Z);
                                        /* Definition de la profondeur courante...                                                   */

               vTRANSFORMAT_31(coefficient_A,sCOEFFICIENT_A,numero_de_la_periode_courante,fichier_COEFFICIENT_A);
               vTRANSFORMAT_31(coefficient_B,sCOEFFICIENT_B,numero_de_la_periode_courante,fichier_COEFFICIENT_B);
               vTRANSFORMAT_31(coefficient_C,sCOEFFICIENT_C,numero_de_la_periode_courante,fichier_COEFFICIENT_C);
               vTRANSFORMAT_31(coefficient_D,sCOEFFICIENT_D,numero_de_la_periode_courante,fichier_COEFFICIENT_D);
               vTRANSFORMAT_31(coefficient_E,sCOEFFICIENT_E,numero_de_la_periode_courante,fichier_COEFFICIENT_E);
               vTRANSFORMAT_31(coefficient_F,sCOEFFICIENT_F,numero_de_la_periode_courante,fichier_COEFFICIENT_F);
                                        /* Definition des coefficients 'A, 'B', 'C', 'D', 'E' et 'F' courants.                       */

               begin_image
                    Bblock
                    DEFV(complexe,fonction_propre_A);
                    DEFV(complexe,fonction_propre_B);
                    DEFV(complexe,fonction_propre_C);
                    DEFV(complexe,fonction_propre_D);
                    DEFV(complexe,fonction_propre_E);
                    DEFV(complexe,fonction_propre_F);
                                        /* Definition des six fonctions propres que l'on va combiner...                              */
                    DEFV(complexe,exponentielle_1);
                    DEFV(complexe,exponentielle_2);
                    DEFV(complexe,exponentielle_3);
                                        /* Definition des trois exponentielles complexes...                                          */
                    DEFV(complexe,intermediaire_eA);
                    DEFV(complexe,intermediaire_BC);
                    DEFV(complexe,intermediaire_eBC);
                    DEFV(complexe,intermediaire_DE);
                    DEFV(complexe,intermediaire_DEF);
                    DEFV(complexe,intermediaire_eDEF);
                    DEFV(complexe,intermediaire_eA_eBC);
                    DEFV(complexe,intermediaire_eA_eBC_eDEF);
                                        /* Definition de nombres complexes intermediaires...                                         */

                    EGAL(cXf
                        ,TRANSFORMATION_GEOMETRIQUE_3D_Fx(caXf,caYf,caZf
                                                         ,ASD1(translation_de_l_origine,dx)
                                                          )
                         );
                    EGAL(cYf
                        ,TRANSFORMATION_GEOMETRIQUE_3D_Fy(caXf,caYf,caZf
                                                         ,ASD1(translation_de_l_origine,dy)
                                                          )
                         );
                    EGAL(cZf
                        ,TRANSFORMATION_GEOMETRIQUE_3D_Fz(caXf,caYf,caZf
                                                         ,ASD1(translation_de_l_origine,dz)
                                                          )
                         );
                                        /* Calcul des coordonnees cartesiennes. On notera les 'TRANSFORMATION_GEOMETRIQUE_3D' qui    */
                                        /* ne sont pas des rotations de la scene a proprement parler, mais plutot des rotations      */
                                        /* dans le champ de densite de probabilite de presence...                                    */

                    Test(IL_FAUT(permutation_XY))
                         Bblock
                         fSWAP(cXf,cYf);
                                        /* Permutation eventuelle des coordonnees cartesiennes...                                    */
                         Eblock
                    ATes
                         Bblock
                         Eblock
                    ETes
                    Test(IL_FAUT(permutation_YZ))
                         Bblock
                         fSWAP(cYf,cZf);
                                        /* Permutation eventuelle des coordonnees cartesiennes...                                    */
                         Eblock
                    ATes
                         Bblock
                         Eblock
                    ETes
                    Test(IL_FAUT(permutation_ZX))
                         Bblock
                         fSWAP(cZf,cXf);
                                        /* Permutation eventuelle des coordonnees cartesiennes...                                    */
                         Eblock
                    ATes
                         Bblock
                         Eblock
                    ETes

                    EGAL(parametre_r,cRHO);
                    EGAL(u,cTETA);
                    EGAL(v,cPHI);
                                        /* Definition des coordonnees spheriques apres avoir defini la profondeur...                 */

                    Cinitialisation(exponentielle_1
                                   ,COSX(DIVI(MUL2(CERCLE_TRIGONOMETRIQUE,temps),periode_1))
                                   ,SINX(DIVI(MUL2(CERCLE_TRIGONOMETRIQUE,temps),periode_1))
                                    );
                    Cinitialisation(exponentielle_2
                                   ,COSX(DIVI(MUL2(CERCLE_TRIGONOMETRIQUE,temps),periode_2))
                                   ,SINX(DIVI(MUL2(CERCLE_TRIGONOMETRIQUE,temps),periode_2))
                                    );
                    Cinitialisation(exponentielle_3
                                   ,COSX(DIVI(MUL2(CERCLE_TRIGONOMETRIQUE,temps),periode_3))
                                   ,SINX(DIVI(MUL2(CERCLE_TRIGONOMETRIQUE,temps),periode_3))
                                    );
                                        /* Calcul des trois exponentielles complexes :                                               */
                                        /*                                                                                           */
                                        /*                    2.i.pi.t                                                               */
                                        /*                   ----------                                                              */
                                        /*                        2                                                                  */
                                        /*                       1                                                                   */
                                        /*                  e                                                                        */
                                        /*                                                                                           */
                                        /*                                                                                           */
                                        /*                    2.i.pi.t                                                               */
                                        /*                   ----------                                                              */
                                        /*                        2                                                                  */
                                        /*                       2                                                                   */
                                        /*                  e                                                                        */
                                        /*                                                                                           */
                                        /*                                                                                           */
                                        /*                    2.i.pi.t                                                               */
                                        /*                   ----------                                                              */
                                        /*                        2                                                                  */
                                        /*                       3                                                                   */
                                        /*                  e                                                                        */
                                        /*                                                                                           */

                    CALCUL_EVENTUEL_D_UNE_FONCTION_PROPRE(fonction_propre_A,ordre_n_A,ordre_l_A,ordre_m_A,coefficient_A);
                    CALCUL_EVENTUEL_D_UNE_FONCTION_PROPRE(fonction_propre_B,ordre_n_B,ordre_l_B,ordre_m_B,coefficient_B);
                    CALCUL_EVENTUEL_D_UNE_FONCTION_PROPRE(fonction_propre_C,ordre_n_C,ordre_l_C,ordre_m_C,coefficient_C);
                    CALCUL_EVENTUEL_D_UNE_FONCTION_PROPRE(fonction_propre_D,ordre_n_D,ordre_l_D,ordre_m_D,coefficient_D);
                    CALCUL_EVENTUEL_D_UNE_FONCTION_PROPRE(fonction_propre_E,ordre_n_E,ordre_l_E,ordre_m_E,coefficient_E);
                    CALCUL_EVENTUEL_D_UNE_FONCTION_PROPRE(fonction_propre_F,ordre_n_F,ordre_l_F,ordre_m_F,coefficient_F);
                                        /* Calcul des six fonctions propres que l'on va combiner, lorsque cela est necessaire...     */

                    Cforme_lineaire(fonction_propre_A,coefficient_A,fonction_propre_A,FZERO);
                    Cforme_lineaire(fonction_propre_B,coefficient_B,fonction_propre_B,FZERO);
                    Cforme_lineaire(fonction_propre_C,coefficient_C,fonction_propre_C,FZERO);
                    Cforme_lineaire(fonction_propre_D,coefficient_D,fonction_propre_D,FZERO);
                    Cforme_lineaire(fonction_propre_E,coefficient_E,fonction_propre_E,FZERO);
                    Cforme_lineaire(fonction_propre_F,coefficient_F,fonction_propre_F,FZERO);
                                        /* Modulation des six fonctions propres que l'on va combiner...                              */

                    Cproduit(intermediaire_eA,exponentielle_1,fonction_propre_A);
                                        /* Calcul du premier terme :                                                                 */
                                        /*                                                                                           */
                                        /*                    2.i.pi.t                                                               */
                                        /*                   ----------                                                              */
                                        /*                        2                                                                  */
                                        /*                       1                                                                   */
                                        /*                  e          .[A.PSI  ]                                                    */
                                        /*                                    100                                                    */
                                        /*                                                                                           */

                    Csomme(intermediaire_BC,fonction_propre_B,fonction_propre_C);
                    Cproduit(intermediaire_eBC,exponentielle_2,intermediaire_BC);
                                        /* Calcul du deuxieme terme :                                                                */
                                        /*                                                                                           */
                                        /*                    2.i.pi.t                                                               */
                                        /*                   ----------                                                              */
                                        /*                        2                                                                  */
                                        /*                       2                                                                   */
                                        /*                  e          .[B.PSI    + C.PSI   ]                                        */
                                        /*                                    200        211                                         */
                                        /*                                                                                           */

                    Csomme(intermediaire_DE,fonction_propre_D,fonction_propre_E);
                    Csomme(intermediaire_DEF,intermediaire_DE,fonction_propre_F);
                    Cproduit(intermediaire_eDEF,exponentielle_3,intermediaire_DEF);
                                        /* Calcul du troisieme terme :                                                               */
                                        /*                                                                                           */
                                        /*                    2.i.pi.t                                                               */
                                        /*                   ----------                                                              */
                                        /*                        2                                                                  */
                                        /*                       3                                                                   */
                                        /*                  e          .[D.PSI    + E.PSI    + F.PSI   ]                             */
                                        /*                                    300        311        322                              */
                                        /*                                                                                           */

                    Csomme(intermediaire_eA_eBC,intermediaire_eA,intermediaire_eBC);
                    Csomme(intermediaire_eA_eBC_eDEF,intermediaire_eA_eBC,intermediaire_eDEF);
                                        /* Enfin, calcul de la combinaison lineaire,                                                 */

                    CALCUL_D_UNE_DENSITE_DE_PROBABILITE_DE_PRESENCE_QUELCONQUE(intermediaire_eA_eBC_eDEF);
                                        /* Et du carre de son module...                                                              */

                    storeF_point(densite_de_probabilite_de_presence
                                ,champ_des_fonctions_propres
                                ,X,Y
                                 );
                                        /* Et memorisation...                                                                        */
                    Eblock
               end_image

               Test(IL_FAUT(prendre_une_dynamique_logarithmique))
                    Bblock
                    Repe(nombre_d_iterations_de_la_dynamique_logarithmique)
                         Bblock
                         CALS(IFdynamique_logarithmique_avec_translation_dynamique(champ_des_fonctions_propres
                                                                                  ,champ_des_fonctions_propres
                                                                                   )
                              );
                                        /* S'il le faut, la dynamique du champ des fonctions propres est reduite par application     */
                                        /* d'une fonction logarithme, et ce 'N' fois...                                              */
                         Eblock
                    ERep
                    Eblock
               ATes
                    Bblock
                    Eblock
               ETes

               RECHERCHE_DES_EXTREMA_D_UNE_SEQUENCE_D_IMAGES(champ_des_fonctions_propres);
                                        /* Recherche des extrema locaux et globaux de l'ensemble de la sequence...                   */

               Test(IL_FAUT(editer_les_extrema_de_la_densite_de_probabilite))
                    Bblock
                    CAL2(Prin2("extrema locaux de la densite de probabilite : (min,max) = (%g,%g)\n"
                              ,niveau_minimum_de_l_image
                              ,niveau_maximum_de_l_image
                               )
                         );
                    Eblock
               ATes
                    Bblock
                    Eblock
               ETes

               EGAL(nom_image
                   ,chain_Aconcaten2_sauf_nom_pipe(nom_imageR
                                                  ,ChaineNumero(numero_de_la_periode_courante
                                                               ,NOMBRE_DE_CHIFFRES
                                                                )
                                                   )
                    );
                                        /* Le 20080602135139 fut introduit 'ChaineNumero(...)' afin de pouvoir parametrer            */
                                        /* aisement le nombre de chiffres des numeros...                                             */
               CALi(IupdateF_image(nom_image,champ_des_fonctions_propres));
                                        /* Sauvegarde du champ sans renormalisation...                                               */
               CALZ(FreC(nom_image));

               INCR(numero_de_la_periode_courante,I);
                                        /* Et passage a l'image suivante...                                                          */
               Eblock
          EKom

          Test(IL_FAUT(editer_les_extrema_de_la_densite_de_probabilite))
               Bblock
               CAL2(Prin2("\n extrema globaux du carre du module de la combinaison lineaire : (min,max) = (%g,%g)\n\n"
                         ,niveau_minimum_de_la_sequence
                         ,niveau_maximum_de_la_sequence
                          )
                    );
               Eblock
          ATes
               Bblock
               Eblock
          ETes

          Test(EST_VRAI(les_images_sont_standards))
               Bblock
                                        /* Cas ou l'on genere des images de type 'image' :                                           */
               EGAL(files_____editer_les_messages_d_erreur_de_lecture_des_fichiers,NE_PAS_EDITER_LES_MESSAGES_D_ERREUR_DES_FICHIERS);
                                        /* ATTENTION : ce n'est plus une erreur que l'image courante n'existe pas puisque            */
                                        /* dorenavant, il peut y avoir des trous dans la sequence, d'ou l'inhibition des messages    */
                                        /* d'erreur...                                                                               */

               EGAL(numero_de_la_periode_courante,NUMERO_DE_LA_PREMIERE_PERIODE_DE_LA_SIMULATION);
                                        /* Reinitialisation...                                                                       */

               Komp(numero_de_la_periode_courante_de_la_simulation,nombre_de_periodes_de_la_simulation)
                    Bblock
                    EGAL(nom_image
                        ,chain_Aconcaten2_sauf_nom_pipe(nom_imageR
                                                       ,ChaineNumero(numero_de_la_periode_courante
                                                                    ,NOMBRE_DE_CHIFFRES
                                                                     )
                                                        )
                         );
                                        /* Le 20080602135139 fut introduit 'ChaineNumero(...)' afin de pouvoir parametrer            */
                                        /* aisement le nombre de chiffres des numeros...                                             */
                    Test(PAS_D_ERREUR(CODE_ERROR(IloadF_image(champ_des_fonctions_propres,nom_image))))
                         Bblock
                         Test(IL_NE_FAUT_PAS(renormaliser_chaque_champ_independamment))
                              Bblock
                              CALS(Ifloat_std(ImageR
                                             ,champ_des_fonctions_propres
                                             ,niveau_minimum_de_la_sequence
                                             ,niveau_maximum_de_la_sequence
                                              )
                                   );
                                        /* Renormalisation globale des images de la sequence...                                      */
                              Eblock
                         ATes
                              Bblock
                              CALS(Ifloat_std_avec_renormalisation(ImageR
                                                                  ,champ_des_fonctions_propres
                                                                   )
                                   );
                                        /* Renormalisation locale des images de la sequence...                                       */
                              Eblock
                         ETes

                         CALi(Iupdate_image(nom_image,ImageR));
                         Eblock
                    ATes
                         Bblock
                         PRINT_ERREUR("le fichier recupere n'existe pas, ou n'est pas de type 'image'");
                         Eblock
                    ETes
                    CALZ(FreC(nom_image));

                    INCR(numero_de_la_periode_courante,I);
                                        /* Et passage a l'image suivante...                                                          */
                    Eblock
               EKom
               Eblock
          ATes
               Bblock
                                        /* Cas ou l'on genere des images de type 'imageF' :                                          */
               Eblock
          ETes

          EDEFV(imageF,champ_des_fonctions_propres);
                                        /* Image flottante dans laquelle on trouve les fonctions propres avant renormalisation.      */
          Eblock
     end_nouveau_block

     RETU_Commande;
     Eblock
ECommande



Copyright (c) Jean-François Colonna, 1995-2014.
Copyright (c) France Telecom R&D and CMAP (Centre de Mathématiques APpliquées) UMR CNRS 7641 / Ecole Polytechnique, 1995-2014.