#! /usr/bin/env bash #PBS -N RidgeWorld #PBS -l nodes=8 #PBS -V #PBS -q four # ITRDA specific calls: . /etc/profile.d/modules.sh module add mpich/intel module add python-ext #-----------------------------------------------------------------------------# # - Load PC parameters # # - Determine stop iteration for this period # #-----------------------------------------------------------------------------# runDir=/net/ds-01/scratch-4/enderton/RidgeWorld varlist="npcpl npocn exp matscript outDir figOutDir scrDir cplmonitor \ ocnmonitor period iitO iitA \ fitO fitA nitC nitO nitA nitOonly pChkptFreq taveFreq cpl_taveFreq \ dumpFreq monitorFreq exC exO exA exOOnly cplDir ocnDir atmDir dtA \ dtO dtC" cd $runDir source pc.vars sitO=$(( $iitO + $nitO )) sitA=$(( $iitA + $nitA )) rm -f $cplmonitor echo "Coupled period!" > $cplmonitor echo "Actual start time, of script: "`date` >> $cplmonitor echo "Simulation directory: "$runDir >> $cplmonitor echo "Period: "$period >> $cplmonitor echo "Period START iteration:" >> $cplmonitor echo " Ocean "$iitO >> $cplmonitor echo " Atmosphere "$iitA >> $cplmonitor echo "Period STOP iteration:" >> $cplmonitor echo " Ocean "$sitO >> $cplmonitor echo " Atmosphere "$sitA >> $cplmonitor echo "Overall FINAL iteration:" >> $cplmonitor echo " Ocean "$fitO >> $cplmonitor echo " Atmosphere "$fitA >> $cplmonitor #-----------------------------------------------------------------------------# # - Set coupled data file, and cpl_taveFreq in the ocean data.cpl file # # - Set ocean and atmosphere data files # #-----------------------------------------------------------------------------# . $scrDir/setdatacpl $runDir/$cplDir $runDir/$ocnDir $nitC $cpl_taveFreq . $scrDir/setdata $runDir/$ocnDir $iitO $nitO $pChkptFreq \ $taveFreq $dumpFreq $monitorFreq . $scrDir/setdata $runDir/$atmDir $iitA $nitA $pChkptFreq \ $taveFreq $dumpFreq $monitorFreq #-----------------------------------------------------------------------------# # Run coupled model # #-----------------------------------------------------------------------------# nodelist=`cat $PBS_NODEFILE` rm -f pr_group; touch pr_group nc=0; type=C1 for ii in $nodelist; do echo $ii $nc $runDir/executables/mitgcmuv.$type >> pr_group if test $nc = 0 ; then type=O1 ; else type=A6 ; fi nc=1 done echo "Program goup file:" >> $cplmonitor cat pr_group >> $cplmonitor echo "Beginning model execution..." >> $cplmonitor #mpirun -p4pg pr_group -v ./executables/$exC #/usr/local/pkg/mpi/mpi-1.2.4..8a-gm-1.5/intel/bin/mpirun.ch_gm \ # -pg pr_group --gm-kill 5 -v ./executables/$exC status=$? echo "Ended with status: "$status >> $cplmonitor #-----------------------------------------------------------------------------# # Check for pickups # #-----------------------------------------------------------------------------# sitO0=`$scrDir/add0upto10c $sitO` sitA0=`$scrDir/add0upto10c $sitA` pickO=$runDir"/"$ocnDir"/pickup."$sitO0".001.001.data" pickA=$runDir"/"$atmDir"/pickup."$sitA0".001.001.data" if [ -f $pickO ]; then echo "Ocn pickup present: "$pickO >> $cplmonitor else echo "Ocn pickup not present: "$pickO >> $cplmonitor; exit; fi if [ -f $pickA ]; then echo "Atm pickup present: "$pickA >> $cplmonitor else echo "Atm pickup not present: "$pickA >> $cplmonitor; exit; fi #-----------------------------------------------------------------------------# # Move old data (just copy pickups) # #-----------------------------------------------------------------------------# #. $scrDir/movedataCpl $npcpl $runDir $ocnDir $atmDir $outDir \ # $period $sitO0 $sitA0 $cplmonitor #-----------------------------------------------------------------------------# # Make plots # #-----------------------------------------------------------------------------# dirroot=$outDir/Cpl$period matnA=$(( $taveFreq / $dtA )) matiA=$(( $iitA + $matnA )) matsA=$sitA matnO=$(( $taveFreq / $dtO )) matiO=$(( $iitO + $matnO )) matsO=$sitO matnC=$(( $cpl_taveFreq / $dtC )) matiC=$(( $iitO + $matnC )) matsC=$sitO . $scrDir/MakeDiagScript.sh $matscript $exp $runDir $dirroot \ $figOutDir $dtA $dtO \ $matiA $matnA $matsA \ $matiO $matnO $matsO \ $matiC $matnC $matsC #-----------------------------------------------------------------------------# # Reset periodic coupling parameters # #-----------------------------------------------------------------------------# iitO=$sitO iitA=$sitA period=$(( $period + 1 )) #rm -f pc.vars #for i in $varlist; do # echo $i'='`eval echo '$'$i` >> pc.vars.temp #done #mv pc.vars.temp pc.vars #-----------------------------------------------------------------------------# # Resubmit coupled model # #-----------------------------------------------------------------------------# if [ $iitO -ge $fitO ]; then echo "New iitO exceeds fitO; All done!" >> $cplmonitor; exit fi if [ $iitA -ge $fitA ]; then echo "New iitA exceeds fitA; All done!" >> $cplmonitor; exit fi qsub runCpl qsub "analysis/"$matscript"_PBS"