1 |
enderton |
1.1 |
#! /usr/bin/env bash |
2 |
|
|
|
3 |
|
|
#PBS -N RidgeWorld |
4 |
|
|
#PBS -l nodes=8 |
5 |
|
|
#PBS -V |
6 |
|
|
#PBS -q four |
7 |
|
|
|
8 |
|
|
# ITRDA specific calls: |
9 |
|
|
. /etc/profile.d/modules.sh |
10 |
|
|
module add mpich/intel |
11 |
|
|
module add python-ext |
12 |
|
|
|
13 |
|
|
#-----------------------------------------------------------------------------# |
14 |
|
|
# - Load PC parameters # |
15 |
|
|
# - Determine stop iteration for this period # |
16 |
|
|
#-----------------------------------------------------------------------------# |
17 |
|
|
runDir=/net/ds-01/scratch-4/enderton/RidgeWorld |
18 |
|
|
varlist="npcpl npocn exp matscript outDir figOutDir scrDir cplmonitor \ |
19 |
|
|
ocnmonitor period iitO iitA \ |
20 |
|
|
fitO fitA nitC nitO nitA nitOonly pChkptFreq taveFreq cpl_taveFreq \ |
21 |
|
|
dumpFreq monitorFreq exC exO exA exOOnly cplDir ocnDir atmDir dtA \ |
22 |
|
|
dtO dtC" |
23 |
|
|
cd $runDir |
24 |
|
|
source pc.vars |
25 |
|
|
sitO=$(( $iitO + $nitO )) |
26 |
|
|
sitA=$(( $iitA + $nitA )) |
27 |
|
|
rm -f $cplmonitor |
28 |
|
|
echo "Coupled period!" > $cplmonitor |
29 |
|
|
echo "Actual start time, of script: "`date` >> $cplmonitor |
30 |
|
|
echo "Simulation directory: "$runDir >> $cplmonitor |
31 |
|
|
echo "Period: "$period >> $cplmonitor |
32 |
|
|
echo "Period START iteration:" >> $cplmonitor |
33 |
|
|
echo " Ocean "$iitO >> $cplmonitor |
34 |
|
|
echo " Atmosphere "$iitA >> $cplmonitor |
35 |
|
|
echo "Period STOP iteration:" >> $cplmonitor |
36 |
|
|
echo " Ocean "$sitO >> $cplmonitor |
37 |
|
|
echo " Atmosphere "$sitA >> $cplmonitor |
38 |
|
|
echo "Overall FINAL iteration:" >> $cplmonitor |
39 |
|
|
echo " Ocean "$fitO >> $cplmonitor |
40 |
|
|
echo " Atmosphere "$fitA >> $cplmonitor |
41 |
|
|
|
42 |
|
|
|
43 |
|
|
#-----------------------------------------------------------------------------# |
44 |
|
|
# - Set coupled data file, and cpl_taveFreq in the ocean data.cpl file # |
45 |
|
|
# - Set ocean and atmosphere data files # |
46 |
|
|
#-----------------------------------------------------------------------------# |
47 |
|
|
. $scrDir/setdatacpl $runDir/$cplDir $runDir/$ocnDir $nitC $cpl_taveFreq |
48 |
|
|
. $scrDir/setdata $runDir/$ocnDir $iitO $nitO $pChkptFreq \ |
49 |
|
|
$taveFreq $dumpFreq $monitorFreq |
50 |
|
|
. $scrDir/setdata $runDir/$atmDir $iitA $nitA $pChkptFreq \ |
51 |
|
|
$taveFreq $dumpFreq $monitorFreq |
52 |
|
|
|
53 |
|
|
|
54 |
|
|
#-----------------------------------------------------------------------------# |
55 |
|
|
# Run coupled model # |
56 |
|
|
#-----------------------------------------------------------------------------# |
57 |
|
|
nodelist=`cat $PBS_NODEFILE` |
58 |
|
|
rm -f pr_group; touch pr_group |
59 |
|
|
nc=0; type=C1 |
60 |
|
|
for ii in $nodelist; do |
61 |
|
|
echo $ii $nc $runDir/executables/mitgcmuv.$type >> pr_group |
62 |
|
|
if test $nc = 0 ; then type=O1 ; else type=A6 ; fi |
63 |
|
|
nc=1 |
64 |
|
|
done |
65 |
|
|
echo "Program goup file:" >> $cplmonitor |
66 |
|
|
cat pr_group >> $cplmonitor |
67 |
|
|
echo "Beginning model execution..." >> $cplmonitor |
68 |
|
|
#mpirun -p4pg pr_group -v ./executables/$exC |
69 |
|
|
#/usr/local/pkg/mpi/mpi-1.2.4..8a-gm-1.5/intel/bin/mpirun.ch_gm \ |
70 |
|
|
# -pg pr_group --gm-kill 5 -v ./executables/$exC |
71 |
|
|
status=$? |
72 |
|
|
echo "Ended with status: "$status >> $cplmonitor |
73 |
|
|
|
74 |
|
|
|
75 |
|
|
#-----------------------------------------------------------------------------# |
76 |
|
|
# Check for pickups # |
77 |
|
|
#-----------------------------------------------------------------------------# |
78 |
|
|
sitO0=`$scrDir/add0upto10c $sitO` |
79 |
|
|
sitA0=`$scrDir/add0upto10c $sitA` |
80 |
|
|
pickO=$runDir"/"$ocnDir"/pickup."$sitO0".001.001.data" |
81 |
|
|
pickA=$runDir"/"$atmDir"/pickup."$sitA0".001.001.data" |
82 |
|
|
if [ -f $pickO ]; then |
83 |
|
|
echo "Ocn pickup present: "$pickO >> $cplmonitor |
84 |
|
|
else |
85 |
|
|
echo "Ocn pickup not present: "$pickO >> $cplmonitor; exit; |
86 |
|
|
fi |
87 |
|
|
if [ -f $pickA ]; then |
88 |
|
|
echo "Atm pickup present: "$pickA >> $cplmonitor |
89 |
|
|
else |
90 |
|
|
echo "Atm pickup not present: "$pickA >> $cplmonitor; exit; |
91 |
|
|
fi |
92 |
|
|
|
93 |
|
|
|
94 |
|
|
#-----------------------------------------------------------------------------# |
95 |
|
|
# Move old data (just copy pickups) # |
96 |
|
|
#-----------------------------------------------------------------------------# |
97 |
|
|
#. $scrDir/movedataCpl $npcpl $runDir $ocnDir $atmDir $outDir \ |
98 |
|
|
# $period $sitO0 $sitA0 $cplmonitor |
99 |
|
|
|
100 |
|
|
|
101 |
|
|
|
102 |
|
|
#-----------------------------------------------------------------------------# |
103 |
|
|
# Make plots # |
104 |
|
|
#-----------------------------------------------------------------------------# |
105 |
|
|
dirroot=$outDir/Cpl$period |
106 |
|
|
|
107 |
|
|
matnA=$(( $taveFreq / $dtA )) |
108 |
|
|
matiA=$(( $iitA + $matnA )) |
109 |
|
|
matsA=$sitA |
110 |
|
|
|
111 |
|
|
matnO=$(( $taveFreq / $dtO )) |
112 |
|
|
matiO=$(( $iitO + $matnO )) |
113 |
|
|
matsO=$sitO |
114 |
|
|
|
115 |
|
|
matnC=$(( $cpl_taveFreq / $dtC )) |
116 |
|
|
matiC=$(( $iitO + $matnC )) |
117 |
|
|
matsC=$sitO |
118 |
|
|
|
119 |
|
|
. $scrDir/MakeDiagScript.sh $matscript $exp $runDir $dirroot \ |
120 |
|
|
$figOutDir $dtA $dtO \ |
121 |
|
|
$matiA $matnA $matsA \ |
122 |
|
|
$matiO $matnO $matsO \ |
123 |
|
|
$matiC $matnC $matsC |
124 |
|
|
|
125 |
|
|
|
126 |
|
|
#-----------------------------------------------------------------------------# |
127 |
|
|
# Reset periodic coupling parameters # |
128 |
|
|
#-----------------------------------------------------------------------------# |
129 |
|
|
iitO=$sitO |
130 |
|
|
iitA=$sitA |
131 |
|
|
period=$(( $period + 1 )) |
132 |
|
|
#rm -f pc.vars |
133 |
|
|
#for i in $varlist; do |
134 |
|
|
# echo $i'='`eval echo '$'$i` >> pc.vars.temp |
135 |
|
|
#done |
136 |
|
|
#mv pc.vars.temp pc.vars |
137 |
|
|
|
138 |
|
|
|
139 |
|
|
#-----------------------------------------------------------------------------# |
140 |
|
|
# Resubmit coupled model # |
141 |
|
|
#-----------------------------------------------------------------------------# |
142 |
|
|
if [ $iitO -ge $fitO ]; then |
143 |
|
|
echo "New iitO exceeds fitO; All done!" >> $cplmonitor; exit |
144 |
|
|
fi |
145 |
|
|
if [ $iitA -ge $fitA ]; then |
146 |
|
|
echo "New iitA exceeds fitA; All done!" >> $cplmonitor; exit |
147 |
|
|
fi |
148 |
|
|
qsub runCpl |
149 |
|
|
qsub "analysis/"$matscript"_PBS" |