#!/bin/csh -fx # +-======-+ # Copyright (c) 2003-2007 United States Government as represented by # the Admistrator of the National Aeronautics and Space Administration. # All Rights Reserved. # # THIS OPEN SOURCE AGREEMENT ("AGREEMENT") DEFINES THE RIGHTS OF USE, # REPRODUCTION, DISTRIBUTION, MODIFICATION AND REDISTRIBUTION OF CERTAIN # COMPUTER SOFTWARE ORIGINALLY RELEASED BY THE UNITED STATES GOVERNMENT AS # REPRESENTED BY THE GOVERNMENT AGENCY LISTED BELOW ("GOVERNMENT AGENCY"). # THE UNITED STATES GOVERNMENT, AS REPRESENTED BY GOVERNMENT AGENCY, IS AN # INTENDED THIRD-PARTY BENEFICIARY OF ALL SUBSEQUENT DISTRIBUTIONS OR # REDISTRIBUTIONS OF THE SUBJECT SOFTWARE. ANYONE WHO USES, REPRODUCES, # DISTRIBUTES, MODIFIES OR REDISTRIBUTES THE SUBJECT SOFTWARE, AS DEFINED # HEREIN, OR ANY PART THEREOF, IS, BY THAT ACTION, ACCEPTING IN FULL THE # RESPONSIBILITIES AND OBLIGATIONS CONTAINED IN THIS AGREEMENT. # # Government Agency: National Aeronautics and Space Administration # Government Agency Original Software Designation: GSC-15354-1 # Government Agency Original Software Title: GEOS-5 GCM Modeling Software # User Registration Requested. Please Visit http://opensource.gsfc.nasa.gov # Government Agency Point of Contact for Original Software: # Dale Hithon, SRA Assistant, (301) 286-2691 # # +-======-+ # # GSI driver script. # # ------------------------------ set myname = `basename $0` # # --------------------------------- # PART I - Prepare the Enviroment # --------------------------------- setenv nymd $1 # Experiment Date setenv nhms $2 # Experiment Time setenv npes $3 # Number of PEs # Pre-Fetch Obs-Data # ------------------ set FILE = /home1/$LOGNAME/acquire_${nymd}_${nhms}.batch /bin/rm $FILE cat << _EOF_ > $FILE #!/bin/csh #PBS -l walltime=12:00:00 #PBS -l mem=2gb #PBS -l ncpus=4 #PBS -o /scr1/jimpf/$LOGNAME/acquire_${nymd}_${nhms}.out #PBS -j oe #PBS -W group_list=g2546 # /home1/ltakacs/aries/acquire ${nymd} ${nhms} exit _EOF_ ssh halem-cron << _EOF at now + 1 min < $FVHOME/.FVWORK # record working directory # MPI/OMP specific environment variables # -------------------------------------- setenv OMP_NUM_THREADS $NCPUS # Number OMP Threads (generic) set ANAX = `which gsi.x` set SACX = `which sac.x` if ( `uname -s` == "OSF1" ) then set ANAX = `which gsi.x` setenv MPIRUN_ANA "prun -t -s -n $NCPUS $ANAX" setenv MPIRUN_SAC "prun -t -s -n $NCPUS $SACX" else set ANAX = `which gsi.x` setenv MPIRUN_ANA "mpirun -prefix "\"%g\"" -np $NCPUS $ANAX" setenv MPIRUN_SAC "mpirun -prefix "\"%g\"" -np $NCPUS $SACX" endif # Make sure files are acessible # ----------------------------- umask 022 # OSF specific configuration # -------------------------- setenv KMP_STACKSIZE 64000000 # bytes setenv MP_STACK_SIZE 64000000 # bytes # Start by cleaning working directory # ----------------------------------- /bin/rm -rf $FVSSIWORK /bin/mkdir -p $FVSSIWORK # # ----------------------------------------- # PART II - Run fvSSI for 1 synoptic time # ----------------------------------------- cd $FVSSIWORK # Archive Background Files to DAS Directory and Create bkg.eta File # ----------------------------------------------------------------- @ hour = $nhms / 10000 if($hour < 10) set hour = 0$hour /bin/mv $WRKDIR/$EXPID.bkg.eta.${nymd}_${hour}z.nc4 $DASDAT /bin/mv $WRKDIR/$EXPID.bkg.sfc.${nymd}_${hour}z.nc4 $DASDAT /bin/cp $DASDAT/$EXPID.bkg.eta.${nymd}_${hour}z.nc4 $FVSSIWORK/$EXPID.bkg.eta.${nymd}.nc4 /bin/cp $DASDAT/$EXPID.bkg.sfc.${nymd}_${hour}z.nc4 $FVSSIWORK/$EXPID.bkg.sfc.${nymd}.nc4 /bin/rm $DASDIR/run/bkg.acq touch $DASDIR/run/bkg.acq echo $FVSSIWORK/$EXPID.bkg.eta.${nymd}.nc4 >> $DASDIR/run/bkg.acq echo $FVSSIWORK/$EXPID.bkg.sfc.${nymd}.nc4 >> $DASDIR/run/bkg.acq # Call GSI Analysis # ----------------- fvssi -obsclass ncep_osbuv_bufr,ncep_spssmi_bufr,ncep_sptrmm_bufr,ncep_1bamua_bufr,ncep_1bamub_bufr,ncep_1bhrs2_bufr,ncep_1bhrs3_bufr,ncep_1bmsu_bufr,ncep_prep_bufr $skipTRANSF $skipSOLVER $skipSATBIAS $FVHOME $FVWORK $FVWORK $nymd $nhms $EXPID set rc = $status if ( $rc == 100 ) then echo $myname": simulation already completed, no further job segments" exit 0 endif if ( $rc > 0 && $rc < 100 ) then mv $FVSSIWORK $FVSSIHOME/morgue # save runtime environment touch $FVSSIHOME/morgue/.no_archiving echo $myname": abnormal error condition from fvssi..." echo $myname": runtime environment saved under $FVSSIHOME/morgue" exit 1 endif # Copy Analysis File to DAS Directory # ----------------------------------- /bin/cp $DASID.ana.eta.${nymd}.nc4 $DASDAT/$EXPID.ana.eta.${nymd}_${hour}z.nc4 # # ---------------------------------------- # PART III - Data Archival # --------------------------------------- cd $FVSSIHOME/run # Move files to FVSSIHOME for archiving and/or post-processing # --------------------------------------------------------- ls -altuF $FVSSIWORK setenv PESTOROOT `dirname $FVSSIHOME` pesto -v -d $FVSSIWORK -arc silo.arc -cp /bin/mv # If simulation is done, stop here # -------------------------------- if ( $rc == 101 ) then echo $myname": simulation just completed, no further job segments" exit 0 endif # All done # -------- exit 0