Sinner Trapped Inside This Octavarium | Le code est en effet exactement le même sur les deux plateformes.
Pour info voici le code :
Code :
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #define LONG 1024
- int main (int argc, char *argv[])
- {
- int lineCount, atomCount ;
- char line[LONG], scaleInfo[LONG], space[] = " ", *energyMax, *energyMin, *energyStep, *fermiLevel, dosFilePath[LONG] ;
- FILE *doscarFile, *dosFile ;
- lineCount = 1 ;
- atomCount = 0 ;
- energyStep = "0" ;
- /* Opening DOSCAR file */
- doscarFile = fopen ("DOSCAR", "r" ) ;
- /* Testing the opening procedure */
- if (doscarFile == NULL)
- {
- fprintf(stderr, "Error while opening the DOSCAR file.\n" ) ;
- }
- else
- {
- fprintf(stderr, "DOSCAR file opened successfully in read only mode.\n" ) ;
- /* Reading POSCAR file line by line */
- while (fgets(line, LONG, doscarFile) != NULL)
- {
- /* Importing basic scales for DoS plotting */
- if (lineCount == 6)
- {
- if (atomCount == 0 )
- {
- mkdir("DOS_FILES", 0755) ;
- strcpy(scaleInfo, line) ;
- energyMax = strtok(scaleInfo, space) ;
- energyMin = strtok(NULL, space) ;
- energyStep = strtok(NULL, space) ;
- fermiLevel = strtok(NULL, space) ;
- fprintf(stderr, "Energy Min : %s eV\nEnergy Max : %s eV\nEnergy Step: %s eV\nFermi Level : %s eV\n", energyMin, energyMax, energyStep, fermiLevel) ;
- atomCount ++ ;
- /* Setting name of first atom DoS file */
- sprintf(dosFilePath, "DOS_FILES/DOS_%d", atomCount) ;
- }
- }
- else if (lineCount > 6 && lineCount < 7 + atoi(energyStep))
- {
- /* Opening Partial DOS file */
- dosFile = fopen (dosFilePath, "a" ) ;
- fputs(line, dosFile) ;
- fclose(dosFile) ;
- }
- else if (lineCount == 7 + atoi(energyStep))
- {
- lineCount = 6 ;
- atomCount ++ ;
- /* Setting name of next atoms DoS files */
- sprintf(dosFilePath, "DOS_FILES/DOS_%d", atomCount) ;
- }
- lineCount ++ ;
- }
- fprintf(stderr, "Number of atoms in cell : %d\n", atomCount) ;
- }
- /* Closing the DOSCAR file */
- fclose (doscarFile) ;
- }
|
Edit : Euuuh. En fait non. Je viens de le tester sous Linux au bureau, et c'est long aussi. Pourtant sur mon PC ça carburait
Edit 2 : Je viens de retester. Sur mon portable, Dual Core avec Mandriva Spring 2007.1 sous VMWare, le code met 10 secondes pour écrire les 96 fichiers.
Sur le PC du bureau, il faut quelques minutes. Message édité par Sinner le 11-10-2007 à 13:52:15
|