-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathcalculate_daily_means.sh
executable file
·76 lines (64 loc) · 1.78 KB
/
calculate_daily_means.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
#!/bin/bash
#PBS -Pw85
#PBS -qnormal
#PBS -N calc_daily_mean
#PBS -m ae
#PBS -M [email protected]
#PBS -lwalltime=02:00:00
#PBS -lmem=64GB,ncpus=16,jobfs=4000MB
#PBS -W umask=0022
#PBS -v NJOBS,NJOB,YEAR
#PBS -joe
#PBS -e /home/547/cxa547/pcmin/logs/calculate_daily_means.error.log
#PBS -o /home/547/cxa547/pcmin/logs/calculate_daily_means.output.log
#PBS -lstorage=scratch/w85
module purge
module load pbs
module load dot
module load netcdf/4.6.3
module load cdo/1.9.8
module load nco/4.9.2
module load openmpi/4.0.3
# Suppresses an error related to HDF5 libraries:
export HDF5_DISABLE_VERSION_CHECK=2
ECHO=/bin/echo
SCRATCH=/scratch/$PROJECT/$USER
if [ X$NJOBS == X ]; then
$ECHO "NJOBS (total number of jobs in sequence) is not set - defaulting to 1"
export NJOBS=1
else
if [ X$NJOB == X ]; then
$ECHO "NJOBS set to $NJOBS"
fi
fi
if [ X$NJOB == X ]; then
$ECHO "NJOB (current job number in sequence) is not set - defaulting to 1"
export NJOB=1
fi
#
# Quick termination of job sequence - look for a specific file
#
if [ -f STOP_SEQUENCE ] ; then
$ECHO "Terminating sequence at job number $NJOB"
exit 0
fi
if [ X$NJOB == X1 ]; then
$ECHO "This is the first year - it's not a restart"
export YEAR=1979
else
export YEAR=$(($YEAR+1))
fi
$ECHO "Calculating daily PI for $YEAR"
cd $SCRATCH/pcmin/daily
cdo mergetime pcmin.${YEAR}????-${YEAR}????.nc pcmin.${YEAR}0101-${YEAR}1231.nc > $HOME/pcmin/logs/calculate_daily_mean.stdout.$YEAR 2>&1
if [[ $? -ne 0 ]]; then
$ECHO "The command appears to have failed for ${YEAR}"
exit 0
fi
if [ $NJOB -lt $NJOBS ]; then
NJOB=$(($NJOB+1))
$ECHO "Submitting job number $NJOB in sequence of $NJOBS jobs"
qsub -v NJOB=$NJOB,NJOBS=$NJOBS,YEAR=$YEAR ${0}
else
$ECHO "Finished last job in sequence"
fi