File: netlocscotch_get_arch.c

package info (click to toggle)
mpich 4.0.2-3
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 423,384 kB
  • sloc: ansic: 1,088,434; cpp: 71,364; javascript: 40,763; f90: 22,829; sh: 17,463; perl: 14,773; xml: 14,418; python: 10,265; makefile: 9,246; fortran: 8,008; java: 4,355; asm: 324; ruby: 176; lisp: 19; php: 8; sed: 4
file content (62 lines) | stat: -rw-r--r-- 1,401 bytes parent folder | download | duplicates (15)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#include <stdio.h> // for scotch
#include <stdint.h>
#include <scotch.h>
#include <netloc.h>
#include <netlocscotch.h>

void help(char *name, FILE *f)
{
    fprintf(f, "Usage: %s <archfile> [subarchfile]\n"
            "\t%s --help\n", name, name);
}

int main(int argc, char **argv)
{
    int ret;
    SCOTCH_Arch arch;
    SCOTCH_Arch subarch;

    char *arch_filename = NULL;
    char *subarch_filename = NULL;

    if (argc == 1 || argc > 3) {
        help(argv[0], stdout);
        return 1;
    }

    if (argc == 2) {
        if (!strcmp(*argv, "--help")) {
            help(argv[0], stdout);
            return 0;
        } else {
            arch_filename = argv[1];
        }
    } else if (argc == 3) {
        arch_filename = argv[1];
        subarch_filename = argv[2];
    }

    ret = netlocscotch_build_global_arch(&arch);
    if( NETLOC_SUCCESS != ret ) {
        return ret;
    }
    FILE *arch_file = fopen(arch_filename, "w");
    SCOTCH_archSave(&arch, arch_file);
    fclose(arch_file);

    if (subarch_filename) {
        ret = netlocscotch_build_current_arch(&arch, &subarch);
        if( NETLOC_SUCCESS != ret ) {
            return ret;
        }
        FILE *subarch_file = fopen(subarch_filename, "w");
        SCOTCH_archSave(&subarch, subarch_file);
        fclose(subarch_file);
        SCOTCH_archExit(&subarch);
    }

    SCOTCH_archExit(&arch);

    return 0;
}