-
Notifications
You must be signed in to change notification settings - Fork 2
/
machine-setup.sh
125 lines (115 loc) · 4.23 KB
/
machine-setup.sh
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
# Create a test function for sh vs. bash detection. The name is
# randomly generated to reduce the chances of name collision.
__ms_function_name="setup__test_function__$$"
eval "$__ms_function_name() { /bin/true ; }"
# Determine which shell we are using
__ms_ksh_test=$( eval '__text="text" ; if [[ $__text =~ ^(t).* ]] ; then printf "%s" ${.sh.match[1]} ; fi' 2> /dev/null | cat )
__ms_bash_test=$( eval 'if ( set | grep '$__ms_function_name' | grep -v name > /dev/null 2>&1 ) ; then echo t ; fi ' 2> /dev/null | cat )
if [[ ! -z "$__ms_ksh_test" ]] ; then
__ms_shell=ksh
elif [[ ! -z "$__ms_bash_test" ]] ; then
__ms_shell=bash
else
# Not bash or ksh, so assume sh.
__ms_shell=sh
fi
target=""
USERNAME=`echo $LOGNAME | awk '{ print tolower($0)'}`
if [[ -d /lfs3 ]] ; then
# We are on NOAA Jet
if ( ! eval module help > /dev/null 2>&1 ) ; then
echo load the module command 1>&2
source /apps/lmod/lmod/init/$__ms_shell
fi
target=jet
module purge
export NCEPLIBS=/mnt/lfs3/projects/hfv3gfs/gwv/ljtjet/lib
echo NCEPLIBS HARD SET to $NCEPLIBS in `pwd`/module_setup.sh.inc
module use $NCEPLIBS/modulefiles
elif [[ -d /scratch1/NCEPDEV ]] ; then
# We are on NOAA Hera
if ( ! eval module help > /dev/null 2>&1 ) ; then
echo load the module command 1>&2
source /apps/lmod/lmod/init/$__ms_shell
fi
target=hera
module purge
module use /scratch2/NCEPDEV/nwprod/NCEPLIBS/modulefiles
MOD_PATH=/scratch2/NCEPDEV/nwprod/NCEPLIBS/modulefiles
elif [[ -d /gpfs/hps && -e /etc/SuSE-release ]] ; then
# We are on NOAA Luna or Surge
if ( ! eval module help > /dev/null 2>&1 ) ; then
echo load the module command 1>&2
source /opt/modules/default/init/$__ms_shell
fi
target=wcoss_cray
# Silence the "module purge" to avoid the expected error messages
# related to modules that load modules.
module purge > /dev/null 2>&1
module use /usrx/local/prod/modulefiles
module use /gpfs/hps/nco/ops/nwprod/lib/modulefiles
module use /gpfs/hps/nco/ops/nwprod/modulefiles
module use /opt/cray/alt-modulefiles
module use /opt/cray/craype/default/alt-modulefiles
module use /opt/cray/ari/modulefiles
module use /opt/modulefiles
module purge > /dev/null 2>&1
# Workaround until module issues are fixed:
unset _LMFILES_
unset LOADEDMODULES
echo y 2> /dev/null | module clear > /dev/null 2>&1
module use /usrx/local/prod/modulefiles
module use /gpfs/hps/nco/ops/nwprod/lib/modulefiles
module use /gpfs/hps/nco/ops/nwprod/modulefiles
module use /opt/cray/alt-modulefiles
module use /opt/cray/craype/default/alt-modulefiles
module use /opt/cray/ari/modulefiles
module use /opt/modulefiles
module load modules
elif [[ -L /usrx && "$( readlink /usrx 2> /dev/null )" =~ dell ]] ; then
# We are on NOAA Venus or Mars
# if ( ! eval module help > /dev/null 2>&1 ) ; then
echo load the module command 1>&2
source /usrx/local/prod/lmod/lmod/init/$__ms_shell
# fi
target=wcoss_dell_p3
module purge
elif [[ -d /dcom && -d /hwrf ]] ; then
# We are on NOAA Tide or Gyre
if ( ! eval module help > /dev/null 2>&1 ) ; then
echo load the module command 1>&2
source /usrx/local/Modules/default/init/$__ms_shell
fi
target=wcoss
module purge
elif [[ -d /glade ]] ; then
# We are on NCAR Yellowstone
if ( ! eval module help > /dev/null 2>&1 ) ; then
echo load the module command 1>&2
. /usr/share/Modules/init/$__ms_shell
fi
target=yellowstone
module purge
elif [[ -d /lustre && -d /ncrc ]] ; then
# We are on GAEA.
if ( ! eval module help > /dev/null 2>&1 ) ; then
# We cannot simply load the module command. The GAEA
# /etc/profile modifies a number of module-related variables
# before loading the module command. Without those variables,
# the module command fails. Hence we actually have to source
# /etc/profile here.
echo load the module command 1>&2
source /etc/profile
fi
target=gaea
module purge
elif [[ "$(hostname)" =~ "odin" ]]; then
target="odin"
else
echo WARNING: UNKNOWN PLATFORM 1>&2
fi
unset __ms_shell
unset __ms_ksh_test
unset __ms_bash_test
unset $__ms_function_name
unset __ms_function_name