/[MITgcm]/MITgcm_contrib/dfer/cpl_aim+ocn_fast/runCpl
ViewVC logotype

Contents of /MITgcm_contrib/dfer/cpl_aim+ocn_fast/runCpl

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.1 - (show annotations) (download)
Thu Jul 6 18:53:03 2006 UTC (19 years, 1 month ago) by dfer
Branch: MAIN
CVS Tags: HEAD
Initial check-in of the Super hyper fast version of the coupled model

1 #! /usr/bin/env bash
2
3 #PBS -N FastC24AB3
4 #PBS -q four-twelve
5 #PBS -l nodes=8
6 #PBS -V
7
8
9 # ITRDA specific calls:
10 . /etc/profile.d/modules.sh
11 module add mpich/intel
12 module add python-ext
13
14
15 #-----------------------------------------------------------------------------#
16 # - Load PC parameters #
17 # - Determine stop iteration for this period #
18 #-----------------------------------------------------------------------------#
19 runDir=/net/ds-06/scratch-0/dfer/MITgcm_cpl/verification/cpl_aim+ocn_fast/input_C24_AB3
20 varlist="npcpl npocn exp matscript outDir figOutDir scrDir cplmonitor \
21 ocnmonitor period iitO iitA fitO fitA nitC nitO nitA nitOonly \
22 pChkptFreq taveFreq cpl_taveFreq dumpFreq monitorFreq plotFreq \
23 exC exO exA exOOnly cplDir ocnDir atmDir dtA dtO dtC \
24 LocalScratch MakePlots PeriodicCoupling ocnForcingRoot gWeight"
25 cd $runDir
26 source pc.vars
27 sitO=$(($iitO+$nitO))
28 sitA=$(($iitA+$nitA))
29 iitO0=`$scrDir/add0upto10c $iitO`
30 iitA0=`$scrDir/add0upto10c $iitA`
31 sitO0=`$scrDir/add0upto10c $sitO`
32 sitA0=`$scrDir/add0upto10c $sitA`
33 rm -f $cplmonitor
34 echo "Coupled period!" > $cplmonitor
35 echo "Actual start time, of script: "`date` >> $cplmonitor
36 echo "Simulation directory: "$runDir >> $cplmonitor
37 echo "Period: "$period >> $cplmonitor
38 echo "Period START iteration:" >> $cplmonitor
39 echo " Ocean "$iitO >> $cplmonitor
40 echo " Atmosphere "$iitA >> $cplmonitor
41 echo "Period STOP iteration:" >> $cplmonitor
42 echo " Ocean "$sitO >> $cplmonitor
43 echo " Atmosphere "$sitA >> $cplmonitor
44 echo "Overall FINAL iteration:" >> $cplmonitor
45 echo " Ocean "$fitO >> $cplmonitor
46 echo " Atmosphere "$fitA >> $cplmonitor
47
48 #-----------------------------------------------------------------------------#
49 # - Set coupled data file, and cpl_taveFreq in the ocean data.cpl file #
50 # - Set ocean and atmosphere data files #
51 #-----------------------------------------------------------------------------#
52 . $scrDir/setdatacpl $runDir/$cplDir $runDir/$ocnDir $nitC $cpl_taveFreq
53 . $scrDir/setdata $runDir/$ocnDir $iitO $nitO $pChkptFreq \
54 $taveFreq $dumpFreq $monitorFreq
55 . $scrDir/setdata $runDir/$atmDir $iitA $nitA $pChkptFreq \
56 $taveFreq $dumpFreq $monitorFreq
57
58 #-----------------------------------------------------------------------------#
59 # Move pickup files to ocean rank, copy atmospheric pickup files forward #
60 #-----------------------------------------------------------------------------#
61 NpO=1
62 NpA=6
63 listO=`seq $NpO`
64 listA=`seq $(($NpO+1)) $(($NpA+$NpO))`
65 #NpO=0
66 #for xx in $listO; do
67 # NpO=`expr $NpO + 1`
68 #done
69
70 listP=`cat $PBS_NODEFILE`
71 rm -f pr_group ; touch pr_group
72 np=0 ; nc=0 ; exe=$exC ;
73 for xx in $listP; do
74 echo $xx $np $runDir/executables/$exe >> pr_group
75 if [ $nc -lt $NpO ]; then
76 exe=$exO
77 else
78 exe=$exA
79 fi
80 nc=`expr $nc + 1`
81 np=1
82 done
83 #nodelist=`cat $PBS_NODEFILE`
84 #rm -f pr_group; touch pr_group
85 #nc=0; type=C1
86 #for ii in $nodelist; do
87 # echo $ii $nc $runDir/executables/mitgcmuv.$type >> pr_group
88 # if test $nc = 0 ; then type=O1 ; else type=A6 ; fi
89 # nc=1
90 #done
91 echo "Program goup file:" >> $cplmonitor
92 cat pr_group >> $cplmonitor
93 echo "Beginning model execution..." >> $cplmonitor
94
95
96 oldper=$((period-1))
97 rm $runDir/rank_*/pickup*
98 if [ $PeriodicCoupling -eq 0 ]; then
99 cp $outDir/Cpl$oldper/Ocn/pickup.$iitO0.* $ocnDir/.
100 for tile in `seq $NpA`; do
101 tile30=`$scrDir/add0upto3c $tile`
102 cp $outDir/Cpl$oldper/Atm/pickup*$iitA0.$tile30* \
103 $runDir/rank_$((tile+$NpO))/.
104 done
105 fi
106
107 # Prepare run directories.
108 for rank in `seq 7`; do
109 if [ $rank -ge 3 ]; then
110 # rm rank_$rank/data* rank_$rank/eedata rank_$rank/*.bin
111 rm rank_$rank/data* rank_$rank/eedata
112 cp rank_2/data* rank_$rank/.
113 cp rank_2/eedata rank_$rank/.
114 # cp rank_2/*.bin rank_$rank/.
115 fi
116 done
117
118 echo "Beginning model execution..." >> $cplmonitor
119 mpirun -p4pg pr_group -v ./executables/$exC
120 status=$?
121 echo "Ended with status: "$status >> $cplmonitor
122
123 #-----------------------------------------------------------------------------#
124 # Check for pickups #
125 #-----------------------------------------------------------------------------#
126 pickO=rank_1/pickup.$sitO0.001.001.data
127 pickA=$atmDir/pickup.$sitA0.001.001.data
128 if [ -f $pickO ]; then echo "Ocn pickup present: "$pickO >> $cplmonitor
129 else echo "No Ocn pickup: "$pickO >> $cplmonitor; exit; fi
130 if [ -f $pickA ]; then echo "Atm pickup present: "$pickA >> $cplmonitor
131 else echo "No Atm pickup: "$pickA >> $cplmonitor; exit; fi
132
133 #-----------------------------------------------------------------------------#
134 # Move old data (just copy pickups) #
135 #-----------------------------------------------------------------------------#
136 . $scrDir/movedataCpl2 $npcpl $runDir $ocnDir $atmDir $outDir \
137 $period $sitO0 $sitA0 $cplmonitor $NpO $NpA
138
139 rm rank_*/pickup*
140
141 #-----------------------------------------------------------------------------#
142 # Reset periodic coupling parameters #
143 #-----------------------------------------------------------------------------#
144 source pc.vars
145 iitO=$sitO
146 iitA=$sitA
147 if [ $PeriodicCoupling -eq 0 ]; then period=$(($period+1)); fi
148 rm -f pc.vars
149 for i in $varlist; do echo $i'='`eval echo '$'$i` >> pc.vars.temp; done
150 mv pc.vars.temp pc.vars
151
152
153 #-----------------------------------------------------------------------------#
154 # Resubmit coupled model #
155 #-----------------------------------------------------------------------------#
156 if [ $iitO -ge $fitO ]; then
157 echo "New iitO exceeds fitO; All done!" >> $cplmonitor; exit; fi
158 if [ $iitA -ge $fitA ]; then
159 echo "New iitA exceeds fitA; All done!" >> $cplmonitor; exit; fi
160 if [ $PeriodicCoupling -eq 0 ]; then qsub runCpl; fi
161 if [ $PeriodicCoupling -eq 1 ]; then qsub runOcn; fi

  ViewVC Help
Powered by ViewVC 1.1.22