-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathcomp-dependencies.sh
More file actions
206 lines (202 loc) · 7.27 KB
/
Copy pathcomp-dependencies.sh
File metadata and controls
206 lines (202 loc) · 7.27 KB
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
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
#!/bin/bash
#===Parameters
echo "==============================================================================="
echo "=======================EXPORTING PARAMETERS===================================="
echo 'export HOME=$(pwd)'
echo 'export DIR=${HOME}/apps/Library'
echo "export CC=gcc"
echo "export CXX=g++"
echo "export FC=gfortran"
echo "export F77=gfortran"
echo 'export apps=${HOME}/apps'
echo "export ZLIB=zlib-1.2.13"
echo "export HDF5=hdf5-1.12.2"
echo "export NTCC=netcdf-c-4.9.0"
echo "export NTCF=netcdf-fortran-4.6.0"
echo "==============================================================================="
sleep 5
export HOME=$(pwd)
export DIR=${HOME}/apps/Library
export CC=gcc
export CXX=g++
export FC=gfortran
export F77=gfortran
export apps=${HOME}/apps
export ZLIB=zlib-1.2.13
export HDF5=hdf5-1.12.2
export NTCC=netcdf-c-4.9.0
export NTCF=netcdf-fortran-4.6.0
export DT=5
echo "==============================================================================="
echo "===================CREATING DIRECTORY STRUCTURE================================"
sleep 5
#===Set directory structure
#- apps directory
if [ -d "$HOME/apps" ]; then
echo "$HOME/apps already exists!"
else
echo 'mkdir $HOME/apps'
sleep $DT
mkdir $HOME/apps
fi
#- Downloads directory
if [ -d "$HOME/apps/Downloads" ]; then
echo "$HOME/apps/Downloads already exists!"
else
echo 'mkdir $HOME/apps/Downloads'
sleep $DT
mkdir $HOME/apps/Downloads
fi
#- Library directory
if [ -d "$HOME/apps/Library" ]; then
echo "$HOME/apps/Library already exists!"
else
echo 'mkdir $HOME/apps/Library'
sleep $DT
mkdir $HOME/apps/Library
fi
echo "==============================================================================="
echo "==============================================================================="
echo "===================DOWNLOADING SOURCE BINARIES ================================"
sleep 5
#===conditionally download dependancies
#- zlib source code
if [ -f "$HOME/apps/Downloads/$ZLIB.tar.gz" ]; then
echo "$HOME/apps/Downloads/$ZLIB.tar.gz already exists!"
else
echo 'wget -q 'https://github.com/madler/zlib/releases/download/v1.2.13/zlib-1.2.13.tar.gz' -O $HOME/apps/Downloads/$ZLIB.tar.gz'
sleep $DT
wget -q 'https://github.com/madler/zlib/releases/download/v1.2.13/zlib-1.2.13.tar.gz' -O $HOME/apps/Downloads/$ZLIB.tar.gz
fi
#- HDF5 source code
if [ -f "$HOME/apps/Downloads/$HDF5.tar.gz" ]; then
echo "$HOME/apps/Downloads/$HDF5.tar.gz already exists!"
else
echo "wget -q 'https://www.hdfgroup.org/package/hdf5-1-12-2-tar-gz/?wpdmdl=16474&refresh=64d28450662021691518032' -O "'$HOME/apps/Downloads/$HDF5.tar.gz'
sleep $DT
wget -q 'https://www.hdfgroup.org/package/hdf5-1-12-2-tar-gz/?wpdmdl=16474&refresh=64d28450662021691518032' -O $HOME/apps/Downloads/$HDF5.tar.gz
fi
#- netcdf4-C source code
if [ -f "$HOME/apps/Downloads/$NTCC.tar.gz" ]; then
echo "$HOME/apps/Downloads/$NTCC.tar.gz already exists!"
else
echo 'wget -q 'https://github.com/Unidata/netcdf-c/archive/refs/tags/v4.9.0.tar.gz' -O $HOME/apps/Downloads/$NTCC.tar.gz'
sleep $DT
wget -q 'https://github.com/Unidata/netcdf-c/archive/refs/tags/v4.9.0.tar.gz' -O $HOME/apps/Downloads/$NTCC.tar.gz
fi
#- netcdf4-gfortran source code
if [ -f "$HOME/apps/Downloads/$NTCF.tar.gz" ]; then
echo "$HOME/apps/Downloads/$NTCF.tar.gz already exists!"
else
echo 'wget -q 'https://downloads.unidata.ucar.edu/netcdf-fortran/4.6.0/netcdf-fortran-4.6.0.tar.gz' -O $HOME/apps/Downloads/$NTCF.tar.gz'
sleep $DT
wget -q 'https://downloads.unidata.ucar.edu/netcdf-fortran/4.6.0/netcdf-fortran-4.6.0.tar.gz' -O $HOME/apps/Downloads/$NTCF.tar.gz
fi
#- wgrib2 source code
if [ -f "wgrib2.tgz.v3.1.2" ]; then
echo ""
else
echo 'wget -q https://ftp.cpc.ncep.noaa.gov/wd51we/wgrib2/wgrib2.tgz.v3.1.2'
sleep $DT
wget -q https://ftp.cpc.ncep.noaa.gov/wd51we/wgrib2/wgrib2.tgz.v3.1.2
echo 'tar -xzf wgrib2.tgz.v3.1.2'
tar -xzf wgrib2.tgz.v3.1.2
fi
echo "==============================================================================="
echo "==============================================================================="
echo "==========================COMPILING ZLIB======================================="
echo 'cd $HOME/apps/Downloads'
echo 'tar -xvzf ${ZLIB}.tar.gz'
echo 'cd ${ZLIB}/'
echo './configure --prefix=$DIR'
echo "make"
echo "make install"
echo "==============================================================================="
sleep 5
#===compile zlib
cd $HOME/apps/Downloads
tar -xzf ${ZLIB}.tar.gz
cd ${ZLIB}/
./configure --prefix=$DIR
make
make install
echo "==============================================================================="
echo "==========================COMPILING HDF5======================================="
echo 'cd $HOME/apps/Downloads'
echo 'tar -xvzf ${HDF5}.tar.gz'
echo 'cd ${HDF5}'
echo './configure --prefix=$DIR --with-zlib=$DIR --enable-hl --enable-fortran'
echo "make"
echo "make install"
echo "==============================================================================="
sleep 5
#===compile hdf5 library for netcdf4 functionality
cd $HOME/apps/Downloads
tar -xzf ${HDF5}.tar.gz
cd ${HDF5}
./configure --prefix=$DIR --with-zlib=$DIR --enable-hl --enable-fortran
make
make install
export HDF5=$DIR
export LD_LIBRARY_PATH=$DIR/lib:$LD_LIBRARY_PATH
echo "==============================================================================="
echo "========================COMPILING NETCDF4-C===================================="
echo 'export HDF5=$DIR'
echo 'export LD_LIBRARY_PATH=$DIR/lib:$LD_LIBRARY_PATH'
echo 'cd $HOME/apps/Downloads'
echo 'tar -xvzf ${NTCC}.tar.gz'
echo 'cd ${NTCC}/'
echo 'export CPPFLAGS=-I$DIR/include'
echo 'export LDFLAGS=-L$DIR/lib'
echo './configure --prefix=$DIR --disable-dap'
echo "make"
echo "make install"
echo "==============================================================================="
sleep 5
#===compile netcdf4-C library
cd $HOME/apps/Downloads
tar -xzf ${NTCC}.tar.gz
cd ${NTCC}/
export CPPFLAGS=-I$DIR/include
export LDFLAGS=-L$DIR/lib
./configure --prefix=$DIR --disable-dap
make
make install
export PATH=$DIR/bin:$PATH
export NETCDF=$DIR
echo "==============================================================================="
echo "========================COMPILING NETCDF4-fortran=============================="
echo 'export PATH=$DIR/bin:$PATH'
echo 'export NETCDF=$DIR'
echo 'cd $HOME/apps/Downloads'
echo 'tar -xvzf ${NTCF}.tar.gz'
echo 'cd ${NTCF}/'
echo 'export LD_LIBRARY_PATH=$DIR/lib:$LD_LIBRARY_PATH'
echo 'export CPPFLAGS=-I$DIR/include'
echo 'export LDFLAGS=-L$DIR/lib'
echo 'export LIBS="-lnetcdf -lhdf5_hl -lhdf5 -lz"'
echo './configure --prefix=$DIR --disable-shared'
echo "make check"
echo "make"
echo "make install"
echo "==============================================================================="
sleep 5
#===compile netcdf4-gfortran library
cd $HOME/apps/Downloads
tar -xzf ${NTCF}.tar.gz
cd ${NTCF}/
export LD_LIBRARY_PATH=$DIR/lib:$LD_LIBRARY_PATH
export CPPFLAGS=-I$DIR/include
export LDFLAGS=-L$DIR/lib
export LIBS="-lnetcdf -lhdf5_hl -lhdf5 -lz"
./configure --prefix=$DIR --disable-shared
make check
make
make install
#===for wgrb2 makefile
export USE_NETCDF4=$DIR/include:$DIR/lib
export USE_HDF5=$DIR/include:$DIR/lib
echo 'Edit the following in $HOME/grib2/makefile'
echo '$USE_NETCDF4: '"$DIR/include:$DIR/lib"
echo '$USE_HDF5: '"$DIR/include:$DIR/lib"
exit