####################################################################################################################################### # # # G E N E R A T I O N D ' U N E C A R T E D E D E N S I T E T R I D I M E N S I O N N E L L E # # 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 O N O - M A C H I N E ) : # # # # # # Author of '$xivP/disk.000000009/face.2/.REFL.A.13.$U' : # # # # Jean-Francois COLONNA (LACTAMME, AAAAMMJJhhmmss). # # # ####################################################################################################################################### $Z setParam _____imagesWW $xTV/REFL.Wb $Z # Ceci a ete introduit le 20020405170829 dans l'idee de pouvoir generer de temps en temps # $Z # les images '$_____imagesWW' dans '$xTV', malgre le danger que cela presente (a cause de # $Z # '$xcg/Xtemporaires$Z' via '$xcg/Xall$Z' ; on aura donc interet a utiliser la commande # $Z # 'bXall' dans ce contexte...). # $Z setParam _____EspaceTore FAUX $Z # Introduit le 20070416091502... # $Z setParam _____EspaceToreX VRAI $Z # Introduit le 20070424110324... # $Z setParam _____EspaceToreY VRAI $Z # Introduit le 20070424110324... # $Z setParam _____EspaceToreZ VRAI $Z # Introduit le 20070424110324... # $Z setParam _____Rcarte VRAI $Z setParam _____GCcarte FAUX $Z setParam _____Scarte +1e+308 $Z setParam _____FDcarte 1 $Z setParam _____FEcarte 64 $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 NC (atoi(getenv("DerniereA"))) $c /* Periode Courante dont on veut la carte de densite. */ $c $c #define PARITE 4 $c /* Afin de savoir combien d'actions peuvent etre menees en parallele... */ $c $c #define NA0 (atoi(getenv("PremiereA"))) $c #define NA (atoi(getenv("DerniereA"))) $c /* Nombre de couches a generer... */ $c $c #define Z0 -0.5 $c #define ZN +0.5 $c #define Z(n) ((ZN*(n-NA0))+(Z0*(NA-n)))/(NA-NA0) $c /* Intervalle de variation du 'Z' des couches. */ $c $c #define E_CARTE 2 $c /* Exposant des distances dans l'exponentielle qui sera en fait ajuste... */ $c $c int main() $c { $c int n; $c double z; $c $c printf("$DELETE $xTV/COORDONNEES$COORD_X\n"); $c printf("$DELETE $xTV/COORDONNEES$COORD_Y\n"); $c printf("$DELETE $xTV/COORDONNEES$COORD_Z\n"); $c $c printf("$CA $xTV/LISTE_POINTS | $c $GRE 'periode=%d ' | $c $GRE -v %c ROUGE=+$BLANC VERTE=+$BLANC BLEUE=+$BLANC %c | $c $SE -e 's/^.* X=//' $c -e 's/ .*$//' | $c $xrv/neutre$X $c ne=0 $c fichier='=' $c formater=VRAI decimales=8 $c > $xTV/COORDONNEES$COORD_X\n" $c ,NC $c ,'"','"' $c ); $c printf("$CA $xTV/LISTE_POINTS | $c $GRE 'periode=%d ' | $c $GRE -v %c ROUGE=+$BLANC VERTE=+$BLANC BLEUE=+$BLANC %c | $c $SE -e 's/^.* Y=//' $c -e 's/ .*$//' | $c $xrv/neutre$X $c ne=0 $c fichier='=' $c formater=VRAI decimales=8 $c > $xTV/COORDONNEES$COORD_Y\n" $c ,NC $c ,'"','"' $c ); $c printf("$CA $xTV/LISTE_POINTS | $c $GRE 'periode=%d ' | $c $GRE -v %c ROUGE=+$BLANC VERTE=+$BLANC BLEUE=+$BLANC %c | $c $SE -e 's/^.* Z=//' $c -e 's/ .*$//' | $c $xrv/neutre$X $c ne=0 $c fichier='=' $c formater=VRAI decimales=8 $c > $xTV/COORDONNEES$COORD_Z\n" $c ,NC $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 ParticulesX=`$WC $xTV/COORDONNEES$COORD_X`\n"); $c printf("set ParticulesX=$ParticulesX[$WC1]\n"); $c printf("set ParticulesY=`$WC $xTV/COORDONNEES$COORD_Y`\n"); $c printf("set ParticulesY=$ParticulesY[$WC1]\n"); $c printf("set ParticulesZ=`$WC $xTV/COORDONNEES$COORD_Z`\n"); $c printf("set ParticulesZ=$ParticulesZ[$WC1]\n"); $c #20220615105606____:$c printf("set Particules=`$xcg/MAX3.01$X x=$ParticulesX y=$ParticulesY z=$ParticulesZ`\n"); # $c printf("set Particules=`$xcg/MIN3.01$X x=$ParticulesX y=$ParticulesY z=$ParticulesZ`\n"); $c $c printf("set Parametres=%c%c\n",'"','"'); $c printf("set Parametres=%c$Parametres ne=$Particules%c\n",'"','"'); $c printf("set Parametres=%c$Parametres LISTE_X=$xTV/COORDONNEES$COORD_X%c\n",'"','"'); $c printf("set Parametres=%c$Parametres LISTE_Y=$xTV/COORDONNEES$COORD_Y%c\n",'"','"'); $c printf("set Parametres=%c$Parametres LISTE_Z=$xTV/COORDONNEES$COORD_Z%c\n",'"','"'); $c printf("set Parametres=%c$Parametres torique=$_____EspaceTore%c\n",'"','"'); $c printf("set Parametres=%c$Parametres toriqueX=$_____EspaceToreX%c\n",'"','"'); $c printf("set Parametres=%c$Parametres toriqueY=$_____EspaceToreY%c\n",'"','"'); $c printf("set Parametres=%c$Parametres toriqueZ=$_____EspaceToreZ%c\n",'"','"'); $c printf("set Parametres=%c$Parametres rectangulaire=$_____Rcarte%c\n",'"','"'); $c printf("set Parametres=%c$Parametres grand_carre=$_____GCcarte%c\n",'"','"'); $c printf("set Parametres=%c$Parametres ajuster=VRAI%c\n",'"','"'); $c printf("set Parametres=%c$Parametres seuil=$_____Scarte%c\n",'"','"'); $c printf("set Parametres=%c$Parametres facteur=$_____FDcarte%c\n",'"','"'); $c printf("set Parametres=%c$Parametres Efacteur=$_____FEcarte%c\n",'"','"'); $c $c if (((NA-NA0+1)%PARITE) != 0) $c { $c printf("\n ATTENTION : le nombre d'images n'est pas divisible par %d",PARITE); $c } $c else $c { $c } $c $c for (n=NA0 ; n<=NA ; n=n+PARITE) $c { $c int n1=n+0; $c int n2=n+1; $c int n3=n+2; $c int n4=n+3; $c $c printf("$xcg/parallele.1N$X $c commande11=%c $c $xrv/densite.01$X $c $Parametres $c Z=%f $c Eexposant=%f $c R=$_____imagesWW.%04d $c $formatI%c $c commande12=%c $c $xrv/densite.01$X $c $Parametres $c Z=%f $c Eexposant=%f $c R=$_____imagesWW.%04d $c $formatI%c $c commande21=%c $c $xrv/densite.01$X $c $Parametres $c Z=%f $c Eexposant=%f $c R=$_____imagesWW.%04d $c $formatI%c $c commande22=%c $c $xrv/densite.01$X $c $Parametres $c Z=%f $c Eexposant=%f $c R=$_____imagesWW.%04d $c $formatI%c\n" $c ,'"',Z(n1),(double)E_CARTE,n1,'"' $c ,'"',Z(n2),(double)E_CARTE,n2,'"' $c ,'"',Z(n3),(double)E_CARTE,n3,'"' $c ,'"',Z(n4),(double)E_CARTE,n4,'"' $c ); $c /* Generation de la carte de densite. L'option 'rectangulaire=VRAI' a ete introduite le */ $c /* 20001013090523 ; les commentaires des sequences : */ $c /* */ $c /* xivPdf 10 2 / 014849_015360 */ $c /* xivPdf 10 2 / 014337_014848 */ $c /* */ $c /* le justifient... */ $c } $c $c printf("$DELETE $xTV/MINIMUM\n"); $c printf("$DELETE $xTV/MAXIMUM\n"); $c $c for (n=NA0 ; n<=NA ; n++) $c { $c printf("$xci/extrema$X $c A=$_____imagesWW.%04d $c standard=FAUX $c minimum=VRAI $c maximum=FAUX $c Prme=VRAI $c $formatI $c >>! $xTV/MINIMUM\n" $c ,n $c ); $c /* L'option "Prme=VRAI" a ete introduite le 20150221114615 afin de pouvoir remplacer */ $c /* ">>&!" par ">>!"... */ #20150221095018____:$c printf("saut # #20150221095018____:$c >>&! $xTV/MINIMUM\n" # #20150221095018____:$c ); # $c printf("$xci/extrema$X $c A=$_____imagesWW.%04d $c standard=FAUX $c minimum=FAUX $c maximum=VRAI $c Prme=VRAI $c $formatI $c >>! $xTV/MAXIMUM\n" $c ,n $c ); $c /* L'option "Prme=VRAI" a ete introduite le 20150221114615 afin de pouvoir remplacer */ $c /* ">>&!" par ">>!"... */ #20150221095018____:$c printf("saut # #20150221095018____:$c >>&! $xTV/MAXIMUM\n" # #20150221095018____:$c ); # $c /* Extraction des extrema de chacune des cartes. */ $c } $c $c printf("set MinC=`$xrv/extrema.01$X ne=0 fichier=$xTV/MINIMUM | $GRE '^minimum=' | $SE -e 's/^.*=//'`\n"); $c printf("set MaxC=`$xrv/extrema.01$X ne=0 fichier=$xTV/MAXIMUM | $GRE '^maximum=' | $SE -e 's/^.*=//'`\n"); $c /* Extraction des extrema de l'ensemble des cartes. */ $c $c for (n=NA0 ; n<=NA ; n++) $c { $c printf("$xci/acces$X $c A=$_____imagesWW.%04d $c standard=FAUX $c extrema=FAUX $c minimum=$MinC $c maximum=$MaxC $c tronquer=FAUX $c R=$_____images.%04d $c $formatI\n" $c ,n $c ,n $c ); $c /* Et enfin conversion "standard" avec renormalisation globale... */ $c } $c } $Z $DELETE $xTV/LISTE_POINTS $Z $DELETE $xTV/COORDONNEES$COORD_X $Z $DELETE $xTV/COORDONNEES$COORD_Y $Z $DELETE $xTV/COORDONNEES$COORD_Z $Z $DELETE $xTV/MINIMUM $Z $DELETE $xTV/MAXIMUM