Index: /issm/trunk-jpl/src/m/classes/organizer.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/organizer.py	(revision 13946)
+++ /issm/trunk-jpl/src/m/classes/organizer.py	(revision 13947)
@@ -84,5 +84,5 @@
 		#figure out if the model is there
 		if os.path.exists(path):
-			struc=loadvars({},path)
+			struc=loadvars(path)
 			name=name=[key for key in struc.iterkeys()]
 			md=struc.name[0]
@@ -171,5 +171,5 @@
 
 		#save model
-		savevars('md',md,name)
+		savevars(name,'md',md)
 	#}}}
 
Index: /issm/trunk-jpl/src/m/io/loadmodel.py
===================================================================
--- /issm/trunk-jpl/src/m/io/loadmodel.py	(revision 13946)
+++ /issm/trunk-jpl/src/m/io/loadmodel.py	(revision 13947)
@@ -21,5 +21,5 @@
 	try:
 		#recover model on file and name it md
-		struc=loadvars({},path)
+		struc=loadvars(path)
 
 		name=[key for key in struc.iterkeys()]
Index: /issm/trunk-jpl/src/m/io/loadvars.py
===================================================================
--- /issm/trunk-jpl/src/m/io/loadvars.py	(revision 13946)
+++ /issm/trunk-jpl/src/m/io/loadvars.py	(revision 13947)
@@ -9,39 +9,42 @@
 	must be supplied.  If more than one variable is specified, it may be done with
 	a list of names or a dictionary of name as keys.  The output type will correspond
-	to the input type.  All the variables in the file may be loaded by specifying an
-	empty dictionary.
+	to the input type.  All the variables in the file may be loaded by specifying only
+	the file name.
 
 	Usage:
-	   a=loadvars('a','file.dat')
-	   [a,b]=loadvars(['a','b'],'file.dat')
-	   nvdict=loadvars({'a':None,'b':None},'file.dat')
-	   nvdict=loadvars({},'file.dat')
+	   a=loadvars('shelve.dat','a')
+	   [a,b]=loadvars('shelve.dat',['a','b'])
+	   nvdict=loadvars('shelve.dat',{'a':None,'b':None})
+	   nvdict=loadvars('shelve.dat')
 
 	"""
 
+	filename=''
 	nvdict={}
-	filename=''
 
-	if   isinstance(args[0],(str,unicode)):    # (name,filename)
-		nvdict[args[0]]=None
-		if len(args) >= 2 and isinstance(args[1],(str,unicode)):
-			filename=args[1]
+	if len(args) >= 1 and isinstance(args[0],(str,unicode)):
+		filename=args[0]
+		if not filename:
+			filename='/tmp/shelve.dat'
 
-	elif isinstance(args[0],list):    # ([names],filename)
-		for name in args[0]:
+	else:
+		raise TypeError("Missing file name.")
+
+	if   len(args) >= 2 and isinstance(args[1],(str,unicode)):    # (filename,name)
+		nvdict[args[1]]=None
+
+	elif len(args) >= 2 and isinstance(args[1],list):    # (filename,[names])
+		for name in args[1]:
 			nvdict[name]=None
-		if len(args) >= 2 and isinstance(args[1],(str,unicode)):
-			filename=args[1]
 
-	elif isinstance(args[0],dict):    # ({names:values},filename)
-		nvdict=args[0]
-		if len(args) >= 2 and isinstance(args[1],(str,unicode)):
-			filename=args[1]
+	elif len(args) >= 2 and isinstance(args[1],dict):    # (filename,{names:values})
+		nvdict=args[1]
+
+	elif len(args) == 1:    #  (filename)
+		pass
 
 	else:
 		raise TypeError("Unrecognized input arguments.")
 
-	if not filename:
-		filename='/tmp/shelve.out'
 	if os.path.exists(filename):
 		print "Loading variables from file '%s'." % filename
@@ -67,12 +70,12 @@
 	my_shelf.close()
 
-	if   isinstance(args[0],(str,unicode)):    # (name,filename)
-		return nvdict[args[0]]
+	if   len(args) >= 2 and isinstance(args[1],(str,unicode)):    # (value)
+		return nvdict[args[1]]
 
-	elif isinstance(args[0],list):    # ([names],filename)
-		value=[nvdict[name] for name in args[0]]
+	elif len(args) >= 2 and isinstance(args[1],list):    # ([values])
+		value=[nvdict[name] for name in args[1]]
 		return value
 
-	elif isinstance(args[0],dict):    # ({names:values},filename)
+	elif (len(args) >= 2 and isinstance(args[1],dict)) or (len(args) == 1):    # ({names:values})
 		return nvdict
 
Index: /issm/trunk-jpl/src/m/io/savevars.py
===================================================================
--- /issm/trunk-jpl/src/m/io/savevars.py	(revision 13946)
+++ /issm/trunk-jpl/src/m/io/savevars.py	(revision 13947)
@@ -13,35 +13,35 @@
 
 	Usage:
-	   savevars('a',a,'file.dat')
-	   savevars(['a','b'],[a,b],'file.dat')
-	   savevars({'a':a,'b':b},'file.dat')
-	   savevars(globals(),'file.dat')
+	   savevars('shelve.dat','a',a)
+	   savevars('shelve.dat',['a','b'],[a,b])
+	   savevars('shelve.dat',{'a':a,'b':b})
+	   savevars('shelve.dat',globals())
 
 	"""
 
+	filename=''
 	nvdict={}
-	filename=''
 
-	if   isinstance(args[0],(str,unicode)):    # (name,value,filename)
-		nvdict[args[0]]=args[1]
-		if len(args) >= 3 and isinstance(args[2],(str,unicode)):
-			filename=args[2]
+	if len(args) >= 1 and isinstance(args[0],(str,unicode)):
+		filename=args[0]
+		if not filename:
+			filename='/tmp/shelve.dat'
 
-	elif isinstance(args[0],list):    # ([names],[values],filename)
-		for name,value in zip(args[0],args[1]):
+	else:
+		raise TypeError("Missing file name.")
+
+	if   len(args) >= 3 and isinstance(args[1],(str,unicode)):    # (filename,name,value)
+		nvdict[args[1]]=args[2]
+
+	elif len(args) >= 3 and isinstance(args[1],list) and isinstance(args[2],list):    # (filename,[names],[values])
+		for name,value in zip(args[1],args[2]):
 			nvdict[name]=value
-		if len(args) >= 3 and isinstance(args[2],(str,unicode)):
-			filename=args[2]
 
-	elif isinstance(args[0],dict):    # ({names:values},filename)
-		nvdict=args[0]
-		if len(args) >= 2 and isinstance(args[1],(str,unicode)):
-			filename=args[1]
+	elif len(args) >= 2 and isinstance(args[1],dict):    # (filename,{names:values})
+		nvdict=args[1]
 
 	else:
 		raise TypeError("Unrecognized input arguments.")
 
-	if not filename:
-		filename='/tmp/shelve.out'
 	if os.path.exists(filename):
 		print "Shelving variables to existing file '%s'." % filename
