####################################################################################################################################### # # # 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 }