Index: /issm/trunk/src/m/solutions/dakota/dakota_in_data.m
===================================================================
--- /issm/trunk/src/m/solutions/dakota/dakota_in_data.m	(revision 348)
+++ /issm/trunk/src/m/solutions/dakota/dakota_in_data.m	(revision 349)
@@ -29,4 +29,9 @@
     end
     params.(fnames{i})=dparams.(fnames{i});
+end
+
+if params.direct && ...
+   isempty(params.analysis_driver)
+    params.analysis_driver='matlab';
 end
 
Index: /issm/trunk/src/m/solutions/dakota/dakota_in_params.m
===================================================================
--- /issm/trunk/src/m/solutions/dakota/dakota_in_params.m	(revision 348)
+++ /issm/trunk/src/m/solutions/dakota/dakota_in_params.m	(revision 349)
@@ -51,7 +51,4 @@
 if ~isfield(params,'direct')
     params.direct=false;
-end
-if ~params.system && ~params.fork && ~params.direct
-    params.fork=true;
 end
 if ~isfield(params,'asynchronous')
Index: /issm/trunk/src/m/solutions/dakota/dakota_in_write.m
===================================================================
--- /issm/trunk/src/m/solutions/dakota/dakota_in_write.m	(revision 348)
+++ /issm/trunk/src/m/solutions/dakota/dakota_in_write.m	(revision 349)
@@ -332,6 +332,8 @@
 fprintf(fidi,'interface,\n');
 
-if (params.system+params.fork+params.direct ~= 1)
-    error('Too few or too many interfaces selected.')
+if     ~params.system && ~params.fork && ~params.direct
+    params.fork=true;
+elseif (params.system+params.fork+params.direct > 1)
+    error('Too many interfaces selected.')
 end
 
Index: /issm/trunk/src/m/solutions/dakota/qmu.m
===================================================================
--- /issm/trunk/src/m/solutions/dakota/qmu.m	(revision 348)
+++ /issm/trunk/src/m/solutions/dakota/qmu.m	(revision 349)
@@ -50,6 +50,8 @@
 
 %create m and in files for dakota
-if ~isfield(md.qmu_params(iparams),'analysis_driver') || ...
-    isempty(md.qmu_params(iparams).analysis_driver)
+if (~isfield(md.qmu_params(iparams),'direct') || ...
+    ~md.qmu_params(iparams).direct) && ...
+   (~isfield(md.qmu_params(iparams),'analysis_driver') || ...
+    isempty(md.qmu_params(iparams).analysis_driver))
     md.qmu_params(iparams).analysis_driver=[ISSM_DIR '/src/m/solutions/dakota/cielo_ice_script.sh'];
 end
