[cig-commits] r13997 - cs/portal/trunk/northridge/backend
leif at geodynamics.org
leif at geodynamics.org
Wed Jan 28 15:26:08 PST 2009
Author: leif
Date: 2009-01-28 15:26:08 -0800 (Wed, 28 Jan 2009)
New Revision: 13997
Modified:
cs/portal/trunk/northridge/backend/mineos.py
Log:
Incorporate the "job index" into the filenames of the generated "*.in"
input files, so that the green/syndat processes don't step on each
other. (This is the "numbering bug" I referred to earlier [r13865].)
Modified: cs/portal/trunk/northridge/backend/mineos.py
===================================================================
--- cs/portal/trunk/northridge/backend/mineos.py 2009-01-28 19:25:10 UTC (rev 13996)
+++ cs/portal/trunk/northridge/backend/mineos.py 2009-01-28 23:26:08 UTC (rev 13997)
@@ -42,13 +42,14 @@
class Mineos(object):
- def __init__(self, model, event, stations):
+ def __init__(self, model, event, stations, jobIndex):
self.bin = prefix + "/bin"
self.model = model
self.event = event
self.stations = stations
- self.green_out = None
- self.syndat_out = None
+ self.jobIndex = jobIndex
+ self.green_out = "green-%04d" % jobIndex
+ self.syndat_out = "syndat-%04d" % jobIndex
return
@@ -96,12 +97,8 @@
return
- def green(self, fmin, fmax, nsamples, db_list):
- s = open("db_list", "w")
- for dbname in db_list:
- print >>s, dbname
- s.close()
- green_in = "green.in"
+ def green(self, fmin, fmax, nsamples):
+ green_in = "green_%04d.in" % self.jobIndex
s = open(green_in, "w")
print >>s, self.stations
print >>s, "db_list"
@@ -119,7 +116,7 @@
def syndat(self, plane, datatype):
- syndat_in = "syndat.in"
+ syndat_in = "syndat_%04d.in" % self.jobIndex
s = open(syndat_in, "w")
print >>s, self.event
print >>s, plane # error in documentation!
@@ -292,7 +289,7 @@
inputFiles = [self.model, self.event] + [self.stations + suffix for suffix in [".site", ".sitechan"]]
for inputFile in inputFiles:
os.rename(inputFile, join(archiveDirName, inputFile))
-
+
self._info.log("running Mineos program suite for model '%s'" % self.model)
# Compute eigenfunctions and eigenfrequencies. For
@@ -306,9 +303,17 @@
job.arguments.extend(["--context=launchEigen", "--nodes=%d" % job.nodes])
self.scheduleJob(job)
- # compute seismograms
jobDir = os.getcwd()
os.chdir(archiveDirName)
+
+ # generate "db_list" input file
+ db_list = [mode.id for mode in enabledModes]
+ s = open("db_list", "w")
+ for dbname in db_list:
+ print >>s, dbname
+ s.close()
+
+ # compute seismograms
nStations = lineCount(self.stations + ".site")
job = self.prepareJob(self.seismoJob, *args, **kwds)
job.nodes = nStations
@@ -405,7 +410,7 @@
os.chdir(archiveDirName)
self.redirectOutput(self.indexedName("output_eigen", jobIndex) + ".txt")
- mineos = Mineos(self.model, self.event, self.stations)
+ mineos = Mineos(self.model, self.event, self.stations, jobIndex)
mode = modes[jobIndex - 1]
if not getattr(self, mode.id):
@@ -440,16 +445,13 @@
self.redirectOutput(self.indexedName("output_green_syndat", jobIndex) + ".txt")
stations = self.indexedStationsName(jobIndex)
- mineos = Mineos(self.model, self.event, stations)
- mineos.green_out = self.indexedName("green", jobIndex)
- mineos.syndat_out = self.indexedName("syndat", jobIndex)
+ mineos = Mineos(self.model, self.event, stations, jobIndex)
# green
self._info.log("running program 'green'")
fmin = self.fmin / mHz
fmax = self.fmax / mHz
- db_list = [mode.id for mode in self.enabledModes()]
- mineos.green(fmin, fmax, self.nsamples, db_list)
+ mineos.green(fmin, fmax, self.nsamples)
# creat_origin
self._info.log("running program 'creat_origin'")
More information about the CIG-COMMITS
mailing list