#######################################################################################################################################
#                                                                                                                                     #
#         G E N E R A T I O N   D E   C A R T E S   D E   D E N S I T E   B I D I M E N S I O N N E L L E S                           #
#         A V E C   A J U S T E M E N T   A U T O M A T I Q U E                                                                       #
#         ( V E R S I O N   P A R A L L E L E   M U L T I - M A C H I N E S ,   P A R T I E   P A R A L L E L E )  :                  #
#                                                                                                                                     #
#                                                                                                                                     #
#         Author of '$xivP/disk.000000009/face.2/.REFL.A.14.1.$U' :                                                                                  #
#                                                                                                                                     #
#                     Jean-Francois COLONNA (LACTAMME, 20070417114002).                                                               #
#                                                                                                                                     #
#######################################################################################################################################

$Z        setParam            _____imagesWW                 $xTV/REFL.Wb

$Z        setParam            _____DParallele               $xT
$Z                                      # Introduit le 20070418091748. En effet, dans le cas d'une utilisation de type "parallele"    #
$Z                                      # '$xTV' est en general defini par '$xBTG' ('$xTC' apres le 20070608085951) et est donc       #
$Z                                      # commun a toutes les MACHINEs. Il est alors essentiel que les fichiers 'COORDONNEES$COORD_?' #
$Z                                      # soient locaux a chaque MACHINE ; une definition du type '$xT' s'impose donc...              #

$Z        setParam            _____EspaceTore               FAUX

$Z        setParam            _____EspaceToreX              VRAI
$Z                                      # Introduit le 20070424110418...                                                              #

$Z        setParam            _____EspaceToreY              VRAI
$Z                                      # Introduit le 20070424110418...                                                              #

$Z        setParam            _____EspaceToreZ              VRAI
$Z                                      # Introduit le 20070424110418...                                                              #

$Z        setParam            _____Rcarte                   FAUX

$Z        setParam            _____GCcarte                  FAUX

$Z                  if                  ($?_____Scarte == $NEXIST) then
$Z                  else
$Z                                      EROR "Le parametre '"'$_____Scarte'"' est remplace par "'{$_____MINcarte,$_____MAXcarte}.'""
$Z                                      # Introduit le 20070506184447...                                                              #
$Z                  endif

$Z        setParam            _____MINcarte                 `GetParam $xrv/densite.01$X minimum`
$Z                                      # Introduit le 20070506184447...                                                              #

$Z        setParam            _____MAXcarte                 `GetParam $xrv/densite.01$X maximum`
$Z                                      # '$_____MAXcarte' a remplace '$_____Scarte' le 20070506184447...                             #

$Z        setParam            _____FDcarte                  1

$Z        setParam            _____FEcarte                  200

$Z        setParam            _____Kcarte                   $NEXIST

$Z        setParam            _____Palette                  $xiP/cercle.35

$X                  echo                "neutre"
$X                                      # commande destinee uniquement a mettre a jour l'environnement 'env'...                       #

$c                  #include  <stdio.h>
$c
$c                  extern    int       atoi();
$c                  extern    char      *getenv();
$c
$c                  #define   NA0       (atoi(getenv("PremiereA")))
$c                  #define   NA        (atoi(getenv("DerniereA")))
$c
$c                  #define   E_CARTE   2
$c                                      /* Exposant des distances dans l'exponentielle.                                              */
$c
$c                  int       main()
$c                            {
$c                            int       n;
$c
$c                            for       (n=NA0 ; n<=NA ; n++)
$c                                      {
$c                                      printf("if        (`$xcg/parallele.01$X verrou=$_____imagesWW.%04d` == $EXIST) then\n"
$c                                            ,n
$c                                             );
$c                                      /* Gestion du parallelisme...                                                                */
$c                                      printf("          $DELETE     $_____DParallele/COORDONNEES$COORD_X\n");
$c                                      printf("          $DELETE     $_____DParallele/COORDONNEES$COORD_Y\n");
$c                                      printf("          $DELETE     $_____DParallele/COORDONNEES$COORD_Z\n");
$c
$c                                      printf("          $CA         $xTV/LISTE_POINTS.REDUITE                                   |
$c                                                        $GRE        'periode=%d '                                               |
$c                                                        $SE         -e 's/^.* X=//'
$c                                                                    -e 's/ .*$//'                                               |
$c                                                        $xrv/neutre$X
$c                                                                    ne=0
$c                                                                    fichier='='
$c                                                                    formater=VRAI decimales=8
$c                                                                    > $_____DParallele/COORDONNEES$COORD_X\n"
$c                                            ,n
$c                                            ,'"','"'
$c                                             );
$c                                      printf("          $CA         $xTV/LISTE_POINTS.REDUITE                                   |
$c                                                        $GRE        'periode=%d '                                               |
$c                                                        $SE         -e 's/^.* Y=//'
$c                                                                    -e 's/ .*$//'                                               |
$c                                                        $xrv/neutre$X
$c                                                                    ne=0
$c                                                                    fichier='='
$c                                                                    formater=VRAI decimales=8
$c                                                                    > $_____DParallele/COORDONNEES$COORD_Y\n"
$c                                            ,n
$c                                            ,'"','"'
$c                                             );
$c                                      printf("          $CA         $xTV/LISTE_POINTS.REDUITE                                   |
$c                                                        $GRE        'periode=%d '                                               |
$c                                                        $SE         -e 's/^.* Z=//'
$c                                                                    -e 's/ .*$//'                                               |
$c                                                        $xrv/neutre$X
$c                                                                    ne=0
$c                                                                    fichier='='
$c                                                                    formater=VRAI decimales=8
$c                                                                    > $_____DParallele/COORDONNEES$COORD_Z\n"
$c                                            ,n
$c                                            ,'"','"'
$c                                             );
$c                                      /* L'utilisation de 'decimales=8' permet de traiter proprement le probleme du aux erreurs    */
$c                                      /* d'arrondi ('v _____xivPdf_09_2/.REFL.w.12.$U arrondi').                                   */
$c
$c                                      printf("          set  ParticlX=`$WC $_____DParallele/COORDONNEES$COORD_X`\n");
$c                                      printf("          set  ParticlX=$ParticlX[$WC1]\n");
$c                                      printf("          set  ParticlY=`$WC $_____DParallele/COORDONNEES$COORD_Y`\n");
$c                                      printf("          set  ParticlY=$ParticlY[$WC1]\n");
$c                                      printf("          set  ParticlZ=`$WC $_____DParallele/COORDONNEES$COORD_Z`\n");
$c                                      printf("          set  ParticlZ=$ParticlZ[$WC1]\n");
$c
#20220615105807____:$c                  printf("          set  Particules=`$xcg/MAX3.01$X x=$ParticlX y=$ParticlY z=$ParticlZ`\n");   #
$c                                      printf("          set  Particules=`$xcg/MIN3.01$X x=$ParticlX y=$ParticlY z=$ParticlZ`\n");
$c
$c                                      printf("          $xrv/densite.01$X
$c                                                                    ne=$Particules
$c                                                                    LISTE_X=$_____DParallele/COORDONNEES$COORD_X
$c                                                                    LISTE_Y=$_____DParallele/COORDONNEES$COORD_Y
$c                                                                    LISTE_Z=$_____DParallele/COORDONNEES$COORD_Z
$c                                                                    torique=$_____EspaceTore
$c                                                                    toriqueX=$_____EspaceToreX
$c                                                                    toriqueY=$_____EspaceToreY
$c                                                                    toriqueZ=$_____EspaceToreZ
$c                                                                    rectangulaire=$_____Rcarte
$c                                                                    grand_carre=$_____GCcarte
$c                                                                    Eexposant=%f
$c                                                                    minimum=$_____MINcarte
$c                                                                    maximum=$_____MAXcarte
$c                                                                    facteur=$_____FDcarte
$c                                                                    Efacteur=$_____FEcarte
$c                                                                    R=$_____imagesWW.%04d
$c                                                                    $formatI\n"
$c                                            ,(double)E_CARTE
$c                                            ,n
$c                                             );
$c
$c                                      printf("          if        ($_____Kcarte == $EXIST) then\n");
$c                                      printf("                    $xcg/Float_float$X
$c                                                                              A=$_____imagesWW.%04d
$c                                                                              R=$_____imagesWW.%04d
$c                                                                              $formatI\n"
$c                                            ,n
$c                                            ,n
$c                                             );
$c                                      printf("          else\n");
$c                                      printf("          endif\n");
$c                                      /* Generation de la carte de densite.                                                        */
$c                                      printf("else\n");
$c                                      printf("endif\n");
$c                                      }
$c                            }



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