Index: /issm/branches/trunk-larour-SLPS2020/src/c/Makefile.am
===================================================================
--- /issm/branches/trunk-larour-SLPS2020/src/c/Makefile.am	(revision 25348)
+++ /issm/branches/trunk-larour-SLPS2020/src/c/Makefile.am	(revision 25349)
@@ -760,5 +760,5 @@
 bin_PROGRAMS =
 else
-bin_PROGRAMS = issm issm_slr
+bin_PROGRAMS = issm issm_slr issm_post
 endif
 endif
@@ -777,9 +777,12 @@
 endif
 
-issm_SOURCES = main/issm.cpp
+issm_SOURCES = main/issm.cpp 
 issm_CXXFLAGS= $(CXXFLAGS) $(CXXOPTFLAGS)
 
 issm_slr_SOURCES = main/issm_slr.cpp
 issm_slr_CXXFLAGS= $(CXXFLAGS) $(CXXOPTFLAGS)
+
+issm_post_SOURCES = main/issm_post.cpp
+issm_post_CXXFLAGS= $(CXXFLAGS) $(CXXOPTFLAGS)
 
 if OCEAN
Index: /issm/branches/trunk-larour-SLPS2020/src/c/main/issm_post.cpp
===================================================================
--- /issm/branches/trunk-larour-SLPS2020/src/c/main/issm_post.cpp	(revision 25349)
+++ /issm/branches/trunk-larour-SLPS2020/src/c/main/issm_post.cpp	(revision 25349)
@@ -0,0 +1,26 @@
+/*!\file:  issm_post.cpp
+ * \brief: ISSM POST processing main program
+ */ 
+
+#include "./issm.h"
+
+int main(int argc,char **argv){
+	
+	char* dakota_input_file=NULL;
+
+	/*Initialize MPI: */
+	ISSM_MPI_Init(&argc, &argv); // initialize MPI
+
+	/*Recover file name for dakota input file:*/
+	dakota_input_file=xNew<char>((strlen(argv[2])+strlen(argv[3])+strlen(".qmu.in")+2));
+	sprintf(dakota_input_file,"%s/%s%s",argv[2],argv[3],".qmu.in");
+
+	xDelete<char>(dakota_input_file);
+
+	/*Finalize ISSM:*/
+	ISSM_MPI_Finalize();
+
+	/*Return unix success: */
+	return 0; 
+
+}
Index: /issm/branches/trunk-larour-SLPS2020/src/c/shared/Enum/Enum.vim
===================================================================
--- /issm/branches/trunk-larour-SLPS2020/src/c/shared/Enum/Enum.vim	(revision 25348)
+++ /issm/branches/trunk-larour-SLPS2020/src/c/shared/Enum/Enum.vim	(revision 25349)
@@ -208,4 +208,5 @@
 syn keyword cConstant IndexEnum
 syn keyword cConstant InputFileNameEnum
+syn keyword cConstant DirectoryNameEnum
 syn keyword cConstant InputToDepthaverageInEnum
 syn keyword cConstant InputToDepthaverageOutEnum
@@ -1363,5 +1364,4 @@
 syn keyword cType Cfsurfacesquare
 syn keyword cType Channel
-syn keyword cType classes
 syn keyword cType Constraint
 syn keyword cType Constraints
@@ -1370,6 +1370,6 @@
 syn keyword cType ControlInput2
 syn keyword cType Covertree
+syn keyword cType DataSetParam
 syn keyword cType DatasetInput2
-syn keyword cType DataSetParam
 syn keyword cType Definition
 syn keyword cType DependentObject
@@ -1384,6 +1384,6 @@
 syn keyword cType ElementInput2
 syn keyword cType ElementMatrix
+syn keyword cType ElementVector
 syn keyword cType Elements
-syn keyword cType ElementVector
 syn keyword cType ExponentialVariogram
 syn keyword cType ExternalResult
@@ -1392,10 +1392,9 @@
 syn keyword cType Friction
 syn keyword cType Gauss
-syn keyword cType GaussianVariogram
-syn keyword cType gaussobjects
 syn keyword cType GaussPenta
 syn keyword cType GaussSeg
 syn keyword cType GaussTetra
 syn keyword cType GaussTria
+syn keyword cType GaussianVariogram
 syn keyword cType GenericExternalResult
 syn keyword cType GenericOption
@@ -1412,5 +1411,4 @@
 syn keyword cType IssmDirectApplicInterface
 syn keyword cType IssmParallelDirectApplicInterface
-syn keyword cType krigingobjects
 syn keyword cType Load
 syn keyword cType Loads
@@ -1423,5 +1421,4 @@
 syn keyword cType Matice
 syn keyword cType Matlitho
-syn keyword cType matrixobjects
 syn keyword cType MatrixParam
 syn keyword cType Misfit
@@ -1436,6 +1433,6 @@
 syn keyword cType Observations
 syn keyword cType Option
+syn keyword cType OptionUtilities
 syn keyword cType Options
-syn keyword cType OptionUtilities
 syn keyword cType Param
 syn keyword cType Parameters
@@ -1451,11 +1448,11 @@
 syn keyword cType Regionaloutput
 syn keyword cType Results
+syn keyword cType RiftStruct
 syn keyword cType Riftfront
-syn keyword cType RiftStruct
 syn keyword cType SealevelMasks
 syn keyword cType Seg
 syn keyword cType SegInput2
+syn keyword cType SegRef
 syn keyword cType Segment
-syn keyword cType SegRef
 syn keyword cType SpcDynamic
 syn keyword cType SpcStatic
@@ -1476,4 +1473,8 @@
 syn keyword cType Vertex
 syn keyword cType Vertices
+syn keyword cType classes
+syn keyword cType gaussobjects
+syn keyword cType krigingobjects
+syn keyword cType matrixobjects
 syn keyword cType AdjointBalancethickness2Analysis
 syn keyword cType AdjointBalancethicknessAnalysis
@@ -1494,6 +1495,6 @@
 syn keyword cType FreeSurfaceBaseAnalysis
 syn keyword cType FreeSurfaceTopAnalysis
+syn keyword cType GLheightadvectionAnalysis
 syn keyword cType GiaAnalysis
-syn keyword cType GLheightadvectionAnalysis
 syn keyword cType HydrologyDCEfficientAnalysis
 syn keyword cType HydrologyDCInefficientAnalysis
Index: /issm/branches/trunk-larour-SLPS2020/src/c/shared/Enum/EnumToStringx.cpp
===================================================================
--- /issm/branches/trunk-larour-SLPS2020/src/c/shared/Enum/EnumToStringx.cpp	(revision 25348)
+++ /issm/branches/trunk-larour-SLPS2020/src/c/shared/Enum/EnumToStringx.cpp	(revision 25349)
@@ -210,4 +210,5 @@
 		case IndexEnum : return "Index";
 		case InputFileNameEnum : return "InputFileName";
+		case DirectoryNameEnum : return "DirectoryName";
 		case InputToDepthaverageInEnum : return "InputToDepthaverageIn";
 		case InputToDepthaverageOutEnum : return "InputToDepthaverageOut";
Index: /issm/branches/trunk-larour-SLPS2020/src/c/shared/Enum/StringToEnumx.cpp
===================================================================
--- /issm/branches/trunk-larour-SLPS2020/src/c/shared/Enum/StringToEnumx.cpp	(revision 25348)
+++ /issm/branches/trunk-larour-SLPS2020/src/c/shared/Enum/StringToEnumx.cpp	(revision 25349)
@@ -213,4 +213,5 @@
 	      else if (strcmp(name,"Index")==0) return IndexEnum;
 	      else if (strcmp(name,"InputFileName")==0) return InputFileNameEnum;
+	      else if (strcmp(name,"DirectoryName")==0) return DirectoryNameEnum;
 	      else if (strcmp(name,"InputToDepthaverageIn")==0) return InputToDepthaverageInEnum;
 	      else if (strcmp(name,"InputToDepthaverageOut")==0) return InputToDepthaverageOutEnum;
@@ -259,9 +260,9 @@
 	      else if (strcmp(name,"MasstransportPenaltyFactor")==0) return MasstransportPenaltyFactorEnum;
 	      else if (strcmp(name,"MasstransportRequestedOutputs")==0) return MasstransportRequestedOutputsEnum;
-	      else if (strcmp(name,"MasstransportStabilization")==0) return MasstransportStabilizationEnum;
          else stage=3;
    }
    if(stage==3){
-	      if (strcmp(name,"MaterialsBeta")==0) return MaterialsBetaEnum;
+	      if (strcmp(name,"MasstransportStabilization")==0) return MasstransportStabilizationEnum;
+	      else if (strcmp(name,"MaterialsBeta")==0) return MaterialsBetaEnum;
 	      else if (strcmp(name,"MaterialsEarthDensity")==0) return MaterialsEarthDensityEnum;
 	      else if (strcmp(name,"MaterialsEffectiveconductivityAveraging")==0) return MaterialsEffectiveconductivityAveragingEnum;
@@ -382,9 +383,9 @@
 	      else if (strcmp(name,"SmbIsdensification")==0) return SmbIsdensificationEnum;
 	      else if (strcmp(name,"SmbIsfirnwarming")==0) return SmbIsfirnwarmingEnum;
-	      else if (strcmp(name,"SmbIsgraingrowth")==0) return SmbIsgraingrowthEnum;
          else stage=4;
    }
    if(stage==4){
-	      if (strcmp(name,"SmbIsmelt")==0) return SmbIsmeltEnum;
+	      if (strcmp(name,"SmbIsgraingrowth")==0) return SmbIsgraingrowthEnum;
+	      else if (strcmp(name,"SmbIsmelt")==0) return SmbIsmeltEnum;
 	      else if (strcmp(name,"SmbIsmungsm")==0) return SmbIsmungsmEnum;
 	      else if (strcmp(name,"SmbIsprecipscaled")==0) return SmbIsprecipscaledEnum;
@@ -505,9 +506,9 @@
 	      else if (strcmp(name,"BasalforcingsPicoSubShelfOceanOverturning")==0) return BasalforcingsPicoSubShelfOceanOverturningEnum;
 	      else if (strcmp(name,"BasalforcingsPicoSubShelfOceanSalinity")==0) return BasalforcingsPicoSubShelfOceanSalinityEnum;
-	      else if (strcmp(name,"BasalforcingsPicoSubShelfOceanTemp")==0) return BasalforcingsPicoSubShelfOceanTempEnum;
          else stage=5;
    }
    if(stage==5){
-	      if (strcmp(name,"BasalStressx")==0) return BasalStressxEnum;
+	      if (strcmp(name,"BasalforcingsPicoSubShelfOceanTemp")==0) return BasalforcingsPicoSubShelfOceanTempEnum;
+	      else if (strcmp(name,"BasalStressx")==0) return BasalStressxEnum;
 	      else if (strcmp(name,"BasalStressy")==0) return BasalStressyEnum;
 	      else if (strcmp(name,"BasalStress")==0) return BasalStressEnum;
@@ -628,10 +629,10 @@
 	      else if (strcmp(name,"HydrologydcMaskThawedElt")==0) return HydrologydcMaskThawedEltEnum;
 	      else if (strcmp(name,"HydrologydcMaskThawedNode")==0) return HydrologydcMaskThawedNodeEnum;
-	      else if (strcmp(name,"HydrologydcSedimentTransmitivity")==0) return HydrologydcSedimentTransmitivityEnum;
-	      else if (strcmp(name,"HydrologyDrainageRate")==0) return HydrologyDrainageRateEnum;
          else stage=6;
    }
    if(stage==6){
-	      if (strcmp(name,"HydrologyEnglacialInput")==0) return HydrologyEnglacialInputEnum;
+	      if (strcmp(name,"HydrologydcSedimentTransmitivity")==0) return HydrologydcSedimentTransmitivityEnum;
+	      else if (strcmp(name,"HydrologyDrainageRate")==0) return HydrologyDrainageRateEnum;
+	      else if (strcmp(name,"HydrologyEnglacialInput")==0) return HydrologyEnglacialInputEnum;
 	      else if (strcmp(name,"HydrologyGapHeight")==0) return HydrologyGapHeightEnum;
 	      else if (strcmp(name,"HydrologyHead")==0) return HydrologyHeadEnum;
@@ -751,10 +752,10 @@
 	      else if (strcmp(name,"SmbDz")==0) return SmbDzEnum;
 	      else if (strcmp(name,"SmbDzMin")==0) return SmbDzMinEnum;
-	      else if (strcmp(name,"SmbDzTop")==0) return SmbDzTopEnum;
-	      else if (strcmp(name,"SmbDzini")==0) return SmbDziniEnum;
          else stage=7;
    }
    if(stage==7){
-	      if (strcmp(name,"SmbEAir")==0) return SmbEAirEnum;
+	      if (strcmp(name,"SmbDzTop")==0) return SmbDzTopEnum;
+	      else if (strcmp(name,"SmbDzini")==0) return SmbDziniEnum;
+	      else if (strcmp(name,"SmbEAir")==0) return SmbEAirEnum;
 	      else if (strcmp(name,"SmbEC")==0) return SmbECEnum;
 	      else if (strcmp(name,"SmbECDt")==0) return SmbECDtEnum;
@@ -874,10 +875,10 @@
 	      else if (strcmp(name,"VyAverage")==0) return VyAverageEnum;
 	      else if (strcmp(name,"Vy")==0) return VyEnum;
-	      else if (strcmp(name,"VyMesh")==0) return VyMeshEnum;
-	      else if (strcmp(name,"VyObs")==0) return VyObsEnum;
          else stage=8;
    }
    if(stage==8){
-	      if (strcmp(name,"Vz")==0) return VzEnum;
+	      if (strcmp(name,"VyMesh")==0) return VyMeshEnum;
+	      else if (strcmp(name,"VyObs")==0) return VyObsEnum;
+	      else if (strcmp(name,"Vz")==0) return VzEnum;
 	      else if (strcmp(name,"VzFS")==0) return VzFSEnum;
 	      else if (strcmp(name,"VzHO")==0) return VzHOEnum;
@@ -997,10 +998,10 @@
 	      else if (strcmp(name,"AdjointBalancethicknessAnalysis")==0) return AdjointBalancethicknessAnalysisEnum;
 	      else if (strcmp(name,"AdjointHorizAnalysis")==0) return AdjointHorizAnalysisEnum;
-	      else if (strcmp(name,"AggressiveMigration")==0) return AggressiveMigrationEnum;
-	      else if (strcmp(name,"AmrBamg")==0) return AmrBamgEnum;
          else stage=9;
    }
    if(stage==9){
-	      if (strcmp(name,"AmrNeopz")==0) return AmrNeopzEnum;
+	      if (strcmp(name,"AggressiveMigration")==0) return AggressiveMigrationEnum;
+	      else if (strcmp(name,"AmrBamg")==0) return AmrBamgEnum;
+	      else if (strcmp(name,"AmrNeopz")==0) return AmrNeopzEnum;
 	      else if (strcmp(name,"AndroidFrictionCoefficient")==0) return AndroidFrictionCoefficientEnum;
 	      else if (strcmp(name,"Arrhenius")==0) return ArrheniusEnum;
@@ -1120,10 +1121,10 @@
 	      else if (strcmp(name,"GroundingOnly")==0) return GroundingOnlyEnum;
 	      else if (strcmp(name,"GroundinglineMassFlux")==0) return GroundinglineMassFluxEnum;
-	      else if (strcmp(name,"Gset")==0) return GsetEnum;
-	      else if (strcmp(name,"Gsl")==0) return GslEnum;
          else stage=10;
    }
    if(stage==10){
-	      if (strcmp(name,"HOApproximation")==0) return HOApproximationEnum;
+	      if (strcmp(name,"Gset")==0) return GsetEnum;
+	      else if (strcmp(name,"Gsl")==0) return GslEnum;
+	      else if (strcmp(name,"HOApproximation")==0) return HOApproximationEnum;
 	      else if (strcmp(name,"HOFSApproximation")==0) return HOFSApproximationEnum;
 	      else if (strcmp(name,"Hook")==0) return HookEnum;
@@ -1243,10 +1244,10 @@
 	      else if (strcmp(name,"Param")==0) return ParamEnum;
 	      else if (strcmp(name,"Parameters")==0) return ParametersEnum;
-	      else if (strcmp(name,"P0Array")==0) return P0ArrayEnum;
-	      else if (strcmp(name,"P0DG")==0) return P0DGEnum;
          else stage=11;
    }
    if(stage==11){
-	      if (strcmp(name,"P1DG")==0) return P1DGEnum;
+	      if (strcmp(name,"P0Array")==0) return P0ArrayEnum;
+	      else if (strcmp(name,"P0DG")==0) return P0DGEnum;
+	      else if (strcmp(name,"P1DG")==0) return P1DGEnum;
 	      else if (strcmp(name,"P1P1")==0) return P1P1Enum;
 	      else if (strcmp(name,"P1P1GLS")==0) return P1P1GLSEnum;
@@ -1366,10 +1367,10 @@
 	      else if (strcmp(name,"XYZ")==0) return XYZEnum;
 	      else if (strcmp(name,"BalancethicknessD0")==0) return BalancethicknessD0Enum;
-	      else if (strcmp(name,"BalancethicknessDiffusionCoefficient")==0) return BalancethicknessDiffusionCoefficientEnum;
-	      else if (strcmp(name,"BilinearInterp")==0) return BilinearInterpEnum;
          else stage=12;
    }
    if(stage==12){
-	      if (strcmp(name,"CalvingdevCoeff")==0) return CalvingdevCoeffEnum;
+	      if (strcmp(name,"BalancethicknessDiffusionCoefficient")==0) return BalancethicknessDiffusionCoefficientEnum;
+	      else if (strcmp(name,"BilinearInterp")==0) return BilinearInterpEnum;
+	      else if (strcmp(name,"CalvingdevCoeff")==0) return CalvingdevCoeffEnum;
 	      else if (strcmp(name,"DeviatoricStress")==0) return DeviatoricStressEnum;
 	      else if (strcmp(name,"EtaAbsGradient")==0) return EtaAbsGradientEnum;
