1 | # Where do we run ? |
---|
2 | import pathlib, os |
---|
3 | |
---|
4 | SysName, NodeName, Release, Version, Machine = os.uname () |
---|
5 | TGCC = ( 'irene' in NodeName ) |
---|
6 | IDRIS = ( 'jeanzay' in NodeName ) |
---|
7 | SPIP = ( 'lsce5138' in NodeName ) or ( 'spip' in NodeName.lower () ) |
---|
8 | |
---|
9 | ## Set site specific libIGCM directories, and other specific stuff |
---|
10 | # =========================================================================================== |
---|
11 | if TGCC : |
---|
12 | CPU = subprocess.getoutput ( 'lscpu | grep "Model name"' ) |
---|
13 | if "Intel(R) Xeon(R) Platinum" in CPU : Machine = 'irene' |
---|
14 | if "AMD" in CPU : Machine = 'irene-amd' |
---|
15 | |
---|
16 | if libIGCM : |
---|
17 | if ARCHIVE == None : ARCHIVE = subprocess.getoutput ( f'ccc_home --cccstore -d {Project} -u {User}' ) |
---|
18 | if STORAGE == None : STORAGE = subprocess.getoutput ( f'ccc_home --cccwork -d {Project} -u {User}' ) |
---|
19 | if SCRATCHDIR == None : SCRATCHDIR = subprocess.getoutput ( f'ccc_home --cccscratch -d {Project} -u {User}' ) |
---|
20 | if R_IN == None : R_IN = os.path.join ( subprocess.getoutput ( f'ccc_home --cccwork -d igcmg -u igcmg' ), 'IGCM') |
---|
21 | if rebuild == None : rebuild = os.path.join ( subprocess.getoutput ( f'ccc_home --ccchome -d igcmg -u igcmg' ), 'Tools', Machine, 'rebuild_nemo', 'bin', 'rebuild_nemo' ) |
---|
22 | |
---|
23 | ## Specific to run at TGCC. |
---|
24 | # Needed before importing a NetCDF library (netCDF4, xarray, cmds, etc ...) |
---|
25 | if platform.python_version () == '3.7.5' : |
---|
26 | import mpi4py |
---|
27 | mpi4py.rc.initialize = False |
---|
28 | |
---|
29 | ## Creates output directory name |
---|
30 | if TmpDir == None : |
---|
31 | TmpDir = subprocess.getoutput ( 'ccc_home -s' ) |
---|
32 | config['Files']['TmpDir'] = TmpDir |
---|
33 | |
---|
34 | # =========================================================================================== |
---|
35 | if IDRIS : |
---|
36 | Machine = 'jean-zay' |
---|
37 | if libIGCM : |
---|
38 | if ARCHIVE == None : ARCHIVE = os.path.join ( '/', 'gpfsstore' , 'rech', Project, User ) |
---|
39 | if STORAGE == None : STORAGE = os.path.join ( '/', 'gpfswork' , 'rech', Project, User ) |
---|
40 | if SCRATCHDIR == None : SCRATCHDIR = os.path.join ( '/', 'gpfsscratch', 'rech', Project, User ) |
---|
41 | if R_IN == None : R_IN = os.path.join ( '/', 'gpfswork' , 'rech', 'psl', 'commun', 'IGCM' ) |
---|
42 | if rebuild == None : rebuild = os.path.join ( '/', 'gpfswork', 'rech', 'psl', 'commun', 'Tools', 'rebuild', 'modipsl_IOIPSL_PLUS_v2_2_4', 'bin', 'rebuild' ) |
---|
43 | |
---|
44 | ## Creates output directory name |
---|
45 | if TmpDir == None : |
---|
46 | TmpDir = os.getenv ( 'CCFRSCRATCH' ) |
---|
47 | config['Files']['TmpDir'] = TmpDir |
---|
48 | |
---|
49 | # =========================================================================================== |
---|
50 | if SPIP : |
---|
51 | Machine = 'spip' |
---|
52 | if libIGCM : |
---|
53 | if ARCHIVE == None : ARCHIVE = os.path.join ( '/', 'Users', User, 'Data' ) |
---|
54 | if STORAGE == None : STORAGE = os.path.join ( '/', 'Users', User, 'Data' ) |
---|
55 | if SCRATCHDIR == None : SCRATCHDIR = os.path.join ( '/', 'Users', User, 'Data' ) |
---|
56 | if R_IN == None : R_IN = os.path.join ( '/', 'Users', User, 'Data', 'IGCM' ) |
---|
57 | |
---|
58 | ## Creates output directory name |
---|
59 | if TmpDir == None : |
---|
60 | TmpDir = os.path.join ( pathlib.Path.home (), 'Scratch' ) |
---|
61 | config['Files']['TmpDir'] = TmpDir |
---|
62 | |
---|
63 | # =========================================================================================== |
---|