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

Annotation 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 - (hide annotations) (download)
Thu Jul 6 18:53:03 2006 UTC (19 years ago) by dfer
Branch: MAIN
CVS Tags: HEAD
Initial check-in of the Super hyper fast version of the coupled model

1 dfer 1.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