From 34c905ba3c657ab15d5b5be15dd998b7011f4dde Mon Sep 17 00:00:00 2001
From: Oliver Sander <sander@dune-project.org>
Date: Wed, 29 Apr 2009 13:11:55 +0000
Subject: [PATCH] fix loads of compiler warnings by using more consts.  Patch
 by Andreas Lauser

[[Imported from SVN: r8350]]
---
 dev/ugdevices.c                 |  2 +-
 dev/ugdevices.h                 |  2 +-
 dev/xif/xgraph.c                |  8 +++---
 dev/xif/xshell.c                | 46 ++++++++++++++++-----------------
 dom/domain.h                    |  6 ++---
 dom/lgm/ansys2lgm.c             |  2 +-
 dom/lgm/lgm_domain.c            |  8 +++---
 dom/lgm/lgm_domain.h            |  2 +-
 dom/lgm/lgm_domain2d.c          |  2 +-
 dom/lgm/lgm_domain3d.c          |  4 +--
 dom/lgm/lgm_load.c              | 18 ++++++-------
 dom/lgm/lgm_load.h              |  4 +--
 dom/lgm/lgm_transfer.h          |  4 +--
 dom/lgm/lgm_transfer2d.c        |  6 ++---
 dom/lgm/lgm_transfer3d.c        |  6 ++---
 dom/lgm/ngin/ng.c               |  4 +--
 dom/lgm/ngin/ng.h               |  2 +-
 dom/lgm/ngin2d/ng.c             |  4 +--
 dom/lgm/ngin2d/ng2d.h           |  2 +-
 dom/std/std_domain.c            | 14 +++++-----
 dom/std/std_domain.h            |  8 +++---
 gm/er.c                         |  3 +++
 gm/ugio.c                       |  2 +-
 graphics/uggraph/wop.c          |  2 +-
 graphics/uggraph/wop.h          |  2 +-
 low/bio.c                       | 40 ++++++++++++++++------------
 low/bio.h                       |  2 +-
 low/ugstruct.c                  | 28 ++++++++++----------
 low/ugstruct.h                  |  2 +-
 np/algebra/ff_gen.c             |  2 +-
 np/udm/formats.c                |  2 +-
 np/udm/udm.c                    |  2 +-
 parallel/ddd/basic/io.c         |  8 +++---
 parallel/ddd/basic/lowcomm.c    | 10 +++----
 parallel/ddd/basic/lowcomm.h    |  6 ++---
 parallel/ddd/ctrl/stat.c        |  4 +--
 parallel/ddd/ddd.c              |  4 +--
 parallel/ddd/dddi.h             |  2 +-
 parallel/ddd/ident/ident.c      |  2 +-
 parallel/ddd/if/ifcreate.c      | 10 +++----
 parallel/ddd/include/ddd.h      | 16 ++++++------
 parallel/ddd/include/dddaddon.h |  4 +--
 parallel/ddd/include/dddio.h    |  8 +++---
 parallel/ddd/join/join.c        |  2 +-
 parallel/ddd/mgr/typemgr.c      |  6 ++---
 parallel/ddd/prio/pcmds.c       |  2 +-
 parallel/ddd/xfer/cmdmsg.c      |  2 +-
 parallel/ddd/xfer/cplmsg.c      |  2 +-
 parallel/ddd/xfer/ctrl.c        |  2 +-
 parallel/ddd/xfer/xfer.c        |  2 +-
 parallel/ddd/xfer/xfer.h        |  2 +-
 parallel/dddif/lb.c             |  2 +-
 parallel/dddif/parallel.h       |  2 +-
 parallel/ppif/MPI/ppif.c        |  2 +-
 parallel/ppif/ppif.h            |  4 +--
 tools/ugpfm.c                   |  2 ++
 tools/ugstl.c                   |  2 +-
 tools/xugv.c                    |  6 ++---
 ui/cmdint.c                     | 28 ++++++++++----------
 ui/cmdint.h                     |  2 +-
 ui/mmio.c                       |  2 +-
 61 files changed, 199 insertions(+), 188 deletions(-)

diff --git a/dev/ugdevices.c b/dev/ugdevices.c
index e668fde75..991018d90 100644
--- a/dev/ugdevices.c
+++ b/dev/ugdevices.c
@@ -138,7 +138,7 @@ static char RCS_ID("$Header$",UG_RCS_STRING);
    D*/
 /****************************************************************************/
 
-OUTPUTDEVICE * NS_PREFIX CreateOutputDevice (char *name)
+OUTPUTDEVICE * NS_PREFIX CreateOutputDevice (const char *name)
 {
   OUTPUTDEVICE *dev;
 
diff --git a/dev/ugdevices.h b/dev/ugdevices.h
index 850dac4c5..48a04749e 100644
--- a/dev/ugdevices.h
+++ b/dev/ugdevices.h
@@ -377,7 +377,7 @@ void              SetMuteLevel                          (INT mute);
 INT               GetMuteLevel                          (void);
 
 /* multiple output devices */
-OUTPUTDEVICE *CreateOutputDevice                (char *name);
+OUTPUTDEVICE *CreateOutputDevice                (const char *name);
 OUTPUTDEVICE *GetOutputDevice                   (const char *name);
 OUTPUTDEVICE *GetDefaultOutputDevice    (void);
 
diff --git a/dev/xif/xgraph.c b/dev/xif/xgraph.c
index b4091ba08..e3858bda6 100644
--- a/dev/xif/xgraph.c
+++ b/dev/xif/xgraph.c
@@ -1332,9 +1332,9 @@ void NS_PREFIX SetCurrentGW (GraphWindow *g)
 static int GraphOpen (GraphWindow *gw, char *window_name, int x, int y, int width, int height)
 {
   unsigned int border_width = DEFAULTBORDER;
-  char *icon_name = GRAPHICONNAME;
-  char *Fontname;
-  char *ug_name = RESOURCENAME;
+  char *icon_name = (char *) GRAPHICONNAME;
+  const char *Fontname;
+  const char *ug_name = RESOURCENAME;
   unsigned long valuemask = 0;
   static char dash_list[] = {12,24};
   XGCValues values;
@@ -1422,7 +1422,7 @@ static int GraphOpen (GraphWindow *gw, char *window_name, int x, int y, int widt
   wm_hints.icon_pixmap = gw->icon_pixmap;
   wm_hints.flags = StateHint | IconPixmapHint | InputHint;
   class_hints.res_name = prog_name;
-  class_hints.res_class = ug_name;
+  class_hints.res_class = (char*) ug_name;
   XSetWMProperties(display,gw->win,&gw->window_name,&gw->icon_name,if_argv,if_argc,
                    &size_hints,&wm_hints,&class_hints);
 
diff --git a/dev/xif/xshell.c b/dev/xif/xshell.c
index 854f2ba2d..77c699ec7 100644
--- a/dev/xif/xshell.c
+++ b/dev/xif/xshell.c
@@ -227,10 +227,10 @@ int ShellOpen (ShellWindow *sh)
   unsigned int width, height;
   int x, y, i;
   unsigned int border_width = DEFAULTBORDER;
-  char *window_name = SHELLWINNAME;
-  char *icon_name = SHELLICONNAME;
+  const char *window_name = SHELLWINNAME;
+  const char *icon_name = SHELLICONNAME;
   char *Geometry, *Fontname;
-  char *ug_name = RESOURCENAME;
+  const char *ug_name = RESOURCENAME;
   int flags;
   unsigned long valuemask = 0;
   static char dash_list[] = {12,24};
@@ -244,10 +244,10 @@ int ShellOpen (ShellWindow *sh)
   Arg args[20];
   XtTranslations NewTranslations;
   XtActionsRec actions[] = {
-    {"UpAction", UpAction},
-    {"DownAction", DownAction},
-    {"LeftAction", LeftAction},
-    {"RightAction",RightAction},
+    {(char*) "UpAction", UpAction},
+    {(char*) "DownAction", DownAction},
+    {(char*) "LeftAction", LeftAction},
+    {(char*) "RightAction",RightAction},
   };
         #endif /* USE_XAW */
 
@@ -318,20 +318,20 @@ int ShellOpen (ShellWindow *sh)
 
         #ifdef USE_XAW
   n=0;
-  XtSetArg(args[n], XtNx, x); n++;
-  XtSetArg(args[n], XtNy, y); n++;
-  XtSetArg(args[n], XtNwidth, width+sh->font_width); n++;
-  XtSetArg(args[n], XtNheight, height+sh->font_height+sh->font_info->descent); n++;
-  XtSetArg(args[n], XtNborderWidth, border_width); n++;
-  XtSetArg(args[n], XtNscrollVertical, XawtextScrollWhenNeeded); n++;
-  XtSetArg(args[n], XtNscrollHorizontal, XawtextScrollWhenNeeded); n++;
-  XtSetArg(args[n], XtNstring, sh->lineStart[0]); n++;
-  XtSetArg(args[n], XtNlength, MAXLINES*(MAXCOLS+1)); n++;
-  XtSetArg(args[n], XtNpieceSize, MAXLINES*(MAXCOLS+1)); n++;
-  XtSetArg(args[n], XtNeditType, XawtextEdit); n++;
+  XtSetArg(args[n], (char*) XtNx, x); n++;
+  XtSetArg(args[n], (char*) XtNy, y); n++;
+  XtSetArg(args[n], (char*) XtNwidth, width+sh->font_width); n++;
+  XtSetArg(args[n], (char*) XtNheight, height+sh->font_height+sh->font_info->descent); n++;
+  XtSetArg(args[n], (char*) XtNborderWidth, border_width); n++;
+  XtSetArg(args[n], (char*) XtNscrollVertical, XawtextScrollWhenNeeded); n++;
+  XtSetArg(args[n], (char*) XtNscrollHorizontal, XawtextScrollWhenNeeded); n++;
+  XtSetArg(args[n], (char*) XtNstring, sh->lineStart[0]); n++;
+  XtSetArg(args[n], (char*) XtNlength, MAXLINES*(MAXCOLS+1)); n++;
+  XtSetArg(args[n], (char*) XtNpieceSize, MAXLINES*(MAXCOLS+1)); n++;
+  XtSetArg(args[n], (char*) XtNeditType, XawtextEdit); n++;
   /* TODO: delete this, line wrapping does not work correctly
-     XtSetArg(args[n], XtNwrap,XawtextWrapLine); n++; */
-  XtSetArg(args[n], XtNfont,sh->font_info); n++;
+     XtSetArg(args[n],  XtNwrap,XawtextWrapLine); n++; */
+  XtSetArg(args[n], (char*) XtNfont,sh->font_info); n++;
   XtSetArg(args[n], XtNbackground,WhitePixel(display,screen_num)); n++;
   XtSetArg(args[n], XtNforeground,BlackPixel(display,screen_num)); n++;
 
@@ -393,12 +393,12 @@ int ShellOpen (ShellWindow *sh)
   size_hints.flags = USPosition | USSize | PMinSize;
   size_hints.min_width = DEFAULTMINX;
   size_hints.min_height = DEFAULTMINY;
-  if (XStringListToTextProperty(&window_name,1,&(sh->window_name))==0)
+  if (XStringListToTextProperty((char**) &window_name,1,&(sh->window_name))==0)
   {
     fprintf(stderr,"%s: structure alloc for window_name failed.\n",prog_name);
     exit(-1);
   }
-  if (XStringListToTextProperty(&icon_name,1,&(sh->icon_name))==0)
+  if (XStringListToTextProperty((char**) &icon_name,1,&(sh->icon_name))==0)
   {
     fprintf(stderr,"%s: structure alloc for icon_name failed.\n",prog_name);
     exit(-1);
@@ -408,7 +408,7 @@ int ShellOpen (ShellWindow *sh)
   wm_hints.icon_pixmap = sh->icon_pixmap;
   wm_hints.flags = StateHint | IconPixmapHint | InputHint;
   class_hints.res_name = prog_name;
-  class_hints.res_class = ug_name;
+  class_hints.res_class = (char*) ug_name;
   XSetWMProperties(display,sh->win,&sh->window_name,&sh->icon_name,if_argv,if_argc,
                    &size_hints,&wm_hints,&class_hints);
 
diff --git a/dom/domain.h b/dom/domain.h
index 06b71ce39..3ea4d9f4c 100644
--- a/dom/domain.h
+++ b/dom/domain.h
@@ -319,7 +319,7 @@ BVP        *BVP_GetNext           (BVP *theBVP);
  * </ul>
  */
 /****************************************************************************/
-INT BVP_Save (BVP *theBVP, char *name, char *mgname, NS_PREFIX HEAP *theHeap, INT argc, char **argv);
+INT BVP_Save (BVP *theBVP, const char *name, const char *mgname, NS_PREFIX HEAP *theHeap, INT argc, char **argv);
 
 /****************************************************************************/
 /** \brief Load a BVP
@@ -335,7 +335,7 @@ INT BVP_Save (BVP *theBVP, char *name, char *mgname, NS_PREFIX HEAP *theHeap, IN
  * </ul>
  */
 /****************************************************************************/
-BVP        *BVP_Load              (char *name, INT argc, char **argv);
+BVP        *BVP_Load              (const char *name, INT argc, char **argv);
 
 /****************************************************************************/
 /** \brief Get pointer to BVP by name
@@ -369,7 +369,7 @@ void Set_Current_BVP(BVP* theBVP);
  * </ul>
  */
 /****************************************************************************/
-BVP *BVP_Init (char *filename, NS_PREFIX HEAP *theHeap, MESH *Mesh, INT MarkKey);
+BVP *BVP_Init (const char *filename, NS_PREFIX HEAP *theHeap, MESH *Mesh, INT MarkKey);
 
 /****************************************************************************/
 /** \brief Dispose a BVP
diff --git a/dom/lgm/ansys2lgm.c b/dom/lgm/ansys2lgm.c
index b3d6f2c83..822619b63 100644
--- a/dom/lgm/ansys2lgm.c
+++ b/dom/lgm/ansys2lgm.c
@@ -1234,7 +1234,7 @@ INT ReadAnsysFile(char *filename)
     return(1);
   }
   /*An der Stelle 0 des KomponentenNamenArray den NotSet-String eintragen :*/
-  KomponentenNamenArray = "< NOT SET IN ANSYS-FILE >";
+  strcpy(KomponentenNamenArray, "< NOT SET IN ANSYS-FILE >");
 
 
 
diff --git a/dom/lgm/lgm_domain.c b/dom/lgm/lgm_domain.c
index b87b378cd..88fb131fc 100644
--- a/dom/lgm/lgm_domain.c
+++ b/dom/lgm/lgm_domain.c
@@ -117,7 +117,7 @@ LGM_PROBLEM* NS_DIM_PREFIX CreateProblem (const char *name, InitProcPtr init, Do
   return (newProblem);
 }
 
-LGM_PROBLEM* NS_DIM_PREFIX CreateProblemWithInnerBCs (char *name, InitProcPtr init, DomainSizeConfig domconfig, BndCondProcPtr BndCond, BndCondProcPtr InnerBndCond, int numOfCoefficients, CoeffProcPtr coeffs[], int numOfUserFct, UserProcPtr userfct[])
+LGM_PROBLEM* NS_DIM_PREFIX CreateProblemWithInnerBCs (const char *name, InitProcPtr init, DomainSizeConfig domconfig, BndCondProcPtr BndCond, BndCondProcPtr InnerBndCond, int numOfCoefficients, CoeffProcPtr coeffs[], int numOfUserFct, UserProcPtr userfct[])
 {
   LGM_PROBLEM *newProblem;
   int i;
@@ -164,7 +164,7 @@ LGM_PROBLEM* NS_DIM_PREFIX CreateProblemWithInnerBCs (char *name, InitProcPtr in
  */
 /****************************************************************************/
 
-static LGM_PROBLEM *Lgm_Problem_GetByName (char *name)
+static LGM_PROBLEM *Lgm_Problem_GetByName (const char *name)
 {
   return((LGM_PROBLEM *) SearchEnv(name,"/LGM_PROBLEM",theProblemVarID,theProblemDirID));
 }
@@ -203,7 +203,7 @@ BVP* NS_DIM_PREFIX BVP_GetNext (BVP *theBVP)
 }
 
 /* domain interface function: for description see domain.h */
-BVP* NS_DIM_PREFIX BVP_Init (char *name, HEAP *Heap, MESH *Mesh, INT MarkKey)
+BVP* NS_DIM_PREFIX BVP_Init (const char *name, HEAP *Heap, MESH *Mesh, INT MarkKey)
 {
   LGM_DOMAIN *theDomain;
   LGM_PROBLEM *theProblem;
@@ -316,7 +316,7 @@ INT NS_DIM_PREFIX BVP_Dispose (BVP *theBVP)
 }
 
 /* domain interface function: for description see domain.h */
-BVP* NS_DIM_PREFIX BVP_Load (char *name, INT argc, char **argv)
+BVP* NS_DIM_PREFIX BVP_Load (const char *name, INT argc, char **argv)
 {
   return (NULL);
 }
diff --git a/dom/lgm/lgm_domain.h b/dom/lgm/lgm_domain.h
index 43bf38927..bc743488c 100644
--- a/dom/lgm/lgm_domain.h
+++ b/dom/lgm/lgm_domain.h
@@ -744,7 +744,7 @@ BNDP *BNDP_InsertBndP (HEAP *Heap, BVP *aBVP, double *global);
 
 #ifndef Grape
 LGM_PROBLEM *CreateProblem (const char *name, InitProcPtr config, DomainSizeConfig domconfig, BndCondProcPtr BndCond, int numOfCoefficients, CoeffProcPtr coeffs[], int numOfUserFct, UserProcPtr userfct[]);
-LGM_PROBLEM *CreateProblemWithInnerBCs (char *name, InitProcPtr config, DomainSizeConfig domconfig, BndCondProcPtr BndCond, BndCondProcPtr InnerBndCond, int numOfCoefficients, CoeffProcPtr coeffs[], int numOfUserFct, UserProcPtr userfct[]);
+LGM_PROBLEM *CreateProblemWithInnerBCs (const char *name, InitProcPtr config, DomainSizeConfig domconfig, BndCondProcPtr BndCond, BndCondProcPtr InnerBndCond, int numOfCoefficients, CoeffProcPtr coeffs[], int numOfUserFct, UserProcPtr userfct[]);
 #endif
 INT SetBoundaryCondition (LGM_DOMAIN *theDomain, BndCondProcPtr BndCond, BndCondProcPtr InnerBndCond);
 INT SetDomainSize (LGM_DOMAIN *theDomain);
diff --git a/dom/lgm/lgm_domain2d.c b/dom/lgm/lgm_domain2d.c
index 47be1a95f..41bb102bf 100644
--- a/dom/lgm/lgm_domain2d.c
+++ b/dom/lgm/lgm_domain2d.c
@@ -1197,7 +1197,7 @@ BNDP* NS_DIM_PREFIX BNDS_CreateBndP (HEAP *Heap, BNDS *aBndS, DOUBLE *local)
 }
 
 /* domain interface function: for description see domain.h */
-INT NS_DIM_PREFIX BVP_Save (BVP *theBVP, char *name, char *mgname, HEAP *theHeap, INT argc, char **argv)
+INT NS_DIM_PREFIX BVP_Save (BVP *theBVP, const char *name, const char *mgname, HEAP *theHeap, INT argc, char **argv)
 {
   LGM_DOMAIN *lgm_domain;
   LGM_LINE *theLine, **LinePtrList;
diff --git a/dom/lgm/lgm_domain3d.c b/dom/lgm/lgm_domain3d.c
index f6cba5733..811900514 100644
--- a/dom/lgm/lgm_domain3d.c
+++ b/dom/lgm/lgm_domain3d.c
@@ -691,7 +691,7 @@ static INT PrintMeshInfo (MESH *mesh)
 }
 
 /* domain interface function: for description see domain.h */
-INT NS_DIM_PREFIX BVP_Save (BVP *theBVP, char *name, char *mgname, HEAP *theHeap, INT argc, char **argv)
+INT NS_DIM_PREFIX BVP_Save (BVP *theBVP, const char *name, const char *mgname, HEAP *theHeap, INT argc, char **argv)
 {
   UserWrite("SORRY: not implemented yet\n");
   return (1);
@@ -1645,7 +1645,7 @@ static INT Write_Line(LGM_LINE *theLine)
 }
 
 
-static INT Write_Surface(LGM_SURFACE *theSurface, char *name, char *name1)
+static INT Write_Surface(LGM_SURFACE *theSurface, const char *name, const char *name1)
 {
   INT i, id;
   FILE *stream;
diff --git a/dom/lgm/lgm_load.c b/dom/lgm/lgm_load.c
index 676081086..bdb6db260 100644
--- a/dom/lgm/lgm_load.c
+++ b/dom/lgm/lgm_load.c
@@ -89,12 +89,12 @@ USING_UG_NAMESPACE
 /*																			*/
 /****************************************************************************/
 
-typedef int (*ReadDomainProc)(HEAP *theHeap, char *filename, LGM_DOMAIN_INFO *domain_info, INT MarkKey);
+typedef int (*ReadDomainProc)(HEAP *theHeap, const char *filename, LGM_DOMAIN_INFO *domain_info, INT MarkKey);
 typedef int (*ReadSizesProc)(LGM_SIZES *lgm_sizes);
 typedef int (*ReadSubDomainProc)(int i, LGM_SUBDOMAIN_INFO *subdom_info);
 typedef int (*ReadLinesProc)(int i, LGM_LINE_INFO *line_info);
 typedef int (*ReadPointsProc)(LGM_POINT_INFO *lgm_point_info);
-typedef int (*ReadMeshProc)(char *name, HEAP *theHeap, LGM_MESH_INFO *lgm_mesh_info, INT MarkKey);
+typedef int (*ReadMeshProc)(const char *name, HEAP *theHeap, LGM_MESH_INFO *lgm_mesh_info, INT MarkKey);
 
 #if (LGM_DIM==3)
 typedef int (*ReadSurfaceProc)(int i, LGM_SURFACE_INFO *surface_info);
@@ -169,7 +169,7 @@ static char RCS_ID("$Header$",UG_RCS_STRING);
 
 #if (LGM_DIM==2)
 
-LGM_DOMAIN* NS_DIM_PREFIX LGM_LoadDomain (char *filename, char *name, HEAP *theHeap, INT DomainVarID, INT MarkKey)
+LGM_DOMAIN* NS_DIM_PREFIX LGM_LoadDomain (const char *filename, const char *name, HEAP *theHeap, INT DomainVarID, INT MarkKey)
 {
   LGM_DOMAIN *theDomain;
   LGM_DOMAIN_INFO theDomInfo;
@@ -180,7 +180,7 @@ LGM_DOMAIN* NS_DIM_PREFIX LGM_LoadDomain (char *filename, char *name, HEAP *theH
   LGM_LINE **LinePtrList;
   LGM_POINT_INFO *piptr;
   LGM_LINE_INFO theLineInfo;
-  char *p;
+  const char *p;
 
   /* set transfer functions */
   p = filename + strlen(filename) - 4;
@@ -315,7 +315,7 @@ LGM_DOMAIN* NS_DIM_PREFIX LGM_LoadDomain (char *filename, char *name, HEAP *theH
   return (theDomain);
 }
 
-INT NS_DIM_PREFIX LGM_LoadMesh (char *name, HEAP *theHeap, MESH *theMesh, LGM_DOMAIN *theDomain, INT MarkKey)
+INT NS_DIM_PREFIX LGM_LoadMesh (const char *name, HEAP *theHeap, MESH *theMesh, LGM_DOMAIN *theDomain, INT MarkKey)
 {
   INT i,j,size;
   LGM_MESH_INFO lgm_mesh_info;
@@ -326,7 +326,7 @@ INT NS_DIM_PREFIX LGM_LoadMesh (char *name, HEAP *theHeap, MESH *theMesh, LGM_DO
   if (ReadMesh==NULL) return (1);
 
   /* do the right thing */
-  if ((*ReadMesh)(name,theHeap,&lgm_mesh_info,MarkKey)) return (1);
+  if ((*ReadMesh)((char*) name,theHeap,&lgm_mesh_info,MarkKey)) return (1);
 
   /* copy mesh_info to mesh and create BNDPs */
   theMesh->mesh_status              = MESHSTAT_MESH;
@@ -642,7 +642,7 @@ INT Accel_With_Hash( LGM_DOMAIN_INFO theDomInfo,  LGM_SURFACE **SurfacePtrList ,
 
 
 
-LGM_DOMAIN* NS_DIM_PREFIX LGM_LoadDomain (char *filename, char *name, HEAP *theHeap, INT DomainVarID, INT MarkKey)
+LGM_DOMAIN* NS_DIM_PREFIX LGM_LoadDomain (const char *filename, const char *name, HEAP *theHeap, INT DomainVarID, INT MarkKey)
 {
   LGM_DOMAIN *theDomain;
   LGM_DOMAIN_INFO theDomInfo;
@@ -656,7 +656,7 @@ LGM_DOMAIN* NS_DIM_PREFIX LGM_LoadDomain (char *filename, char *name, HEAP *theH
   LGM_LINE **LinePtrList;
   LGM_SURFACE **SurfacePtrList;
   LGM_LINE_INFO theLineInfo;
-  char *p;
+  const char *p;
 
 #ifdef OCC_GEOMETRY
   occ_geom.Import_Geometry("geometry.iges");
@@ -1047,7 +1047,7 @@ LGM_DOMAIN* NS_DIM_PREFIX LGM_LoadDomain (char *filename, char *name, HEAP *theH
   return (theDomain);
 }
 
-INT NS_DIM_PREFIX LGM_LoadMesh (char *name, HEAP *theHeap, MESH *theMesh, LGM_DOMAIN *theDomain, INT MarkKey)
+INT NS_DIM_PREFIX LGM_LoadMesh (const char *name, HEAP *theHeap, MESH *theMesh, LGM_DOMAIN *theDomain, INT MarkKey)
 {
   LGM_MESH_INFO lgm_mesh_info;
   INT i;
diff --git a/dom/lgm/lgm_load.h b/dom/lgm/lgm_load.h
index 6a275b29c..4f7575d66 100644
--- a/dom/lgm/lgm_load.h
+++ b/dom/lgm/lgm_load.h
@@ -78,8 +78,8 @@ START_UGDIM_NAMESPACE
 /*																			*/
 /****************************************************************************/
 
-LGM_DOMAIN *LGM_LoadDomain      (char *filename, char *name, HEAP *theHeap, INT DomainVarID, INT MarkKey);
-INT                     LGM_LoadMesh    (char *filename, HEAP *theHeap, MESH *theMesh, LGM_DOMAIN *theDomain, INT MarkKey);
+LGM_DOMAIN *LGM_LoadDomain      (const char *filename, const char *name, HEAP *theHeap, INT DomainVarID, INT MarkKey);
+INT                     LGM_LoadMesh    (const char *filename, HEAP *theHeap, MESH *theMesh, LGM_DOMAIN *theDomain, INT MarkKey);
 INT                     InitLGMLoad             (void);
 
 
diff --git a/dom/lgm/lgm_transfer.h b/dom/lgm/lgm_transfer.h
index 0639ed04d..7530709d8 100644
--- a/dom/lgm/lgm_transfer.h
+++ b/dom/lgm/lgm_transfer.h
@@ -260,7 +260,7 @@ typedef struct lgm_mesh_info LGM_MESH_INFO;
 /*																			*/
 /****************************************************************************/
 
-int LGM_ReadDomain                      (HEAP *theHeap, char *filename, LGM_DOMAIN_INFO *domain_info, INT MarkKey);
+int LGM_ReadDomain                      (HEAP *theHeap, const char *filename, LGM_DOMAIN_INFO *domain_info, INT MarkKey);
 int LGM_ReadSizes                       (LGM_SIZES *lgm_sizes);
 int LGM_ReadSubDomain           (int i, LGM_SUBDOMAIN_INFO *subdom_info);
 int LGM_ReadLines                       (int i, LGM_LINE_INFO *line_info);
@@ -274,7 +274,7 @@ int LGM_ReadSurface             (int i, LGM_SURFACE_INFO *surface_info);
 int HGM_ReadSurface             (int i, LGM_SURFACE_INFO *surface_info);
 #endif
 
-FILE *LGM_WriteOpenFile         (char* name);
+FILE *LGM_WriteOpenFile         (const char* name);
 INT InitLGMTransfer             (void);
 
 END_UGDIM_NAMESPACE
diff --git a/dom/lgm/lgm_transfer2d.c b/dom/lgm/lgm_transfer2d.c
index 6717bd1d7..f61b66062 100644
--- a/dom/lgm/lgm_transfer2d.c
+++ b/dom/lgm/lgm_transfer2d.c
@@ -110,7 +110,7 @@ static int SkipEOL (void)
   return (0);
 }
 
-static int ReadCommentLine (char *comment)
+static int ReadCommentLine (const char *comment)
 {
   char buffer[256];
 
@@ -148,7 +148,7 @@ static int nSubdomain, nLine;
 static fpos_t filepos,filepos2,UnitInfoFilepos;
 static HEAP *theHeap;
 
-int NS_DIM_PREFIX LGM_ReadDomain (HEAP *Heap, char *filename, LGM_DOMAIN_INFO *domain_info, INT dummy)
+int NS_DIM_PREFIX LGM_ReadDomain (HEAP *Heap, const char *filename, LGM_DOMAIN_INFO *domain_info, INT dummy)
 {
   int i;
   char buffer[256];
@@ -520,7 +520,7 @@ int NS_DIM_PREFIX LGM_ReadPoints (LGM_POINT_INFO *lgm_point_info)
    D*/
 /****************************************************************************/
 
-FILE * NS_DIM_PREFIX LGM_WriteOpenFile (char* name)
+FILE * NS_DIM_PREFIX LGM_WriteOpenFile (const char* name)
 {
   FILE *stream;
 
diff --git a/dom/lgm/lgm_transfer3d.c b/dom/lgm/lgm_transfer3d.c
index 7f40ee0ca..6f652b32f 100644
--- a/dom/lgm/lgm_transfer3d.c
+++ b/dom/lgm/lgm_transfer3d.c
@@ -84,7 +84,7 @@ static int SkipEOL (void)
 }
 
 
-static int ReadCommentLine (char *comment)
+static int ReadCommentLine (const char *comment)
 {
   char buffer[256];
 
@@ -123,7 +123,7 @@ static fpos_t UnitInfoFilepos;
 static fpos_t fileposline;
 static fpos_t filepossurface;
 
-int NS_DIM_PREFIX LGM_ReadDomain (HEAP *Heap, char *filename, LGM_DOMAIN_INFO *domain_info, INT MarkKey)
+int NS_DIM_PREFIX LGM_ReadDomain (HEAP *Heap, const char *filename, LGM_DOMAIN_INFO *domain_info, INT MarkKey)
 {
   int i,i0,i1,i2;
   char buffer[256];
@@ -853,7 +853,7 @@ int NS_DIM_PREFIX LGM_ReadSurface (int dummy, LGM_SURFACE_INFO *surface_info)
    D*/
 /****************************************************************************/
 
-FILE* NS_DIM_PREFIX LGM_WriteOpenFile (char* name)
+FILE* NS_DIM_PREFIX LGM_WriteOpenFile (const char* name)
 {
   FILE *stream;
 
diff --git a/dom/lgm/ngin/ng.c b/dom/lgm/ngin/ng.c
index 9439d6e3e..1543a112e 100644
--- a/dom/lgm/ngin/ng.c
+++ b/dom/lgm/ngin/ng.c
@@ -483,11 +483,11 @@ void NS_DIM_PREFIX ngbreak (void)
   ng_abort=1;
 }
 
-int NS_DIM_PREFIX NG_ReadMesh (char *name, HEAP *Heap, LGM_MESH_INFO *theMesh, INT MarkKey)
+int NS_DIM_PREFIX NG_ReadMesh (const char *name, HEAP *Heap, LGM_MESH_INFO *theMesh, INT MarkKey)
 {
   int i,j,error;
   char ngname[128];
-  char *tmp;
+  const char *tmp;
 
   /* init */
   ng_abort=0;
diff --git a/dom/lgm/ngin/ng.h b/dom/lgm/ngin/ng.h
index 2647ebec6..eb5bf24f9 100644
--- a/dom/lgm/ngin/ng.h
+++ b/dom/lgm/ngin/ng.h
@@ -162,7 +162,7 @@ typedef struct {
 int PutBndNode (BND_NODE *BndNode);
 int PutInnerNode (INNER_NODE *InnNode);
 int PutElement (NG_ELEMENT *Elem);
-int NG_ReadMesh (char *name, HEAP *Heap, LGM_MESH_INFO *theMesh, INT MarkKey);
+int NG_ReadMesh (const char *name, HEAP *Heap, LGM_MESH_INFO *theMesh, INT MarkKey);
 
 #ifdef __USE_IN_UG__
 int NG_Init (int domainpaths_set);
diff --git a/dom/lgm/ngin2d/ng.c b/dom/lgm/ngin2d/ng.c
index 679b67999..402868911 100644
--- a/dom/lgm/ngin2d/ng.c
+++ b/dom/lgm/ngin2d/ng.c
@@ -325,11 +325,11 @@ void NS_DIM_PREFIX ngbreak (void)
   ng_abort=1;
 }
 
-int NS_DIM_PREFIX NG_ReadMesh (char *name, HEAP *Heap, LGM_MESH_INFO *theMesh, INT MarkKey)
+int NS_DIM_PREFIX NG_ReadMesh (const char *name, HEAP *Heap, LGM_MESH_INFO *theMesh, INT MarkKey)
 {
   int i,j,error;
   char ngname[128];
-  char *tmp;
+  const char *tmp;
 
   /* init */
   ng_abort=0;
diff --git a/dom/lgm/ngin2d/ng2d.h b/dom/lgm/ngin2d/ng2d.h
index 06769ddde..f094d7a49 100644
--- a/dom/lgm/ngin2d/ng2d.h
+++ b/dom/lgm/ngin2d/ng2d.h
@@ -147,7 +147,7 @@ typedef struct {
 int PutBndNode (BND_NODE *BndNode);
 int PutInnerNode (INNER_NODE *InnNode);
 int PutElement (NG_ELEMENT *Elem);
-int NG_ReadMesh (char *name, HEAP *Heap, LGM_MESH_INFO *theMesh, INT MarkKey);
+int NG_ReadMesh (const char *name, HEAP *Heap, LGM_MESH_INFO *theMesh, INT MarkKey);
 
 #ifdef __USE_IN_UG__
 int NG_Init (int domainpaths_set);
diff --git a/dom/std/std_domain.c b/dom/std/std_domain.c
index 173eec4a6..1fa583074 100644
--- a/dom/std/std_domain.c
+++ b/dom/std/std_domain.c
@@ -177,7 +177,7 @@ static INT PatchGlobal (const PATCH * p, DOUBLE * lambda, DOUBLE * global);
 /****************************************************************************/
 
 void *
-NS_DIM_PREFIX CreateProblem (char *domain, char *name, int id, ConfigProcPtr config,
+NS_DIM_PREFIX CreateProblem (const char *domain, const char *name, int id, ConfigProcPtr config,
                              int numOfCoefficients, CoeffProcPtr coeffs[],
                              int numOfUserFct, UserProcPtr userfct[])
 {
@@ -260,7 +260,7 @@ GetProblem (const char *domain, const char *name)
 /****************************************************************************/
 
 void * NS_DIM_PREFIX
-CreateBoundaryCondition (char *name, INT id, BndCondProcPtr theBndCond,
+CreateBoundaryCondition (const char *name, INT id, BndCondProcPtr theBndCond,
                          void *Data)
 {
   BOUNDARY_CONDITION *newBndCond;
@@ -777,7 +777,7 @@ CreateBoundaryValueProblem (const char *BVPName, BndCondProcPtr theBndCond,
  *//****************************************************************************/
 
 BVP *NS_DIM_PREFIX
-CreateBVP (char *BVPName, char *DomainName, char *ProblemName)
+CreateBVP (const char *BVPName, const char *DomainName, const char *ProblemName)
 {
   STD_BVP *theBVP;
   DOMAIN *theDomain;
@@ -878,7 +878,7 @@ Problem_Configure (INT argc, char **argv)
 }
 
 BVP *NS_DIM_PREFIX
-CreateBVP_Problem (char *BVPName, char *DomainName, char *ProblemName)
+CreateBVP_Problem (const char *BVPName, const char *DomainName, const char *ProblemName)
 {
   STD_BVP *theBVP;
   DOMAIN *theDomain;
@@ -1122,7 +1122,7 @@ CreateCornerPoints (HEAP * Heap, STD_BVP * theBVP, BNDP ** bndp)
 }
 
 BVP *NS_DIM_PREFIX
-BVP_Init (char *name, HEAP * Heap, MESH * Mesh, INT MarkKey)
+BVP_Init (const char *name, HEAP * Heap, MESH * Mesh, INT MarkKey)
 {
   STD_BVP *theBVP;
   DOMAIN *theDomain;
@@ -4117,7 +4117,7 @@ BNDS_Dispose (HEAP * Heap, BNDS * theBndS)
 
 /* the following interface functions are not available in std_domain.c */
 INT NS_DIM_PREFIX
-BVP_Save (BVP * theBVP, char *name, char *mgname, HEAP * theHeap, INT argc,
+BVP_Save (BVP * theBVP, const char *name, const char *mgname, HEAP * theHeap, INT argc,
           char **argv)
 {
   UserWrite ("ERROR: std domain cannot be saved\n");
@@ -4125,7 +4125,7 @@ BVP_Save (BVP * theBVP, char *name, char *mgname, HEAP * theHeap, INT argc,
 }
 
 BVP *NS_DIM_PREFIX
-BVP_Load (char *name, INT argc, char **argv)
+BVP_Load (const char *name, INT argc, char **argv)
 {
   return (NULL);
 }
diff --git a/dom/std/std_domain.h b/dom/std/std_domain.h
index 90c698b9c..61a459b00 100644
--- a/dom/std/std_domain.h
+++ b/dom/std/std_domain.h
@@ -126,25 +126,25 @@ void *CreateLinearSegment (const char *name,
 UINT GetBoundarySegmentId(BNDS* boundarySegment);
 
 /* problem definition */
-void                    *CreateProblem                       (char *domain, char *name,
+void                    *CreateProblem                       (const char *domain, const char *name,
                                                               int id, ConfigProcPtr config,
                                                               int numOfCoefficients,
                                                               CoeffProcPtr coeffs[],
                                                               int numOfUserFct,
                                                               UserProcPtr userfct[]);
 
-void *CreateBoundaryCondition (char *name, INT id,
+void *CreateBoundaryCondition (const char *name, INT id,
                                BndCondProcPtr theBndCond,
                                void *Data);
 
 BVP   *CreateBoundaryValueProblem (const char *BVPname, BndCondProcPtr theBndCond,
                                    int numOfCoeffFct, CoeffProcPtr coeffs[],
                                    int numOfUserFct, UserProcPtr userfct[]);
-BVP       *CreateBVP                              (char *BVP, char *Domain, char *Problem);
+BVP       *CreateBVP              (const char *BVP, const char *Domain, const char *Problem);
 const char *GetBVP_DomainName     (const BVP *aBVP);
 const char *GetBVP_ProblemName    (const BVP *aBVP);
 
-BVP *CreateBVP_Problem (char *BVPName, char *DomainName, char *ProblemName);
+BVP *CreateBVP_Problem (const char *BVPName, const char *DomainName, const char *ProblemName);
 
 END_UGDIM_NAMESPACE
 
diff --git a/gm/er.c b/gm/er.c
index e8f4ecdac..f3708f5cf 100644
--- a/gm/er.c
+++ b/gm/er.c
@@ -160,8 +160,11 @@ enum ER_DBG {
 #else
 #define PD_ERR(l,x,e)                   /* no debug */
 #define PD(x)                                   /* no debug */
+#ifdef PrintDebug
+#undef PrintDebug
 #define PrintDebug              printf
 #endif
+#endif
 
 /****************************************************************************/
 /*																			*/
diff --git a/gm/ugio.c b/gm/ugio.c
index 6bc081236..4e81f38e0 100644
--- a/gm/ugio.c
+++ b/gm/ugio.c
@@ -351,7 +351,7 @@ static INT SaveMultiGrid_SCR (MULTIGRID *theMG, const char *name, const char *co
   VERTEX *theVertex;
   DOUBLE *global;
   time_t Time;
-  char *fmt;
+  const char *fmt;
   char buffer[BUFFERSIZE];
   BVP_DESC theBVPDesc;
   INT i,id,move,part;
diff --git a/graphics/uggraph/wop.c b/graphics/uggraph/wop.c
index 1310eaaac..5c04015d7 100644
--- a/graphics/uggraph/wop.c
+++ b/graphics/uggraph/wop.c
@@ -942,7 +942,7 @@ static INT BulletDraw3D (DRAWINGOBJ *q);
 D*/										
 /****************************************************************************/
 
-PLOTOBJHANDLING * NS_DIM_PREFIX CreatePlotObjHandling (char *PlotObjTypeName)
+PLOTOBJHANDLING * NS_DIM_PREFIX CreatePlotObjHandling (const char *PlotObjTypeName)
 {
 	PLOTOBJHANDLING *poh;
 	INT i;
diff --git a/graphics/uggraph/wop.h b/graphics/uggraph/wop.h
index 975877489..4259073b0 100644
--- a/graphics/uggraph/wop.h
+++ b/graphics/uggraph/wop.h
@@ -504,7 +504,7 @@ INT             DrawPictureFrame                (PICTURE *thePicture, INT mode);
 INT             ErasePicture                    (PICTURE *thePicture);
 INT                     SetOrderStrategy                (INT OrderStrategy);
 
-PLOTOBJHANDLING *CreatePlotObjHandling (char *PlotObjTypeName);
+PLOTOBJHANDLING *CreatePlotObjHandling (const char *PlotObjTypeName);
 INT             Draw2D                                  (DRAWINGOBJ *q);
 INT             Draw3D                                  (DRAWINGOBJ *q);
 
diff --git a/low/bio.c b/low/bio.c
index d30c3ac89..66fb49a2b 100644
--- a/low/bio.c
+++ b/low/bio.c
@@ -67,9 +67,12 @@ USING_UG_NAMESPACE
 /*                                                                          */
 /****************************************************************************/
 
-typedef int (*RW_mint_proc)(int n, int *intList);
-typedef int (*RW_mdouble_proc)(int n, double *doubleList);
-typedef int (*RW_string_proc)(char *string);
+typedef int (*R_mint_proc)(int n, int *intList);
+typedef int (*W_mint_proc)(int n, const int *intList);
+typedef int (*R_mdouble_proc)(int n, double *doubleList);
+typedef int (*W_mdouble_proc)(int n, const double *doubleList);
+typedef int (*R_string_proc)(char *string);
+typedef int (*W_string_proc)(const char *string);
 
 /****************************************************************************/
 /*                                                                          */
@@ -92,9 +95,12 @@ static XDR xdrs;
 #endif
 
 /* low level read/write functions */
-static RW_mint_proc Read_mint, Write_mint;
-static RW_mdouble_proc Read_mdouble, Write_mdouble;
-static RW_string_proc Read_string, Write_string;
+static R_mint_proc Read_mint;
+static W_mint_proc Write_mint;
+static R_mdouble_proc Read_mdouble;
+static W_mdouble_proc Write_mdouble;
+static R_string_proc Read_string;
+static W_string_proc Write_string;
 
 /* RCS string */
 static char RCS_ID("$Header$",UG_RCS_STRING);
@@ -127,7 +133,7 @@ static int XDR_Read_mint (int n, int *intList)
   return (0);
 }
 
-static int XDR_Write_mint (int n, int *intList)
+static int XDR_Write_mint (int n, const int *intList)
 {
   int i;
 
@@ -150,13 +156,13 @@ static int XDR_Read_mdouble (int n, double *doubleList)
   return (0);
 }
 
-static int XDR_Write_mdouble (int n, double *doubleList)
+static int XDR_Write_mdouble (int n, const double *doubleList)
 {
   int i;
 
   for (i=0; i<n; i++)
   {
-    if (!xdr_double(&xdrs,&(doubleList[i]))) return (1);
+    if (!xdr_double(&xdrs,(double*) &(doubleList[i]))) return (1);
     n_byte += 8;
   }
   return (0);
@@ -180,7 +186,7 @@ static int XDR_Read_string (char *string)
   return (0);
 }
 
-static int XDR_Write_string (char *string)
+static int XDR_Write_string (const char *string)
 {
   int i,m,len;
 
@@ -214,7 +220,7 @@ static int ASCII_Read_mint (int n, int *intList)
   return (0);
 }
 
-static int ASCII_Write_mint (int n, int *intList)
+static int ASCII_Write_mint (int n, const int *intList)
 {
   int i,m;
 
@@ -236,7 +242,7 @@ static int ASCII_Read_mdouble (int n, double *doubleList)
   return (0);
 }
 
-static int ASCII_Write_mdouble (int n, double *doubleList)
+static int ASCII_Write_mdouble (int n, const double *doubleList)
 {
   int i,m;
 
@@ -268,7 +274,7 @@ static int ASCII_Read_string (char *string)
 }
 
 
-static int ASCII_Write_string (char *string)
+static int ASCII_Write_string (const char *string)
 {
   int i,m,len;
 
@@ -299,7 +305,7 @@ static int BIN_Read_mint (int n, int *intList)
   return (0);
 }
 
-static int BIN_Write_mint (int n, int *intList)
+static int BIN_Write_mint (int n, const int *intList)
 {
   if (fwrite((void*)intList,sizeof(int)*n,1,stream)!=1) return (1);
   n_byte += n*sizeof(int);
@@ -312,7 +318,7 @@ static int BIN_Read_mdouble (int n, double *doubleList)
   return (0);
 }
 
-static int BIN_Write_mdouble (int n, double *doubleList)
+static int BIN_Write_mdouble (int n, const double *doubleList)
 {
   if (fwrite((void*)doubleList,sizeof(double)*n,1,stream)!=1) return (1);
   n_byte += n*sizeof(double);
@@ -338,7 +344,7 @@ static int BIN_Read_string (char *string)
 }
 
 
-static int BIN_Write_string (char *string)
+static int BIN_Write_string (const char *string)
 {
   int i,m,len;
 
@@ -428,7 +434,7 @@ int NS_PREFIX Bio_Read_string (char *string)
   return ((*Read_string)(string));
 }
 
-int NS_PREFIX Bio_Write_string (char *string)
+int NS_PREFIX Bio_Write_string (const char *string)
 {
   return ((*Write_string)(string));
 }
diff --git a/low/bio.h b/low/bio.h
index eb5416861..bfb2e60ea 100644
--- a/low/bio.h
+++ b/low/bio.h
@@ -96,7 +96,7 @@ int Bio_Write_mint                      (int n, int *intList);
 int Bio_Read_mdouble            (int n, double *doubleList);
 int Bio_Write_mdouble           (int n, double *doubleList);
 int Bio_Read_string             (char *string);
-int Bio_Write_string            (char *string);
+int Bio_Write_string            (const char *string);
 int Bio_Jump_From                       (void);
 int Bio_Jump_To                         (void);
 int Bio_Jump                            (int dojump);
diff --git a/low/ugstruct.c b/low/ugstruct.c
index 8fac029bf..8dd60b4e0 100644
--- a/low/ugstruct.c
+++ b/low/ugstruct.c
@@ -195,7 +195,7 @@ static char nexttoken[NAMESIZE];        /* must be global for lastnameHnd ! */
  */
 /****************************************************************************/
 
-ENVDIR * NS_PREFIX FindStructDir (const char *name, char **lastnameHnd)
+ENVDIR * NS_PREFIX FindStructDir (const char *name, const char **lastnameHnd)
 {
   ENVDIR *newPath[MAXENVPATH];
   ENVDIR *theDir;
@@ -364,7 +364,7 @@ ENVDIR * NS_PREFIX FindStructure (const ENVDIR *where, const char *name)
 
 char * NS_PREFIX GetStringVar (const char *name)
 {
-  char *lastname;
+  const char *lastname;
   ENVDIR *theDir;
   STRVAR *myVar;
 
@@ -396,7 +396,7 @@ char * NS_PREFIX GetStringVar (const char *name)
 
 INT NS_PREFIX GetStringValue (const char *name, double *value)
 {
-  char *lastname;
+  const char *lastname;
   ENVDIR *theDir;
   STRVAR *myVar;
 
@@ -430,7 +430,7 @@ INT NS_PREFIX GetStringValue (const char *name, double *value)
 
 INT NS_PREFIX GetStringValueDouble (const char *name, double *value)
 {
-  char *lastname;
+  const char *lastname;
   ENVDIR *theDir;
   STRVAR *myVar;
   double val;
@@ -466,7 +466,7 @@ INT NS_PREFIX GetStringValueDouble (const char *name, double *value)
 
 INT NS_PREFIX GetStringValueInt (const char *name, int *value)
 {
-  char *lastname;
+  const char *lastname;
   ENVDIR *theDir;
   STRVAR *myVar;
   int val;
@@ -506,7 +506,7 @@ INT NS_PREFIX GetStringValueInt (const char *name, int *value)
 
 INT NS_PREFIX GetStringDOUBLEInRange (const char *name, DOUBLE min, DOUBLE max, DOUBLE *value)
 {
-  char *lastname;
+  const char *lastname;
   ENVDIR *theDir;
   STRVAR *myVar;
   double val;
@@ -543,7 +543,7 @@ INT NS_PREFIX GetStringDOUBLEInRange (const char *name, DOUBLE min, DOUBLE max,
 
 INT NS_PREFIX GetStringINTInRange (const char *name, INT min, INT max, INT *value)
 {
-  char *lastname;
+  const char *lastname;
   ENVDIR *theDir;
   STRVAR *myVar;
   int val;
@@ -712,7 +712,7 @@ ENVITEM * NS_PREFIX MakeStructItem (ENVDIR *where, const char *name, INT type, I
 
 INT NS_PREFIX MakeStruct (const char *name)
 {
-  char *lastname;
+  const char *lastname;
   ENVDIR *theDir,*theStruct;
 
   if ((theDir=FindStructDir(name,&lastname))==NULL) return(1);
@@ -744,7 +744,7 @@ INT NS_PREFIX MakeStruct (const char *name)
 
 INT NS_PREFIX DeleteStruct (const char *name)
 {
-  char *lastname;
+  const char *lastname;
   ENVDIR *theDir,*theStruct;
 
   if ((theDir=FindStructDir(name,&lastname))==NULL)
@@ -823,7 +823,7 @@ INT NS_PREFIX RemoveStringVar (ENVDIR *homeDir, STRVAR *theVar)
 
 INT NS_PREFIX DeleteVariable (const char *name)
 {
-  char *lastname;
+  const char *lastname;
   ENVDIR *theDir;
   STRVAR *myVar;
 
@@ -865,7 +865,7 @@ INT NS_PREFIX DeleteVariable (const char *name)
 
 INT NS_PREFIX SetStringVar (const char *name, const char *sval)
 {
-  char *lastname;
+  const char *lastname;
   ENVDIR *theDir;
   STRVAR *myVar;
 
@@ -919,7 +919,7 @@ INT NS_PREFIX SetStringVar (const char *name, const char *sval)
 
 INT NS_PREFIX SetnStringVar (const char *name, const char *sval, int n)
 {
-  char *lastname;
+  const char *lastname;
   ENVDIR *theDir;
   STRVAR *myVar;
 
@@ -969,7 +969,7 @@ INT NS_PREFIX SetnStringVar (const char *name, const char *sval, int n)
 
 INT NS_PREFIX SetStringVarNotify (const char *name, const char *sval)
 {
-  char *lastname;
+  const char *lastname;
   ENVDIR *theDir;
   STRVAR *myVar;
   int notify = SV_NOT_CHANGED;
@@ -1351,7 +1351,7 @@ INT NS_PREFIX PrintStructContents (const char *name, char *buffer, int bufLen, i
   static ENVDIR *theDir;
   static STRVAR *StrVar;
   static int status;
-  char *lastname;
+  const char *lastname;
   int ret;
 
   buffer[0]=(char) 0;
diff --git a/low/ugstruct.h b/low/ugstruct.h
index f954a21ab..1fa9f4e7e 100644
--- a/low/ugstruct.h
+++ b/low/ugstruct.h
@@ -87,7 +87,7 @@ INT      MakeStruct                             (const char *name);
 INT      DeleteStruct                           (const char *name);
 INT      DeleteVariable                         (const char *name);
 ENVDIR  *ChangeStructDir                        (const char *s);
-ENVDIR  *FindStructDir                          (const char *name, char **lastnameHnd);
+ENVDIR  *FindStructDir                          (const char *name, const char **lastnameHnd);
 STRVAR  *FindStringVar                          (const ENVDIR *where, const char *name);
 ENVDIR  *FindStructure                          (const ENVDIR *where, const char *name);
 INT              RemoveStringVar                        (ENVDIR *homeDir, STRVAR *theVar);
diff --git a/np/algebra/ff_gen.c b/np/algebra/ff_gen.c
index 853072dc8..b078d9b92 100644
--- a/np/algebra/ff_gen.c
+++ b/np/algebra/ff_gen.c
@@ -527,7 +527,7 @@ void NS_DIM_PREFIX printPatternBS( const BLOCKVECTOR *bv_row, const BLOCKVECTOR
 
 #ifdef __BLOCK_VECTOR_DESC__
 
-static void printBVrec( BLOCKVECTOR *bv_first, char *indent, const BV_DESC *bvd_parent, const BV_DESC_FORMAT *bvdf )
+static void printBVrec( BLOCKVECTOR *bv_first, const char *indent, const BV_DESC *bvd_parent, const BV_DESC_FORMAT *bvdf )
 {
   register VECTOR *v;
   BLOCKVECTOR *bv;
diff --git a/np/udm/formats.c b/np/udm/formats.c
index 3389d76f0..f1b47e427 100644
--- a/np/udm/formats.c
+++ b/np/udm/formats.c
@@ -706,7 +706,7 @@ INT NS_DIM_PREFIX FreeMatDescCmd (MULTIGRID *theMG, INT argc, char **argv)
 static VEC_TEMPLATE *CreateVecTemplate (const char *name)
 {
   VEC_TEMPLATE *vt;
-  char *token;
+  const char *token;
   INT j;
 
   if (name == NULL) REP_ERR_RETURN_PTR (NULL);
diff --git a/np/udm/udm.c b/np/udm/udm.c
index 78af2fe47..beb3cd2bc 100644
--- a/np/udm/udm.c
+++ b/np/udm/udm.c
@@ -4812,7 +4812,7 @@ INT NS_DIM_PREFIX SwapPartSkipflags (INT fl, INT tl, const VECDATA_DESC *vdg, co
 
 INT NS_DIM_PREFIX InitUserDataManager ()
 {
-  char *names;
+  const char *names;
   INT i;
 
   MatrixDirID = GetNewEnvDirID();
diff --git a/parallel/ddd/basic/io.c b/parallel/ddd/basic/io.c
index b7291ee4b..10662b8b2 100644
--- a/parallel/ddd/basic/io.c
+++ b/parallel/ddd/basic/io.c
@@ -38,7 +38,7 @@ USING_PPIF_NAMESPACE
 
 START_UGDIM_NAMESPACE
 
-void (*DDD_UserLineOutFunction)(char *s);
+void (*DDD_UserLineOutFunction)(const char *s);
 
 
 
@@ -65,7 +65,7 @@ RCSID("$Header$",DDD_RCS_STRING)
 /*                                                                          */
 /****************************************************************************/
 
-void DDD_PrintLine (char *s)
+void DDD_PrintLine (const char *s)
 {
   /* newline character will be included in s */
 
@@ -131,7 +131,7 @@ void DDD_SyncAll (void)
 /*                                                                          */
 /****************************************************************************/
 
-void DDD_PrintDebug (char *s)
+void DDD_PrintDebug (const char *s)
 {
   /* newline character will be included in s */
 
@@ -155,7 +155,7 @@ void DDD_PrintDebug (char *s)
 /*                                                                          */
 /****************************************************************************/
 
-void DDD_PrintError (char error_class, int error_no, char *text)
+void DDD_PrintError (char error_class, int error_no, const char *text)
 {
   char buffer[256];
   char classText[32];
diff --git a/parallel/ddd/basic/lowcomm.c b/parallel/ddd/basic/lowcomm.c
index 0ae9ee009..0e9fb1937 100644
--- a/parallel/ddd/basic/lowcomm.c
+++ b/parallel/ddd/basic/lowcomm.c
@@ -116,7 +116,7 @@ enum CompType {
 
 typedef struct _COMP_DESC
 {
-  char *name;               /* textual description of component */
+  const char *name;               /* textual description of component */
   int type;                    /* type of this component */
   size_t entry_size;           /* size per entry (for tables) */
 } COMP_DESC;
@@ -124,7 +124,7 @@ typedef struct _COMP_DESC
 
 typedef struct _MSG_TYPE
 {
-  char *name;                      /* textual description of msgtype */
+  const char *name;                      /* textual description of msgtype */
   int nComps;                            /* number of components */
   COMP_DESC comp[MAX_COMPONENTS];        /* component array */
 
@@ -790,7 +790,7 @@ static RETCODE LC_PrepareRecv (void)
         and logging output.
  */
 
-LC_MSGTYPE LC_NewMsgType (char *aName)
+LC_MSGTYPE LC_NewMsgType (const char *aName)
 {
   MSG_TYPE *mt;
 
@@ -835,7 +835,7 @@ LC_MSGTYPE LC_NewMsgType (char *aName)
    @param  aMsgType  previously declared message-type
  */
 
-LC_MSGCOMP LC_NewMsgChunk (char *aName, LC_MSGTYPE aMsgType)
+LC_MSGCOMP LC_NewMsgChunk (const char *aName, LC_MSGTYPE aMsgType)
 {
   MSG_TYPE  *mtyp = (MSG_TYPE *)aMsgType;
   LC_MSGCOMP id = mtyp->nComps++;
@@ -884,7 +884,7 @@ LC_MSGCOMP LC_NewMsgChunk (char *aName, LC_MSGTYPE aMsgType)
    @param  aSize     size of each table entry (in byte)
  */
 
-LC_MSGCOMP LC_NewMsgTable (char *aName, LC_MSGTYPE aMsgType, size_t aSize)
+LC_MSGCOMP LC_NewMsgTable (const char *aName, LC_MSGTYPE aMsgType, size_t aSize)
 {
   MSG_TYPE  *mtyp = (MSG_TYPE *)aMsgType;
   LC_MSGCOMP id = mtyp->nComps++;
diff --git a/parallel/ddd/basic/lowcomm.h b/parallel/ddd/basic/lowcomm.h
index 409fa7adb..439046b02 100644
--- a/parallel/ddd/basic/lowcomm.h
+++ b/parallel/ddd/basic/lowcomm.h
@@ -88,9 +88,9 @@ void  LC_SetMemMgrRecv (AllocFunc,FreeFunc);
 void  LC_SetMemMgrDefault (void);
 
 
-LC_MSGTYPE LC_NewMsgType (char *);
-LC_MSGCOMP LC_NewMsgTable (char *, LC_MSGTYPE, size_t);
-LC_MSGCOMP LC_NewMsgChunk (char *, LC_MSGTYPE);
+LC_MSGTYPE LC_NewMsgType (const char *);
+LC_MSGCOMP LC_NewMsgTable (const char *, LC_MSGTYPE, size_t);
+LC_MSGCOMP LC_NewMsgChunk (const char *, LC_MSGTYPE);
 
 void       LC_MsgSend (LC_MSGHANDLE);
 
diff --git a/parallel/ddd/ctrl/stat.c b/parallel/ddd/ctrl/stat.c
index ae781d549..f24f58cf6 100644
--- a/parallel/ddd/ctrl/stat.c
+++ b/parallel/ddd/ctrl/stat.c
@@ -110,13 +110,13 @@ long DDD_StatCount (int module, int index)
 
 
 
-char *DDD_StatClockDesc (int module, int index)
+const char *DDD_StatClockDesc (int module, int index)
 {
   STAT_SET_MODULE(module);
   return("<NIY>");
 }
 
-char *DDD_StatCountDesc (int module, int index)
+const char *DDD_StatCountDesc (int module, int index)
 {
   STAT_SET_MODULE(module);
   return("<NIY>");
diff --git a/parallel/ddd/ddd.c b/parallel/ddd/ddd.c
index ef0043893..82be03fda 100644
--- a/parallel/ddd/ddd.c
+++ b/parallel/ddd/ddd.c
@@ -399,10 +399,10 @@ void DDD_Library::Status (void)
 #endif
 
 #ifdef C_FRONTEND
-void DDD_LineOutRegister (void (*func)(char *s))
+void DDD_LineOutRegister (void (*func)(const char *s))
 #endif
 #ifdef CPP_FRONTEND
-void DDD_Library::LineOutRegister (void (*func)(char *))
+void DDD_Library::LineOutRegister (void (*func)(const char *))
 #endif
 #if defined(C_FRONTEND) || defined(CPP_FRONTEND)
 {
diff --git a/parallel/ddd/dddi.h b/parallel/ddd/dddi.h
index 32f469d7d..dde252e3f 100644
--- a/parallel/ddd/dddi.h
+++ b/parallel/ddd/dddi.h
@@ -273,7 +273,7 @@ typedef struct _ELEM_DESC
 typedef struct _TYPE_DESC
 {
   int mode;                             /* current TypeMode (DECLARE/DEFINE)    */
-  char  *name;                       /* textual object description           */
+  const char  *name;                       /* textual object description           */
   int currTypeDefCall;                  /* number of current call to TypeDefine */
 
 #ifdef CPP_FRONTEND
diff --git a/parallel/ddd/ident/ident.c b/parallel/ddd/ident/ident.c
index a307a9d20..a09045f0a 100644
--- a/parallel/ddd/ident/ident.c
+++ b/parallel/ddd/ident/ident.c
@@ -305,7 +305,7 @@ static int identMode;
         and recovery.
  */
 
-static char *IdentModeName (int mode)
+static const char *IdentModeName (int mode)
 {
   switch(mode)
   {
diff --git a/parallel/ddd/if/ifcreate.c b/parallel/ddd/if/ifcreate.c
index 71194ddda..52e7def73 100644
--- a/parallel/ddd/if/ifcreate.c
+++ b/parallel/ddd/if/ifcreate.c
@@ -626,7 +626,7 @@ DDD_IF DDD_IFDefine (
 {
 #endif
 #ifdef CPP_FRONTEND
-DDD_Interface::DDD_Interface (DDD_TYPE t, DDD_PRIO p1, DDD_PRIO p2, char* name)
+DDD_Interface::DDD_Interface (DDD_TYPE t, DDD_PRIO p1, DDD_PRIO p2, const char* name)
 {
   Init(1, &t, 1, &p1, 1, &p2, name);
 }
@@ -635,7 +635,7 @@ DDD_Interface::DDD_Interface (
   int nO, DDD_TYPE O[],
   int nA, DDD_PRIO A[],
   int nB, DDD_PRIO B[],
-  char *name)
+  const char *name)
 {
   Init(nO, O, nA, A, nB, B, name);
 }
@@ -644,7 +644,7 @@ void DDD_Interface::Init (
   int nO, DDD_TYPE O[],
   int nA, DDD_PRIO A[],
   int nB, DDD_PRIO B[],
-  char *name)
+  const char *name)
 {
   _id = nIFs;
 #endif
@@ -780,11 +780,11 @@ static void StdIFDefine (void)
 
 
 #ifdef C_FRONTEND
-void DDD_IFSetName (DDD_IF ifId, char *name)
+void DDD_IFSetName (DDD_IF ifId, const char *name)
 {
 #endif
 #ifdef CPP_FRONTEND
-void DDD_Interface::SetName (char *name)
+void DDD_Interface::SetName (const char *name)
 {
   DDD_IF ifId = _id;
 #endif
diff --git a/parallel/ddd/include/ddd.h b/parallel/ddd/include/ddd.h
index e679e107f..695a3f6b3 100644
--- a/parallel/ddd/include/ddd.h
+++ b/parallel/ddd/include/ddd.h
@@ -535,11 +535,11 @@ public:
   }
 
   /// redirect DDD stdout by registering callback function
-  void LineOutRegister (void (*func)(char *s));
+  void LineOutRegister (void (*func)(const char *s));
 
   // from TypeManager
-  DDD_TYPE TypeDeclareStruct (char* n="");
-  DDD_TYPE TypeDeclare (char* n="")
+  DDD_TYPE TypeDeclareStruct (const char* n="");
+  DDD_TYPE TypeDeclare (const char* n="")
   {
     return TypeDeclareStruct(n);
   }
@@ -884,7 +884,7 @@ public:
   DDD_Interface (int, DDD_TYPE O[],
                  int, DDD_PRIO A[], int, DDD_PRIO B[], char* n="");
   DDD_Interface (DDD_TYPE, DDD_PRIO, DDD_PRIO, char* n="");
-  void SetName (char *);
+  void SetName (const char *);
 
   static void DisplayAll (void);
   void Display (void);
@@ -945,7 +945,7 @@ DDD_PROC DDD_InfoProcs (void);
         Redirect line-oriented output, new in V1.2
  */
 #if defined(C_FRONTEND)
-void     DDD_LineOutRegister (void (*func)(char *s));
+void     DDD_LineOutRegister (void (*func)(const char *s));
 #endif
 
 
@@ -960,10 +960,10 @@ void     DDD_LineOutRegister (void (*func)(char *s));
 #define  DDD_HandlerRegister F77SYM(ddd_handlerregister,DDD_HANDLERREGISTER)
 /* TODO hier fehlen DDD_SetHandler-umsetzungen fuer fortran */
 
-void     DDD_TypeDeclare (char *name, int *size, DDD_TYPE *type);
+void     DDD_TypeDeclare (const char *name, int *size, DDD_TYPE *type);
 #endif
 #ifdef C_FRONTEND
-DDD_TYPE DDD_TypeDeclare (char *name);
+DDD_TYPE DDD_TypeDeclare (const char *name);
 int      DDD_InfoHdrOffset (DDD_TYPE);
 #endif
 #if defined(C_FRONTEND) || defined(F_FRONTEND)
@@ -1074,7 +1074,7 @@ void     DDD_IFDefine (int *, DDD_TYPE *, int *, DDD_PRIO *, int *, DDD_PRIO *,
 
 #ifdef C_FRONTEND
 DDD_IF   DDD_IFDefine (int, DDD_TYPE O[], int, DDD_PRIO A[], int, DDD_PRIO B[]);
-void     DDD_IFSetName (DDD_IF, char *);
+void     DDD_IFSetName (DDD_IF, const char *);
 #endif
 
 #if defined(C_FRONTEND) || defined(F_FRONTEND)
diff --git a/parallel/ddd/include/dddaddon.h b/parallel/ddd/include/dddaddon.h
index 55bd24b7f..ada273e17 100644
--- a/parallel/ddd/include/dddaddon.h
+++ b/parallel/ddd/include/dddaddon.h
@@ -128,8 +128,8 @@ enum {
  */
 double    DDD_StatClock (int module, int index);
 long      DDD_StatCount (int module, int index);
-char *    DDD_StatClockDesc (int module, int index);
-char *    DDD_StatCountDesc (int module, int index);
+const char *    DDD_StatClockDesc (int module, int index);
+const char *    DDD_StatCountDesc (int module, int index);
 
 
 /*
diff --git a/parallel/ddd/include/dddio.h b/parallel/ddd/include/dddio.h
index 96599ded2..fb6e38619 100644
--- a/parallel/ddd/include/dddio.h
+++ b/parallel/ddd/include/dddio.h
@@ -37,7 +37,7 @@ START_UGDIM_NAMESPACE
 /*                                                                          */
 /****************************************************************************/
 
-extern void (*DDD_UserLineOutFunction)(char *s);
+extern void (*DDD_UserLineOutFunction)(const char *s);
 
 
 /****************************************************************************/
@@ -46,9 +46,9 @@ extern void (*DDD_UserLineOutFunction)(char *s);
 /*                                                                          */
 /****************************************************************************/
 
-void DDD_PrintLine (char *s);
-void DDD_PrintDebug (char *s);
-void DDD_PrintError (char error_class, int error_no, char *text);
+void DDD_PrintLine (const char *s);
+void DDD_PrintDebug (const char *s);
+void DDD_PrintError (char error_class, int error_no, const char *text);
 void DDD_Flush (void);
 void DDD_SyncAll (void);
 
diff --git a/parallel/ddd/join/join.c b/parallel/ddd/join/join.c
index 9606c3935..4c036348f 100644
--- a/parallel/ddd/join/join.c
+++ b/parallel/ddd/join/join.c
@@ -204,7 +204,7 @@ void Method(Print) (ParamThis _PRINTPARAMS)
         and recovery.
  */
 
-char *JoinModeName (int mode)
+const char *JoinModeName (int mode)
 {
   switch(mode)
   {
diff --git a/parallel/ddd/mgr/typemgr.c b/parallel/ddd/mgr/typemgr.c
index f493c18db..27d0f6721 100644
--- a/parallel/ddd/mgr/typemgr.c
+++ b/parallel/ddd/mgr/typemgr.c
@@ -170,7 +170,7 @@ static int sort_el_offset (const void *i1, const void *i2)
         error occurred during TypeDefine for desc, with argument argno
  */
 
-static char *RegisterError (TYPE_DESC *desc, int argno, char *txt)
+static char *RegisterError (TYPE_DESC *desc, int argno, const char *txt)
 {
   if (argno==0)
   {
@@ -1180,10 +1180,10 @@ void DDD_TypeDefine (DDD_TYPE *ftyp, ...)
 /****************************************************************************/
 
 #ifdef C_FRONTEND
-DDD_TYPE DDD_TypeDeclare(char *name)
+DDD_TYPE DDD_TypeDeclare(const char *name)
 #endif
 #ifdef CPP_FRONTEND
-DDD_TYPE DDD_Library::TypeDeclareStruct(char *name)
+DDD_TYPE DDD_Library::TypeDeclareStruct(const char *name)
 #endif
 #if defined(C_FRONTEND) || defined(CPP_FRONTEND)
 {
diff --git a/parallel/ddd/prio/pcmds.c b/parallel/ddd/prio/pcmds.c
index 441330493..caf601983 100644
--- a/parallel/ddd/prio/pcmds.c
+++ b/parallel/ddd/prio/pcmds.c
@@ -141,7 +141,7 @@ static PRIO_GLOBALS prioGlobals;
         and recovery.
  */
 
-char *PrioModeName (int mode)
+const char *PrioModeName (int mode)
 {
   switch(mode)
   {
diff --git a/parallel/ddd/xfer/cmdmsg.c b/parallel/ddd/xfer/cmdmsg.c
index 12373041c..55648f736 100644
--- a/parallel/ddd/xfer/cmdmsg.c
+++ b/parallel/ddd/xfer/cmdmsg.c
@@ -428,7 +428,7 @@ static int CmdMsgUnpack (LC_MSGHANDLE *theMsgs, int nRecvMsgs,
 /****************************************************************************/
 
 
-static void CmdMsgDisplay (char *comment, LC_MSGHANDLE xm)
+static void CmdMsgDisplay (const char *comment, LC_MSGHANDLE xm)
 {
   DDD_GID      *theGid;
   char buf[30];
diff --git a/parallel/ddd/xfer/cplmsg.c b/parallel/ddd/xfer/cplmsg.c
index 68d117b46..27f142689 100644
--- a/parallel/ddd/xfer/cplmsg.c
+++ b/parallel/ddd/xfer/cplmsg.c
@@ -360,7 +360,7 @@ static void CplMsgUnpackSingle (LC_MSGHANDLE xm,
 /****************************************************************************/
 
 
-static void CplMsgDisplay (char *comment, LC_MSGHANDLE xm)
+static void CplMsgDisplay (const char *comment, LC_MSGHANDLE xm)
 {
   TEDelCpl     *theDelCpl;
   TEModCpl     *theModCpl;
diff --git a/parallel/ddd/xfer/ctrl.c b/parallel/ddd/xfer/ctrl.c
index 992cf38f2..1d741f118 100644
--- a/parallel/ddd/xfer/ctrl.c
+++ b/parallel/ddd/xfer/ctrl.c
@@ -128,7 +128,7 @@ static void XferPtr (LC_MSGHANDLE xm, char *buf)
 #endif
 
 
-void XferDisplayMsg (char *comment, LC_MSGHANDLE xm)
+void XferDisplayMsg (const char *comment, LC_MSGHANDLE xm)
 {
   SYMTAB_ENTRY *theSymTab;
   OBJTAB_ENTRY *theObjTab;
diff --git a/parallel/ddd/xfer/xfer.c b/parallel/ddd/xfer/xfer.c
index c8a7abc17..d02d8affe 100644
--- a/parallel/ddd/xfer/xfer.c
+++ b/parallel/ddd/xfer/xfer.c
@@ -984,7 +984,7 @@ void ddd_XferRegisterDelete (DDD_HDR hdr)
         and recovery.
  */
 
-char *XferModeName (int mode)
+const char *XferModeName (int mode)
 {
   switch(mode)
   {
diff --git a/parallel/ddd/xfer/xfer.h b/parallel/ddd/xfer/xfer.h
index 44ddf89d7..0e66b1aa7 100644
--- a/parallel/ddd/xfer/xfer.h
+++ b/parallel/ddd/xfer/xfer.h
@@ -660,7 +660,7 @@ void XferUnpack (LC_MSGHANDLE *, int, DDD_HDR *, int,
 
 
 /* ctrl.c */
-void XferDisplayMsg (char *comment, LC_MSGHANDLE);
+void XferDisplayMsg (const char *comment, LC_MSGHANDLE);
 
 END_UGDIM_NAMESPACE
 
diff --git a/parallel/dddif/lb.c b/parallel/dddif/lb.c
index b0163dcf1..02cbeeed8 100644
--- a/parallel/dddif/lb.c
+++ b/parallel/dddif/lb.c
@@ -531,7 +531,7 @@ static int SimpleSubdomainDistribution (MULTIGRID *theMG,  INT Procs, INT from,
  */
 /****************************************************************************/
 
-void lbs (char *argv, MULTIGRID *theMG)
+void lbs (const char *argv, MULTIGRID *theMG)
 {
   int n,mode,param,fromlevel,tolevel,part,hor_boxes,vert_boxes,dest;
 
diff --git a/parallel/dddif/parallel.h b/parallel/dddif/parallel.h
index d757d6d3a..2c4cd7b38 100644
--- a/parallel/dddif/parallel.h
+++ b/parallel/dddif/parallel.h
@@ -294,7 +294,7 @@ void    ddd_pstat                       (char *);
 void    ddd_DisplayContext      (void);
 
 /* from lb.c */
-void lbs (char *argv, MULTIGRID *theMG);
+void lbs (const char *argv, MULTIGRID *theMG);
 
 /* from handler.c */
 void            ddd_HandlerInit                 (INT);
diff --git a/parallel/ppif/MPI/ppif.c b/parallel/ppif/MPI/ppif.c
index 84a6f17e7..fe362253f 100644
--- a/parallel/ppif/MPI/ppif.c
+++ b/parallel/ppif/MPI/ppif.c
@@ -790,7 +790,7 @@ int PPIF_NS_PREFIX UsedSpace ()
   return ((int)(100.0*((float)vc_count)/((float)MAXVCHAN)));
 }
 
-void PPIF_NS_PREFIX PrintHostMessage (char *s)
+void PPIF_NS_PREFIX PrintHostMessage (const char *s)
 
 {
   printf ("%s", s);
diff --git a/parallel/ppif/ppif.h b/parallel/ppif/ppif.h
index f9d2a89a2..ed78c73c6 100644
--- a/parallel/ppif/ppif.h
+++ b/parallel/ppif/ppif.h
@@ -174,7 +174,7 @@ int             GetMail                  (int *sourceId, int *reqId, void *data,
 
 /* miscellaneous */
 int         UsedSpace        (void);
-void        PrintHostMessage (char *s);
+void        PrintHostMessage (const char *s);
 double      CurrentTime      (void);
 int         Distance             (int p, int q);
 int         aid_to_pid       (int x, int y, int z);
@@ -267,7 +267,7 @@ public:
   int    UsedSpace (void) {
     return ::UsedSpace();
   }
-  void   PrintHostMessage (char *s) {
+  void   PrintHostMessage (const char *s) {
     ::PrintHostMessage(s);
   }
   double CurrentTime (void) {
diff --git a/tools/ugpfm.c b/tools/ugpfm.c
index 4a90d7393..0d3394ef3 100644
--- a/tools/ugpfm.c
+++ b/tools/ugpfm.c
@@ -27,7 +27,9 @@
 /*																			*/
 /****************************************************************************/
 
+#ifndef ModelP
 #define ModelP
+#endif
 
 #include "config.h"
 #include <stdlib.h>
diff --git a/tools/ugstl.c b/tools/ugstl.c
index 6db9ede35..901a887eb 100644
--- a/tools/ugstl.c
+++ b/tools/ugstl.c
@@ -135,7 +135,7 @@ static int ExpandLine (char *theLine)
   return(0);
 }
 
-static int file_readline (FILE *f, char *key)
+static int file_readline (FILE *f, const char *key)
 {
   char theLine[MAX_LEN];
 
diff --git a/tools/xugv.c b/tools/xugv.c
index c6438374c..19b5d6240 100644
--- a/tools/xugv.c
+++ b/tools/xugv.c
@@ -145,7 +145,7 @@ Pixmap pixmap;                 /* pixmap to store picture */
 FILE     *stream;
 FILE *mstream[MAX_FILES];
 char     *newfile;
-char     *option;
+const char       *option;
 short fx, fy;          /* dimensions of drawing object */
 short mfx[MAX_FILES], mfy[MAX_FILES];   /* dimensions of drawing object */
 short fx_max, fy_max;
@@ -535,7 +535,7 @@ int RasterizeFile(FILE *stream)
   XPoint xy[SIZE];
   char s[CSIZE];
   unsigned char c,ac;
-  char *fn;
+  const char *fn;
   char string[10];
   char **list;
   XGCValues gcv;
@@ -1104,7 +1104,7 @@ int RasterizePositionedFile(FILE *stream, long x_offset, long y_offset)
   XPoint xy[SIZE];
   char s[CSIZE];
   unsigned char c,ac;
-  char *fn;
+  const char *fn;
   char string[10];
   char **list;
   XGCValues gcv;
diff --git a/ui/cmdint.c b/ui/cmdint.c
index 2979377f5..ad96d5bb2 100644
--- a/ui/cmdint.c
+++ b/ui/cmdint.c
@@ -134,12 +134,12 @@ static INT UseWithPerl=0;
 
 struct stringOp {
   INT type;
-  char *sptr;
+  const char *sptr;
 };
 
 struct lstringOp {
   INT type;
-  char *sptr;
+  const char *sptr;
   int length;
 };
 
@@ -177,7 +177,7 @@ static int interactiveFlag=0;
 #endif
 
 /* variables for command interpreter */
-static char *cmdPtr,*cmdStart;
+static const char *cmdPtr,*cmdStart;
 static long executePos=0;
 static char *cmdBuffer;
 static char *executeBuffer;
@@ -504,7 +504,7 @@ static INT GetAnItem (int *itemType,char *buffer)
  */
 /****************************************************************************/
 
-static INT ConvertStringToDouble(char *strAdr, int maxLen, char **endAdr, INT *type, DOUBLE *valuePtr)
+static INT ConvertStringToDouble(const char *strAdr, int maxLen, const char **endAdr, INT *type, DOUBLE *valuePtr)
 {
   char c;
   int endPos,anfPos,k;
@@ -689,7 +689,7 @@ static INT GetValueOfOperand (DOUBLE *t, OPERAND *term)
  */
 /****************************************************************************/
 
-static INT StringCompare(DOUBLE *Diff, char *str1, char *str2, int maxLen1, int maxLen2)
+static INT StringCompare(DOUBLE *Diff, const char *str1, const char *str2, int maxLen1, int maxLen2)
 {
   DOUBLE value1,value2;
   int maxLen;
@@ -775,15 +775,15 @@ static INT GetFactor (OPERAND *result)
 {
   char c,c1;
   char buffer[MAXTOKENLENGTH];
-  char *stringAdr;
-  char *savedCmdPtr;
+  const char *stringAdr;
+  const char *savedCmdPtr;
   int k;
   INT error;
   int itemType;
   int signflag;
   DOUBLE sign,t;
   OPERAND newResult;
-  char *lastname;
+  const char *lastname;
   ENVDIR *theDir;
 
   /* set error value */
@@ -1666,11 +1666,11 @@ FILE* NS_DIM_PREFIX FOpenScript (const char *script, const char *mode)
  */
 /****************************************************************************/
 
-INT NS_DIM_PREFIX InterpretCommand (char *cmds)
+INT NS_DIM_PREFIX InterpretCommand (const char *cmds)
 {
   int pLength;
   INT error;
-  char *oldCmdPtr,*oldCmdStart;
+  const char *oldCmdPtr,*oldCmdStart;
 
   mutelevel = GetMuteLevel();
 
@@ -1773,15 +1773,15 @@ static INT InterpretString (void)
 
   int StatusStack[BUFSIZE];
   int RepeatStatusPos[MAXREPEAT];
-  char *RepeatPtr[MAXREPEAT];
+  const char *RepeatPtr[MAXREPEAT];
   char buffer[MAXTOKENLENGTH];
   char filename[MAXTOKENLENGTH];
   char valueStr[32];
   char *sptr;
 
   int StatusPos,RepeatPos;
-  char *cmdStart;
-  char *cmdEnd;
+  const char *cmdStart;
+  const char *cmdEnd;
 
   COMMAND *commandItem;
 
@@ -2500,7 +2500,7 @@ void NS_DIM_PREFIX CommandLoop (int argc, char **argv)
   int i,kerr;
   char c,errLine[256],spcLine[256],buffer[256];
   char *inpLine;
-  char *strStart;
+  const char *strStart;
   int batch = FALSE;
 
   /* reset doneFlag */
diff --git a/ui/cmdint.h b/ui/cmdint.h
index 05f82ce74..ae8d92878 100644
--- a/ui/cmdint.h
+++ b/ui/cmdint.h
@@ -85,7 +85,7 @@ void    ResetDoneFlag                   (void);
 int             GetDoneFlag                     (void);
 FILE   *FOpenScript                             (const char *script, const char *mode);
 
-INT     InterpretCommand                (char *cmds);
+INT     InterpretCommand                (const char *cmds);
 
 INT     InitCommandInterpreter  (INT argc, char **argv);
 INT     ExitCommandInterpreter       ();
diff --git a/ui/mmio.c b/ui/mmio.c
index 00d9b9615..028d4d881 100644
--- a/ui/mmio.c
+++ b/ui/mmio.c
@@ -404,7 +404,7 @@ int NS_DIM_PREFIX mm_write_mtx_crd(char fname[], int M, int N, int nz, int I[],
 char* NS_DIM_PREFIX mm_typecode_to_str(MM_typecode matcode)
 {
   char buffer[MM_MAX_LINE_LENGTH];
-  char *types[4];
+  const char *types[4];
   int error =0;
 
   /* check for MTX type */
-- 
GitLab