Merge remote-tracking branch 'origin/master' into yasp 51/12251/1
Antoine ELIAS [Fri, 9 Aug 2013 12:30:49 +0000 (14:30 +0200)]
Conflicts:
scilab/etc/scilab.start
scilab/modules/core/src/c/parse.c
scilab/modules/core/src/c/run.c
scilab/modules/core/src/c/stack1.c
scilab/modules/core/src/c/stack2.c
scilab/modules/data_structures/sci_gateway/c/sci_rlist.c
scilab/modules/data_structures/src/c/hmops.c
scilab/modules/differential_equations/sci_gateway/fortran/sci_f_bvode.f
scilab/modules/differential_equations/sci_gateway/fortran/sci_f_dasrt.f
scilab/modules/differential_equations/sci_gateway/fortran/sci_f_dassl.f
scilab/modules/differential_equations/tests/unit_tests/dassldasrt.dia.ref
scilab/modules/differential_equations/tests/unit_tests/dassldasrt.tst
scilab/modules/elementary_functions/sci_gateway/fortran/sci_f_dsearch.f
scilab/modules/elementary_functions/tests/unit_tests/erfc.dia.ref
scilab/modules/elementary_functions/tests/unit_tests/erfc.tst
scilab/modules/fileio/sci_gateway/c/sci_getrelativefilename.c
scilab/modules/fileio/sci_gateway/c/sci_removedir.c
scilab/modules/graphics/sci_gateway/c/sci_plot2d1.c
scilab/modules/intersci/tests/nonreg_tests/bug_4625.c
scilab/modules/intersci/tests/nonreg_tests/bug_7599.c
scilab/modules/output_stream/src/c/errorTable.c
scilab/modules/overloading/macros/%s_pow.sci
scilab/modules/scicos/sci_gateway/c/sci_model2blk.c
scilab/modules/scicos/src/c/extractblklist.c
scilab/modules/statistics/sci_gateway/c/sci_cdfpoi.c

Change-Id: I9d3ac578b33897409727310d16b39cb52c4489a8

31 files changed:
1  2 
scilab/configure
scilab/configure.ac
scilab/modules/cacsd/sci_gateway/c/sci_linmeq.c
scilab/modules/core/src/c/signal_mgmt.c
scilab/modules/data_structures/sci_gateway/c/sci_rlist.c
scilab/modules/data_structures/src/c/core_Import.def
scilab/modules/dynamic_link/macros/windows/dlwGetSdkPath.sci
scilab/modules/fileio/src/c/dlManager.c
scilab/modules/fileio/tests/unit_tests/mgeti.dia.ref
scilab/modules/fileio/tests/unit_tests/mgeti.tst
scilab/modules/graphics/sci_gateway/c/sci_plot2d.c
scilab/modules/graphics/sci_gateway/c/sci_plot2d1.c
scilab/modules/graphics/sci_gateway/c/sci_xset.c
scilab/modules/gui/gui.iss
scilab/modules/gui/sci_gateway/c/sci_uimenu.c
scilab/modules/gui/sci_gateway/cpp/sci_displaytree.cpp
scilab/modules/hdf5/Makefile.am
scilab/modules/hdf5/Makefile.in
scilab/modules/hdf5/sci_gateway/cpp/sci_h5dataset.cpp
scilab/modules/hdf5/sci_gateway/cpp/sci_percent_H5Object_e.cpp
scilab/modules/hdf5/src/c/hdf5.vcxproj
scilab/modules/hdf5/src/cpp/H5BasicData.hxx
scilab/modules/hdf5/src/cpp/H5CompoundData.cpp
scilab/modules/overloading/macros/generic_i_h.sci
scilab/modules/scicos/sci_gateway/c/sci_model2blk.c
scilab/modules/scicos/src/c/extractblklist.c
scilab/modules/scicos/src/c/scicos.c
scilab/modules/scicos_blocks/src/c/fromws_c.c
scilab/modules/scicos_blocks/src/c/tows_c.c
scilab/modules/special_functions/sci_gateway/c/sci_legendre.c
scilab/modules/statistics/src/c/CdfBase.c

Simple merge
Simple merge
  extern int C2F(rattyp)(); /* fortran */
  extern int C2F(mtlist)(); /* fortran */
  /*--------------------------------------------------------------------------*/
 -int sci_rlist(char *fname, unsigned long fname_len)
 +int sci_rlist(char *fname, void* pvApiCtx)
  {
-     C2F(mtlist)(C2F(rattyp));
-     return 0;
+     if (nbInputArgument(pvApiCtx) == 2)
+     {
+         int lw = 0;
 -        C2F(overload)(&lw, fname, fname_len);
++        OverLoad(0);
+         return 0;
+     }
+     else
+     {
+         C2F(mtlist)(C2F(rattyp));
+         return 0;
+     }
 -
 -
  }
  /*--------------------------------------------------------------------------*/
@@@ -9,7 -9,17 +9,8 @@@ iop
  callFunctionFromGateway
  stack_
  vstk_
 -createcvar_
 -putlhsvar_
  intersci_
 -createvar_
  com_
 -getrhsvar_
 -gettype_
 -createlistcvarfrom_
 -createlistvarfrom_
 -createlistvarfromptr_
 -creimati_
  MyHeapAlloc
  MyHeapFree
+ overload_
@@@ -31,6 -31,8 +31,8 @@@ function SDKpath = dlwGetSdkPath(
              else
                  SDKpath = [];
              end
+         else
 -            errclear();
++            //errclear();
          end
      end
  
@@@ -112,7 -114,27 +114,26 @@@ int sci_plot2d(char* fname, void *pvApi
              return 1;
          }
  
+         // the argument can be a matrix of doubles or other
+         // If it is not a matrix of doubles, call overload
+         if (iTypel2 == sci_matrix)
+         {
+             // Retrieve a matrix of double at position 1 + iskip.
+             sciErr = getMatrixOfDouble(pvApiCtx, piAddrl2, &m2, &n2, &l2);
+             if (sciErr.iErr)
+             {
+                 printError(&sciErr, 0);
+                 Scierror(202, _("%s: Wrong type for argument %d: A real expected.\n"), fname, 1 + iskip);
+                 return 1;
+             }
+         }
+         else
+         {
 -            lw = 1 + nbArgumentOnStack(pvApiCtx) - nbInputArgument(pvApiCtx);
 -            C2F(overload)(&lw, "plot2d", 6);
++            OverLoad(1);
+             return 0;
+         }
          if (m2 == 1 && n2 > 1)
          {
              m2 = n2;
              return 1;
          }
  
+         // x can be a matrix of doubles or other
+         // If x is not a matrix of doubles, call overload
+         if (iTypel1 == sci_matrix)
+         {
+             // Retrieve a matrix of double at position 1 + iskip.
+             sciErr = getMatrixOfDouble(pvApiCtx, piAddrl1, &m1, &n1, &l1);
+             if (sciErr.iErr)
+             {
+                 printError(&sciErr, 0);
+                 Scierror(202, _("%s: Wrong type for argument %d: A real expected.\n"), fname, 1 + iskip);
+                 return 1;
+             }
+         }
+         else
+         {
 -            lw = 1 + nbArgumentOnStack(pvApiCtx) - nbInputArgument(pvApiCtx);
 -            C2F(overload)(&lw, "plot2d", 6);
++            OverLoad(1);
+             return 0;
+         }
          /* y */
          sciErr = getVarAddressFromPosition(pvApiCtx, 2 + iskip, &piAddrl2);
          if (sciErr.iErr)
              return 1;
          }
  
+         // y can be a matrix of doubles or other
+         // If y is not a matrix of doubles, call overload
+         if (iTypel2 == sci_matrix)
+         {
+             // Retrieve a matrix of double at position 1 + iskip.
+             sciErr = getMatrixOfDouble(pvApiCtx, piAddrl2, &m2, &n2, &l2);
+             if (sciErr.iErr)
+             {
+                 printError(&sciErr, 0);
+                 Scierror(202, _("%s: Wrong type for argument %d: A real expected.\n"), fname, 2 + iskip);
+                 return 1;
+             }
+         }
+         else
+         {
 -            lw = 2 + nbArgumentOnStack(pvApiCtx) - nbInputArgument(pvApiCtx);
 -            C2F(overload)(&lw, "plot2d", 6);
++            OverLoad(2);
+             return 0;
+         }
          test = (m1 * n1 == 0) ||
                 ((m1 == 1 || n1 == 1) && (m2 == 1 || n2 == 1) && (m1 * n1 == m2 * n2))  ||
                 ((m1 == m2) && (n1 == n2)) ||
@@@ -85,8 -86,8 +85,8 @@@ int sci_plot2d1_G(char * fname, int pty
  
      if (nbInputArgument(pvApiCtx) <= 0)
      {
-         /* lauch the default routines depending on the name of the calling funtion */
+         /* lauch the default routines depending on the name of the calling function */
 -        sci_demo(fname, fname_len);
 +        sci_demo(fname, pvApiCtx);
          return 0;
      }
      CheckInputArgument(pvApiCtx, 1, 9); /* to allow plot2dxx(y) */
      /* added to support plot2dxx([logflags],y) */
      if (nbInputArgument(pvApiCtx) == 1 + iskip)
      {
 -        if (FirstOpt() <= nbInputArgument(pvApiCtx))
 +        if (FirstOpt(pvApiCtx) <= nbInputArgument(pvApiCtx))
          {
              Scierror(999, _("%s: Misplaced optional argument: #%d must be at position %d.\n"), fname, 1, 3 + iskip);
-             return(0);
+             return (0);
          }
  
          sciErr = getVarAddressFromPosition(pvApiCtx, 1 + iskip, &piAddrl2);
Simple merge
@@@ -1,21 -1,20 +1,21 @@@
  /*
-  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-  * Copyright (C) 2006 - INRIA - Allan Cornet
-  * Copyright (C) 2006 - INRIA - Jean-Baptiste Silvy
-  * Copyright (C) 2006 - INRIA - Fabrice Leray
-  * Copyright (C) 2011 - DIGITEO - Allan CORNET
-  * desc : interface for sci_uimenu routine
-  *
-  * This file must be used under the terms of the CeCILL.
-  * This source file is licensed as described in the file COPYING, which
-  * you should have received as part of this distribution.  The terms
-  * are also available at
-  * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
-  *
-  */
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2006 - INRIA - Allan Cornet
+ * Copyright (C) 2006 - INRIA - Jean-Baptiste Silvy
+ * Copyright (C) 2006 - INRIA - Fabrice Leray
+ * Copyright (C) 2011 - DIGITEO - Allan CORNET
+ * desc : interface for sci_uimenu routine
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution.  The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ */
  
  /*--------------------------------------------------------------------------*/
 +#include <string.h>
  #include "BuildObjects.h"
  #include "gw_gui.h"
  #include "localization.h"
Simple merge
Simple merge
@@@ -84,2330 -84,2329 +84,2329 @@@ extern OpTab tabsim[]
  */
  int sci_model2blk(char *fname, unsigned long fname_len)
  {
 -    int m1 = 0, n1 = 0;
 -    int *il1 = NULL;
 -    int n = 0;
 -    int mh = 0, nh = 0;
 -    int *ilh = NULL;
 -    int mh2 = 0, nh2 = 0;
 -    int *ilh2 = NULL;
 -    int mh3 = 0, nh3 = 0;
 -    int *ilh3 = NULL;
 -    int ierr = 0;
 -    int TopSave = 0;
 -    int i = 0, j = 0;
 -    int l_tmp = 0;
 -    double type = 0.0;
 -    int len_str = 0;
 -    int lfunpt = 0;
 -    int typfsim = 0;
 -    int ifun = 0;
 -    int *il_sim = NULL;
 +    //int m1 = 0, n1 = 0;
 +    //int *il1 = NULL;
 +    //int n = 0;
 +    //int mh = 0, nh = 0;
 +    //int *ilh = NULL;
 +    //int mh2 = 0, nh2 = 0;
 +    //int *ilh2 = NULL;
 +    //int mh3 = 0, nh3 = 0;
 +    //int *ilh3 = NULL;
 +    //int ierr = 0;
 +    //int TopSave = 0;
 +    //int i = 0, j = 0;
 +    //int l_tmp = 0;
 +    //double type = 0.0;
 +    //int len_str = 0;
 +    //int lfunpt = 0;
 +    //int typfsim = 0;
 +    //int ifun = 0;
 +    //int *il_sim = NULL;
  
 -    int id[nsiz];
 +    //int id[nsiz];
  
 -    double *ptr_d = NULL;
 -    char *ptr_c = NULL;
 -    unsigned char *ptr_uc = NULL;
 -    short *ptr_s = NULL;
 -    unsigned short *ptr_us = NULL;
 -    SCSINT32_COP *ptr_l = NULL;
 -    SCSUINT32_COP *ptr_ul = NULL;
 -    int nblklst = 40;
 +    //double *ptr_d = NULL;
 +    //char *ptr_c = NULL;
 +    //unsigned char *ptr_uc = NULL;
 +    //short *ptr_s = NULL;
 +    //unsigned short *ptr_us = NULL;
-     //long *ptr_l = NULL;
-     //unsigned long *ptr_ul = NULL;
++    //SCSINT32_COP *ptr_l = NULL;
++    //SCSUINT32_COP *ptr_ul = NULL;
 +    //int nblklst = 40;
  
 -    scicos_block Block;
 -    memset(&Block, 0, sizeof(scicos_block));
 +    //scicos_block Block;
 +    //memset(&Block, 0, sizeof(scicos_block));
  
  
  
 -    /* check size of rhs/lhs parameters */
 -    CheckRhs(1, 1);
 -    CheckLhs(1, 1);
 +    ///* check size of rhs/lhs parameters */
 +    //CheckRhs(1, 1);
 +    //CheckLhs(1, 1);
  
 -    il1 = (int *) GetData(1);
 -    m1  = il1[1];
 -    n1  = il1[2];
 +    //il1 = (int *) GetData(1);
 +    //m1  = il1[1];
 +    //n1  = il1[2];
  
 -    /* check for a tlist */
 -    if (il1[0] != sci_mlist)
 -    {
 -        Scierror(888, _("%s : First argument must be a Typed list.\n"), fname);
 -        return 0;
 -    }
 +    ///* check for a tlist */
 +    //if (il1[0] != sci_mlist)
 +    //{
 +    //    Scierror(888, _("%s : First argument must be a Typed list.\n"), fname);
 +    //    return 0;
 +    //}
  
 -    /* check for a type "scicos model" */
 -    ilh = (int *) (listentry(il1, 1));
 -    mh  = ilh[1];
 -    nh  = ilh[2];
 -    if ((ilh[mh * nh + 5] != 22) || \
 -            (ilh[mh * nh + 6] != 24) || \
 -            (ilh[mh * nh + 7] != 13) || \
 -            (ilh[mh * nh + 8] != 14) || \
 -            (ilh[mh * nh + 9] != 21))
 -    {
 -        Scierror(888, _("%s : First argument must be a scicos model.\n"), fname);
 -        return 0;
 -    }
 +    ///* check for a type "scicos model" */
 +    //ilh = (int *) (listentry(il1, 1));
 +    //mh  = ilh[1];
 +    //nh  = ilh[2];
 +    //if ((ilh[mh * nh + 5] != 22) || \
 +    //        (ilh[mh * nh + 6] != 24) || \
 +    //        (ilh[mh * nh + 7] != 13) || \
 +    //        (ilh[mh * nh + 8] != 14) || \
 +    //        (ilh[mh * nh + 9] != 21))
 +    //{
 +    //    Scierror(888, _("%s : First argument must be a scicos model.\n"), fname);
 +    //    return 0;
 +    //}
  
 -    /* TODO */
 -    /* 2 : model.sim  */
 -    n            = MlistGetFieldNumber(il1, "sim");
 -    ilh          = (int *) (listentry(il1, n));
 -    mh           = ilh[1];
 -    nh           = ilh[2];
 -    if (ilh[0] == sci_list)
 -    {
 -        /* sim  is a list */
 -        ilh2 = (int *) (listentry(ilh, 2));
 -        Block.type = (int) * ((double *) (&ilh2[4]));
 -        ilh2 = (int *) (listentry(ilh, 1));
 -        typfsim = ilh2[0]; /* typfsim  the name the comput funct */
 -        il_sim = ilh2;
 -    }
 -    else
 -    {
 -        Block.type = 0;
 -        typfsim = ilh[0];
 -        il_sim = ilh;
 -    }
 -    /* check if typfsim is a scilab function */
 -    if ((typfsim == sci_u_function) || (typfsim == sci_c_function))
 -    {
 -        /* TODO */
 -        lfunpt = -1;
 -    }
 -    /* check if typfsim is a string */
 -    else if (typfsim == sci_strings)
 -    {
 -        len_str = il_sim[5] - 1;
 -        C2F(cha1).buf[0] = ' ';
 -        C2F(cvstr)(&len_str, &il_sim[6], &C2F(cha1).buf[0], (j = 1, &j), len_str);
 -        C2F(cha1).buf[len_str] = '\0';
 -        /* search fun ptr of the comput func in the scilab func table */
 -        ifun = C2F(funnum)(C2F(cha1).buf);
 -        if (ifun > 0)
 -        {
 -            lfunpt = ifun;
 -        }
 -        else
 -        {
 -            C2F(namstr)(id, &il_sim[6], &len_str, (j = 0, &j));
 -            C2F(com).fin = 0;
 -            C2F(funs)(id);
 -            if ((C2F(com).fun == -1) | (C2F(com).fun == -2))
 -            {
 -                lfunpt = -*Lstk(C2F(com).fin);
 -            }
 -            else
 -            {
 -                lfunpt = 0;
 -                Scierror(888, _("%s : unknown block : %s\n"), fname, C2F(cha1).buf);
 -                return 0;
 -            }
 -        }
 -    }
 -    /* else {
 -    * error
 -    }*/
 -    /* comput func is a scilab function */
 -    if (lfunpt < 0)
 -    {
 -        switch (Block.type)
 -        {
 -            case 0:
 -                Block.funpt = F2C(sciblk);
 -                break;
 -            case 1:
 -                Scierror(888, _("%s : type 1 function not allowed for scilab blocks\n"), fname);
 -                return 0;
 -            case 2:
 -                Scierror(888, _("%s : type 2 function not allowed for scilab blocks\n"), fname);
 -                return 0;
 -            case 3:
 -                Block.funpt = sciblk2;
 -                Block.type = 2;
 -                break;
 -            case 5:
 -                Block.funpt = sciblk4;
 -                Block.type = 4;
 -                break;
 -            case 99: /* debugging block */
 -                Block.funpt = sciblk4;
 -                Block.type = 4;
 -                break;
 -            case 10005:
 -                Block.funpt = sciblk4;
 -                Block.type = 10004;
 -                break;
 -            default :
 -                Scierror(888, _("%s : Undefined Function type\n"), fname);
 -                return 0;
 -        }
 -        Block.scsptr = -lfunpt;
 -    }
 -    else if (lfunpt <= ntabsim)
 -    {
 -        Block.funpt = *(tabsim[lfunpt - 1].fonc);
 -        Block.scsptr = 0;
 -    }
 -    else
 -    {
 -        lfunpt -= (ntabsim + 1);
 -        GetDynFunc(lfunpt, &Block.funpt);
 -        if (Block.funpt == (voidf) 0)
 -        {
 -            Scierror(888, _("%s : Function not found\n"), fname);
 -            return 0;
 -        }
 -        Block.scsptr = 0;
 -    }
 +    ///* TODO */
 +    ///* 2 : model.sim  */
 +    //n            = MlistGetFieldNumber(il1, "sim");
 +    //ilh          = (int *) (listentry(il1, n));
 +    //mh           = ilh[1];
 +    //nh           = ilh[2];
 +    //if (ilh[0] == sci_list)
 +    //{
 +    //    /* sim  is a list */
 +    //    ilh2 = (int *) (listentry(ilh, 2));
 +    //    Block.type = (int) * ((double *) (&ilh2[4]));
 +    //    ilh2 = (int *) (listentry(ilh, 1));
 +    //    typfsim = ilh2[0]; /* typfsim  the name the comput funct */
 +    //    il_sim = ilh2;
 +    //}
 +    //else
 +    //{
 +    //    Block.type = 0;
 +    //    typfsim = ilh[0];
 +    //    il_sim = ilh;
 +    //}
 +    ///* check if typfsim is a scilab function */
 +    //if ((typfsim == sci_u_function) || (typfsim == sci_c_function))
 +    //{
 +    //    /* TODO */
 +    //    lfunpt = -1;
 +    //}
 +    ///* check if typfsim is a string */
 +    //else if (typfsim == sci_strings)
 +    //{
 +    //    len_str = il_sim[5] - 1;
 +    //    C2F(cha1).buf[0] = ' ';
 +    //    C2F(cvstr)(&len_str, &il_sim[6], &C2F(cha1).buf[0], (j = 1, &j), len_str);
 +    //    C2F(cha1).buf[len_str] = '\0';
 +    //    /* search fun ptr of the comput func in the scilab func table */
 +    //    ifun = C2F(funnum)(C2F(cha1).buf);
 +    //    if (ifun > 0)
 +    //    {
 +    //        lfunpt = ifun;
 +    //    }
 +    //    else
 +    //    {
 +    //        C2F(namstr)(id, &il_sim[6], &len_str, (j = 0, &j));
 +    //        C2F(com).fin = 0;
 +    //        C2F(funs)(id);
 +    //        if ((C2F(com).fun == -1) | (C2F(com).fun == -2))
 +    //        {
 +    //            lfunpt = -*Lstk(C2F(com).fin);
 +    //        }
 +    //        else
 +    //        {
 +    //            lfunpt = 0;
 +    //            Scierror(888, _("%s : unknown block : %s\n"), fname, C2F(cha1).buf);
 +    //            return 0;
 +    //        }
 +    //    }
 +    //}
 +    ///* else {
 +    //* error
 +    //}*/
 +    ///* comput func is a scilab function */
 +    //if (lfunpt < 0)
 +    //{
 +    //    switch (Block.type)
 +    //    {
 +    //        case 0:
 +    //            Block.funpt = F2C(sciblk);
 +    //            break;
 +    //        case 1:
 +    //            Scierror(888, _("%s : type 1 function not allowed for scilab blocks\n"), fname);
 +    //            return 0;
 +    //        case 2:
 +    //            Scierror(888, _("%s : type 2 function not allowed for scilab blocks\n"), fname);
 +    //            return 0;
 +    //        case 3:
 +    //            Block.funpt = sciblk2;
 +    //            Block.type = 2;
 +    //            break;
 +    //        case 5:
 +    //            Block.funpt = sciblk4;
 +    //            Block.type = 4;
 +    //            break;
 +    //        case 99: /* debugging block */
 +    //            Block.funpt = sciblk4;
 +    //            Block.type = 4;
 +    //            break;
 +    //        case 10005:
 +    //            Block.funpt = sciblk4;
 +    //            Block.type = 10004;
 +    //            break;
 +    //        default :
 +    //            Scierror(888, _("%s : Undefined Function type\n"), fname);
 +    //            return 0;
 +    //    }
 +    //    Block.scsptr = -lfunpt;
 +    //}
 +    //else if (lfunpt <= ntabsim)
 +    //{
 +    //    Block.funpt = *(tabsim[lfunpt - 1].fonc);
 +    //    Block.scsptr = 0;
 +    //}
 +    //else
 +    //{
 +    //    lfunpt -= (ntabsim + 1);
-     //    //TODO: see in dynamic_lin how to get funcptr from index
-     //    //GetDynFunc(lfunpt, &Block.funpt);
++    //    GetDynFunc(lfunpt, &Block.funpt);
 +    //    if (Block.funpt == (voidf) 0)
 +    //    {
 +    //        Scierror(888, _("%s : Function not found\n"), fname);
 +    //        return 0;
 +    //    }
 +    //    Block.scsptr = 0;
 +    //}
  
 -    /* check input ports */
 -    /* 3 : model.in  */
 -    n            = MlistGetFieldNumber(il1, "in");
 -    ilh          = (int *) (listentry(il1, n));
 -    mh           = ilh[1];
 -    nh           = ilh[2];
 -    Block.nin    = mh * nh;
 -    Block.insz   = NULL;
 -    Block.inptr  = NULL;
 -    if (mh * nh != 0)
 -    {
 -        /* check value of in */
 -        for (i = 0; i < Block.nin; i++)
 -        {
 -            if ((*((double *)(&ilh[4]) + i)) <= 0.)
 -            {
 -                Scierror(888, _("%s : Undetermined Size. in(%d)=%d. Please adjust your model.\n"), \
 -                         fname, i + 1, (int)(*((double *)(&ilh[4]) + i)));
 -                return 0;
 -            }
 -        }
 -        /* alloc insz */
 -        if ((Block.insz = (int *) MALLOC(Block.nin * 3 * sizeof(int))) == NULL)
 -        {
 -            Scierror(888, _("%s : Allocation error.\n"), fname);
 -            return 0;
 -        }
 -        /* alloc inptr */
 -        if ((Block.inptr = (void **) MALLOC(Block.nin * sizeof(void *))) == NULL)
 -        {
 -            FREE(Block.insz);
 -            Scierror(888, _("%s : Allocation error.\n"), fname);
 -            return 0;
 -        }
 -        /* 4 : model.in2  */
 -        n    = MlistGetFieldNumber(il1, "in2");
 -        ilh2 = (int *) (listentry(il1, n));
 -        mh2  = ilh2[1];
 -        nh2  = ilh2[2];
 -        /* check value of in2 */
 -        for (i = 0; i < (mh2 * nh2); i++)
 -        {
 -            if ((*((double *)(&ilh2[4]) + i)) <= 0.)
 -            {
 -                Scierror(888, _("%s : Undetermined Size. in2(%d)=%d. Please adjust your model.\n"), \
 -                         fname, i + 1, (int)(*((double *)(&ilh2[4]) + i)));
 -                FREE(Block.insz);
 -                FREE(Block.inptr);
 -                return 0;
 -            }
 -        }
 -        /* 5 : model.intyp  */
 -        n    = MlistGetFieldNumber(il1, "intyp");
 -        ilh3 = (int *) (listentry(il1, n));
 -        mh3  = ilh3[1];
 -        nh3  = ilh3[2];
 -        /* check value of intyp */
 -        for (i = 0; i < (mh3 * nh3); i++)
 -        {
 -            if ((*((double *)(&ilh3[4]) + i)) <= 0.)
 -            {
 -                Scierror(888, _("%s : Undetermined Type. intyp(%d)=%d. Please adjust your model.\n"), \
 -                         fname, i + 1, (int)(*((double *)(&ilh3[4]) + i)));
 -                FREE(Block.insz);
 -                FREE(Block.inptr);
 -                return 0;
 -            }
 -        }
 -        if (((mh * nh) == (mh2 * nh2)) && (((mh * nh) == (mh3 * nh3))))
 -        {
 -            for (i = 0; i < Block.nin; i++)
 -            {
 -                Block.insz[i] = (int) * ((double *)(&ilh[4]) + i);
 -                Block.insz[Block.nin + i] = (int) * ((double *)(&ilh2[4]) + i);
 -                type = *((double *)(&ilh3[4]) + i);
 -                if (type == 1)
 -                {
 -                    Block.insz[2 * Block.nin + i] = 10;
 -                }
 -                else if (type == 2)
 -                {
 -                    Block.insz[2 * Block.nin + i] = 11;
 -                }
 -                else if (type == 3)
 -                {
 -                    Block.insz[2 * Block.nin + i] = 84;
 -                }
 -                else if (type == 4)
 -                {
 -                    Block.insz[2 * Block.nin + i] = 82;
 -                }
 -                else if (type == 5)
 -                {
 -                    Block.insz[2 * Block.nin + i] = 81;
 -                }
 -                else if (type == 6)
 -                {
 -                    Block.insz[2 * Block.nin + i] = 814;
 -                }
 -                else if (type == 7)
 -                {
 -                    Block.insz[2 * Block.nin + i] = 812;
 -                }
 -                else if (type == 8)
 -                {
 -                    Block.insz[2 * Block.nin + i] = 811;
 -                }
 -                else
 -                {
 -                    Block.insz[2 * Block.nin + i] = 10;
 -                }
 -            }
 -        }
 -        else
 -        {
 -            for (i = 0; i < Block.nin; i++)
 -            {
 -                Block.insz[i] = (int) * ((double *)(&ilh[4]) + i);
 -                Block.insz[Block.nin + i] = 1;
 -                Block.insz[2 * Block.nin + i] = 10;
 -            }
 -        }
 +    ///* check input ports */
 +    ///* 3 : model.in  */
 +    //n            = MlistGetFieldNumber(il1, "in");
 +    //ilh          = (int *) (listentry(il1, n));
 +    //mh           = ilh[1];
 +    //nh           = ilh[2];
 +    //Block.nin    = mh * nh;
 +    //Block.insz   = NULL;
 +    //Block.inptr  = NULL;
 +    //if (mh * nh != 0)
 +    //{
 +    //    /* check value of in */
 +    //    for (i = 0; i < Block.nin; i++)
 +    //    {
 +    //        if ((*((double *)(&ilh[4]) + i)) <= 0.)
 +    //        {
 +    //            Scierror(888, _("%s : Undetermined Size. in(%d)=%d. Please adjust your model.\n"), \
 +    //                     fname, i + 1, (int)(*((double *)(&ilh[4]) + i)));
 +    //            return 0;
 +    //        }
 +    //    }
 +    //    /* alloc insz */
 +    //    if ((Block.insz = (int *) MALLOC(Block.nin * 3 * sizeof(int))) == NULL)
 +    //    {
 +    //        Scierror(888, _("%s : Allocation error.\n"), fname);
 +    //        return 0;
 +    //    }
 +    //    /* alloc inptr */
 +    //    if ((Block.inptr = (void **) MALLOC(Block.nin * sizeof(void *))) == NULL)
 +    //    {
 +    //        FREE(Block.insz);
 +    //        Scierror(888, _("%s : Allocation error.\n"), fname);
 +    //        return 0;
 +    //    }
 +    //    /* 4 : model.in2  */
 +    //    n    = MlistGetFieldNumber(il1, "in2");
 +    //    ilh2 = (int *) (listentry(il1, n));
 +    //    mh2  = ilh2[1];
 +    //    nh2  = ilh2[2];
 +    //    /* check value of in2 */
 +    //    for (i = 0; i < (mh2 * nh2); i++)
 +    //    {
 +    //        if ((*((double *)(&ilh2[4]) + i)) <= 0.)
 +    //        {
 +    //            Scierror(888, _("%s : Undetermined Size. in2(%d)=%d. Please adjust your model.\n"), \
 +    //                     fname, i + 1, (int)(*((double *)(&ilh2[4]) + i)));
 +    //            FREE(Block.insz);
 +    //            FREE(Block.inptr);
 +    //            return 0;
 +    //        }
 +    //    }
 +    //    /* 5 : model.intyp  */
 +    //    n    = MlistGetFieldNumber(il1, "intyp");
 +    //    ilh3 = (int *) (listentry(il1, n));
 +    //    mh3  = ilh3[1];
 +    //    nh3  = ilh3[2];
 +    //    /* check value of intyp */
 +    //    for (i = 0; i < (mh3 * nh3); i++)
 +    //    {
 +    //        if ((*((double *)(&ilh3[4]) + i)) <= 0.)
 +    //        {
 +    //            Scierror(888, _("%s : Undetermined Type. intyp(%d)=%d. Please adjust your model.\n"), \
 +    //                     fname, i + 1, (int)(*((double *)(&ilh3[4]) + i)));
 +    //            FREE(Block.insz);
 +    //            FREE(Block.inptr);
 +    //            return 0;
 +    //        }
 +    //    }
 +    //    if (((mh * nh) == (mh2 * nh2)) && (((mh * nh) == (mh3 * nh3))))
 +    //    {
 +    //        for (i = 0; i < Block.nin; i++)
 +    //        {
 +    //            Block.insz[i] = (int) * ((double *)(&ilh[4]) + i);
 +    //            Block.insz[Block.nin + i] = (int) * ((double *)(&ilh2[4]) + i);
 +    //            type = *((double *)(&ilh3[4]) + i);
 +    //            if (type == 1)
 +    //            {
 +    //                Block.insz[2 * Block.nin + i] = 10;
 +    //            }
 +    //            else if (type == 2)
 +    //            {
 +    //                Block.insz[2 * Block.nin + i] = 11;
 +    //            }
 +    //            else if (type == 3)
 +    //            {
 +    //                Block.insz[2 * Block.nin + i] = 84;
 +    //            }
 +    //            else if (type == 4)
 +    //            {
 +    //                Block.insz[2 * Block.nin + i] = 82;
 +    //            }
 +    //            else if (type == 5)
 +    //            {
 +    //                Block.insz[2 * Block.nin + i] = 81;
 +    //            }
 +    //            else if (type == 6)
 +    //            {
 +    //                Block.insz[2 * Block.nin + i] = 814;
 +    //            }
 +    //            else if (type == 7)
 +    //            {
 +    //                Block.insz[2 * Block.nin + i] = 812;
 +    //            }
 +    //            else if (type == 8)
 +    //            {
 +    //                Block.insz[2 * Block.nin + i] = 811;
 +    //            }
 +    //            else
 +    //            {
 +    //                Block.insz[2 * Block.nin + i] = 10;
 +    //            }
 +    //        }
 +    //    }
 +    //    else
 +    //    {
 +    //        for (i = 0; i < Block.nin; i++)
 +    //        {
 +    //            Block.insz[i] = (int) * ((double *)(&ilh[4]) + i);
 +    //            Block.insz[Block.nin + i] = 1;
 +    //            Block.insz[2 * Block.nin + i] = 10;
 +    //        }
 +    //    }
  
 -        for (i = 0; i < Block.nin; i++)
 -        {
 -            switch (Block.insz[2 * Block.nin + i])
 -            {
 -                case 10  :
 -                    if ((Block.inptr[i] = (double *) MALLOC(Block.insz[i] * Block.insz[Block.nin + i] * sizeof(double))) == NULL)
 -                    {
 -                        for (j = 0; j < i; j++)
 -                        {
 -                            FREE(Block.inptr[j]);
 -                        }
 -                        FREE(Block.inptr);
 -                        FREE(Block.insz);
 -                        Scierror(888, _("%s : Allocation error.\n"), fname);
 -                        return 0;
 -                    }
 -                    ptr_d = (double *) Block.inptr[i];
 -                    for (j = 0; j < Block.insz[i]*Block.insz[Block.nin + i]; j++)
 -                    {
 -                        ptr_d[j] = 0.;
 -                    }
 -                    break;
 -                case 11  :
 -                    if ((Block.inptr[i] = (double *) \
 -                                          MALLOC(2 * Block.insz[i] * Block.insz[Block.nin + i] * sizeof(double))) == NULL)
 -                    {
 -                        for (j = 0; j < i; j++)
 -                        {
 -                            FREE(Block.inptr[j]);
 -                        }
 -                        FREE(Block.inptr);
 -                        FREE(Block.insz);
 -                        Scierror(888, _("%s : Allocation error.\n"), fname);
 -                        return 0;
 -                    }
 -                    ptr_d = (double *) Block.inptr[i];
 -                    for (j = 0; j < 2 * Block.insz[i]*Block.insz[Block.nin + i]; j++)
 -                    {
 -                        ptr_d[j] = 0.;
 -                    }
 -                    break;
 -                case 84  :
 -                    if ((Block.inptr[i] = (SCSINT32_COP *) \
 -                                          MALLOC(Block.insz[i] * Block.insz[Block.nin + i] * sizeof(SCSINT32_COP))) == NULL)
 -                    {
 -                        for (j = 0; j < i; j++)
 -                        {
 -                            FREE(Block.inptr[j]);
 -                        }
 -                        FREE(Block.inptr);
 -                        FREE(Block.insz);
 -                        Scierror(888, _("%s : Allocation error.\n"), fname);
 -                        return 0;
 -                    }
 -                    ptr_l = (SCSINT32_COP *) Block.inptr[i];
 -                    for (j = 0; j < Block.insz[i]*Block.insz[Block.nin + i]; j++)
 -                    {
 -                        ptr_l[j] = 0;
 -                    }
 -                    break;
 -                case 82  :
 -                    if ((Block.inptr[i] = (short *) \
 -                                          MALLOC(Block.insz[i] * Block.insz[Block.nin + i] * sizeof(short))) == NULL)
 -                    {
 -                        for (j = 0; j < i; j++)
 -                        {
 -                            FREE(Block.inptr[j]);
 -                        }
 -                        FREE(Block.inptr);
 -                        FREE(Block.insz);
 -                        Scierror(888, _("%s : Allocation error.\n"), fname);
 -                        return 0;
 -                    }
 -                    ptr_s = (short *) Block.inptr[i];
 -                    for (j = 0; j < Block.insz[i]*Block.insz[Block.nin + i]; j++)
 -                    {
 -                        ptr_s[j] = 0;
 -                    }
 -                    break;
 -                case 81  :
 -                    if ((Block.inptr[i] = (char *) \
 -                                          MALLOC(Block.insz[i] * Block.insz[Block.nin + i] * sizeof(char))) == NULL)
 -                    {
 -                        for (j = 0; j < i; j++)
 -                        {
 -                            FREE(Block.inptr[j]);
 -                        }
 -                        FREE(Block.inptr);
 -                        FREE(Block.insz);
 -                        Scierror(888, _("%s : Allocation error.\n"), fname);
 -                        return 0;
 -                    }
 -                    ptr_c = (char *) Block.inptr[i];
 -                    for (j = 0; j < Block.insz[i]*Block.insz[Block.nin + i]; j++)
 -                    {
 -                        ptr_c[j] = 0;
 -                    }
 -                    break;
 -                case 814 :
 -                    if ((Block.inptr[i] = (SCSUINT32_COP *) \
 -                                          MALLOC(Block.insz[i] * Block.insz[Block.nin + i] * sizeof(SCSUINT32_COP))) == NULL)
 -                    {
 -                        for (j = 0; j < i; j++)
 -                        {
 -                            FREE(Block.inptr[j]);
 -                        }
 -                        FREE(Block.inptr);
 -                        FREE(Block.insz);
 -                        Scierror(888, _("%s : Allocation error.\n"), fname);
 -                        return 0;
 -                    }
 -                    ptr_ul = (SCSUINT32_COP *) Block.inptr[i];
 -                    for (j = 0; j < Block.insz[i]*Block.insz[Block.nin + i]; j++)
 -                    {
 -                        ptr_ul[j] = 0;
 -                    }
 -                    break;
 -                case 812 :
 -                    if ((Block.inptr[i] = (unsigned short *) \
 -                                          MALLOC(Block.insz[i] * Block.insz[Block.nin + i] * sizeof(unsigned short))) == NULL)
 -                    {
 -                        for (j = 0; j < i; j++)
 -                        {
 -                            FREE(Block.inptr[j]);
 -                        }
 -                        FREE(Block.inptr);
 -                        FREE(Block.insz);
 -                        Scierror(888, _("%s : Allocation error.\n"), fname);
 -                        return 0;
 -                    }
 -                    ptr_us = (unsigned short *) Block.inptr[i];
 -                    for (j = 0; j < Block.insz[i]*Block.insz[Block.nin + i]; j++)
 -                    {
 -                        ptr_us[j] = 0;
 -                    }
 -                    break;
 -                case 811 :
 -                    if ((Block.inptr[i] = (unsigned char *) \
 -                                          MALLOC(Block.insz[i] * Block.insz[Block.nin + i] * sizeof(unsigned char))) == NULL)
 -                    {
 -                        for (j = 0; j < i; j++)
 -                        {
 -                            FREE(Block.inptr[j]);
 -                        }
 -                        FREE(Block.inptr);
 -                        FREE(Block.insz);
 -                        Scierror(888, _("%s : Allocation error.\n"), fname);
 -                        return 0;
 -                    }
 -                    ptr_uc = (unsigned char *) Block.inptr[i];
 -                    for (j = 0; j < Block.insz[i]*Block.insz[Block.nin + i]; j++)
 -                    {
 -                        ptr_uc[j] = 0;
 -                    }
 -                    break;
 -            }
 -        }
 -    }
 +    //    for (i = 0; i < Block.nin; i++)
 +    //    {
 +    //        switch (Block.insz[2 * Block.nin + i])
 +    //        {
 +    //            case 10  :
 +    //                if ((Block.inptr[i] = (double *) MALLOC(Block.insz[i] * Block.insz[Block.nin + i] * sizeof(double))) == NULL)
 +    //                {
 +    //                    for (j = 0; j < i; j++)
 +    //                    {
 +    //                        FREE(Block.inptr[j]);
 +    //                    }
 +    //                    FREE(Block.inptr);
 +    //                    FREE(Block.insz);
 +    //                    Scierror(888, _("%s : Allocation error.\n"), fname);
 +    //                    return 0;
 +    //                }
 +    //                ptr_d = (double *) Block.inptr[i];
 +    //                for (j = 0; j < Block.insz[i]*Block.insz[Block.nin + i]; j++)
 +    //                {
 +    //                    ptr_d[j] = 0.;
 +    //                }
 +    //                break;
 +    //            case 11  :
 +    //                if ((Block.inptr[i] = (double *) \
 +    //                                      MALLOC(2 * Block.insz[i] * Block.insz[Block.nin + i] * sizeof(double))) == NULL)
 +    //                {
 +    //                    for (j = 0; j < i; j++)
 +    //                    {
 +    //                        FREE(Block.inptr[j]);
 +    //                    }
 +    //                    FREE(Block.inptr);
 +    //                    FREE(Block.insz);
 +    //                    Scierror(888, _("%s : Allocation error.\n"), fname);
 +    //                    return 0;
 +    //                }
 +    //                ptr_d = (double *) Block.inptr[i];
 +    //                for (j = 0; j < 2 * Block.insz[i]*Block.insz[Block.nin + i]; j++)
 +    //                {
 +    //                    ptr_d[j] = 0.;
 +    //                }
 +    //                break;
 +    //            case 84  :
-     //                if ((Block.inptr[i] = (long *) \
-     //                                      MALLOC(Block.insz[i] * Block.insz[Block.nin + i] * sizeof(long))) == NULL)
++    //                if ((Block.inptr[i] = (SCSINT32_COP *) \
++    //                                      MALLOC(Block.insz[i] * Block.insz[Block.nin + i] * sizeof(SCSINT32_COP))) == NULL)
 +    //                {
 +    //                    for (j = 0; j < i; j++)
 +    //                    {
 +    //                        FREE(Block.inptr[j]);
 +    //                    }
 +    //                    FREE(Block.inptr);
 +    //                    FREE(Block.insz);
 +    //                    Scierror(888, _("%s : Allocation error.\n"), fname);
 +    //                    return 0;
 +    //                }
-     //                ptr_l = (long *) Block.inptr[i];
++    //                ptr_l = (SCSINT32_COP *) Block.inptr[i];
 +    //                for (j = 0; j < Block.insz[i]*Block.insz[Block.nin + i]; j++)
 +    //                {
 +    //                    ptr_l[j] = 0;
 +    //                }
 +    //                break;
 +    //            case 82  :
 +    //                if ((Block.inptr[i] = (short *) \
 +    //                                      MALLOC(Block.insz[i] * Block.insz[Block.nin + i] * sizeof(short))) == NULL)
 +    //                {
 +    //                    for (j = 0; j < i; j++)
 +    //                    {
 +    //                        FREE(Block.inptr[j]);
 +    //                    }
 +    //                    FREE(Block.inptr);
 +    //                    FREE(Block.insz);
 +    //                    Scierror(888, _("%s : Allocation error.\n"), fname);
 +    //                    return 0;
 +    //                }
 +    //                ptr_s = (short *) Block.inptr[i];
 +    //                for (j = 0; j < Block.insz[i]*Block.insz[Block.nin + i]; j++)
 +    //                {
 +    //                    ptr_s[j] = 0;
 +    //                }
 +    //                break;
 +    //            case 81  :
 +    //                if ((Block.inptr[i] = (char *) \
 +    //                                      MALLOC(Block.insz[i] * Block.insz[Block.nin + i] * sizeof(char))) == NULL)
 +    //                {
 +    //                    for (j = 0; j < i; j++)
 +    //                    {
 +    //                        FREE(Block.inptr[j]);
 +    //                    }
 +    //                    FREE(Block.inptr);
 +    //                    FREE(Block.insz);
 +    //                    Scierror(888, _("%s : Allocation error.\n"), fname);
 +    //                    return 0;
 +    //                }
 +    //                ptr_c = (char *) Block.inptr[i];
 +    //                for (j = 0; j < Block.insz[i]*Block.insz[Block.nin + i]; j++)
 +    //                {
 +    //                    ptr_c[j] = 0;
 +    //                }
 +    //                break;
 +    //            case 814 :
-     //                if ((Block.inptr[i] = (unsigned long *) \
-     //                                      MALLOC(Block.insz[i] * Block.insz[Block.nin + i] * sizeof(unsigned long))) == NULL)
++    //                if ((Block.inptr[i] = (SCSUINT32_COP *) \
++    //                                      MALLOC(Block.insz[i] * Block.insz[Block.nin + i] * sizeof(SCSUINT32_COP))) == NULL)
 +    //                {
 +    //                    for (j = 0; j < i; j++)
 +    //                    {
 +    //                        FREE(Block.inptr[j]);
 +    //                    }
 +    //                    FREE(Block.inptr);
 +    //                    FREE(Block.insz);
 +    //                    Scierror(888, _("%s : Allocation error.\n"), fname);
 +    //                    return 0;
 +    //                }
-     //                ptr_ul = (unsigned long *) Block.inptr[i];
++    //                ptr_ul = (SCSUINT32_COP *) Block.inptr[i];
 +    //                for (j = 0; j < Block.insz[i]*Block.insz[Block.nin + i]; j++)
 +    //                {
 +    //                    ptr_ul[j] = 0;
 +    //                }
 +    //                break;
 +    //            case 812 :
 +    //                if ((Block.inptr[i] = (unsigned short *) \
 +    //                                      MALLOC(Block.insz[i] * Block.insz[Block.nin + i] * sizeof(unsigned short))) == NULL)
 +    //                {
 +    //                    for (j = 0; j < i; j++)
 +    //                    {
 +    //                        FREE(Block.inptr[j]);
 +    //                    }
 +    //                    FREE(Block.inptr);
 +    //                    FREE(Block.insz);
 +    //                    Scierror(888, _("%s : Allocation error.\n"), fname);
 +    //                    return 0;
 +    //                }
 +    //                ptr_us = (unsigned short *) Block.inptr[i];
 +    //                for (j = 0; j < Block.insz[i]*Block.insz[Block.nin + i]; j++)
 +    //                {
 +    //                    ptr_us[j] = 0;
 +    //                }
 +    //                break;
 +    //            case 811 :
 +    //                if ((Block.inptr[i] = (unsigned char *) \
 +    //                                      MALLOC(Block.insz[i] * Block.insz[Block.nin + i] * sizeof(unsigned char))) == NULL)
 +    //                {
 +    //                    for (j = 0; j < i; j++)
 +    //                    {
 +    //                        FREE(Block.inptr[j]);
 +    //                    }
 +    //                    FREE(Block.inptr);
 +    //                    FREE(Block.insz);
 +    //                    Scierror(888, _("%s : Allocation error.\n"), fname);
 +    //                    return 0;
 +    //                }
 +    //                ptr_uc = (unsigned char *) Block.inptr[i];
 +    //                for (j = 0; j < Block.insz[i]*Block.insz[Block.nin + i]; j++)
 +    //                {
 +    //                    ptr_uc[j] = 0;
 +    //                }
 +    //                break;
 +    //        }
 +    //    }
 +    //}
  
 -    /* check output ports */
 -    /* 6 : model.out  */
 -    n            = MlistGetFieldNumber(il1, "out");
 -    ilh          = (int *) (listentry(il1, n));
 -    mh           = ilh[1];
 -    nh           = ilh[2];
 -    Block.nout   = mh * nh;
 -    Block.outsz  = NULL;
 -    Block.outptr = NULL;
 -    if (mh * nh != 0)
 -    {
 -        /* check value of out */
 -        for (i = 0; i < Block.nout; i++)
 -        {
 -            if ((*((double *)(&ilh[4]) + i)) <= 0.)
 -            {
 -                Scierror(888, _("%s : Undetermined Size. out(%d)=%d. Please adjust your model.\n"), \
 -                         fname, i + 1, (int)(*((double *)(&ilh[4]) + i)));
 -                for (j = 0; j < Block.nin; j++)
 -                {
 -                    FREE(Block.inptr[j]);
 -                }
 -                FREE(Block.inptr);
 -                FREE(Block.insz);
 -                return 0;
 -            }
 -        }
 -        /* alloc outsz */
 -        if ((Block.outsz = (int *) MALLOC(Block.nout * 3 * sizeof(int))) == NULL)
 -        {
 -            Scierror(888, _("%s : Allocation error.\n"), fname);
 -            for (j = 0; j < Block.nin; j++)
 -            {
 -                FREE(Block.inptr[j]);
 -            }
 -            FREE(Block.inptr);
 -            FREE(Block.insz);
 -            return 0;
 -        }
 -        /* alloc outptr */
 -        if ((Block.outptr = (void **) MALLOC(Block.nout * sizeof(void *))) == NULL)
 -        {
 -            FREE(Block.outsz);
 -            for (j = 0; j < Block.nin; j++)
 -            {
 -                FREE(Block.inptr[j]);
 -            }
 -            FREE(Block.inptr);
 -            FREE(Block.insz);
 -            Scierror(888, _("%s : Allocation error.\n"), fname);
 -            return 0;
 -        }
 -        /* 7 : model.out2  */
 -        n    = MlistGetFieldNumber(il1, "out2");
 -        ilh2 = (int *) (listentry(il1, n));
 -        mh2  = ilh2[1];
 -        nh2  = ilh2[2];
 -        /* check value of out2 */
 -        for (i = 0; i < (mh2 * nh2); i++)
 -        {
 -            if ((*((double *)(&ilh2[4]) + i)) <= 0.)
 -            {
 -                Scierror(888, _("%s : Undetermined Size. out2(%d)=%d. Please adjust your model.\n"), \
 -                         fname, i + 1, (int)(*((double *)(&ilh2[4]) + i)));
 -                for (j = 0; j < Block.nin; j++)
 -                {
 -                    FREE(Block.inptr[j]);
 -                }
 -                FREE(Block.insz);
 -                FREE(Block.inptr);
 -                FREE(Block.outptr);
 -                FREE(Block.outsz);
 -                return 0;
 -            }
 -        }
 -        /* 8 : model.outtyp  */
 -        n    = MlistGetFieldNumber(il1, "outtyp");
 -        ilh3 = (int *) (listentry(il1, n));
 -        mh3  = ilh3[1];
 -        nh3  = ilh3[2];
 -        /* check value of intyp */
 -        for (i = 0; i < (mh3 * nh3); i++)
 -        {
 -            if ((*((double *)(&ilh3[4]) + i)) <= 0.)
 -            {
 -                Scierror(888, _("%s : Undetermined Type. outtyp(%d)=%d. Please adjust your model.\n"), \
 -                         fname, i + 1, (int)(*((double *)(&ilh3[4]) + i)));
 -                FREE(Block.insz);
 -                FREE(Block.inptr);
 -                FREE(Block.outptr);
 -                FREE(Block.outsz);
 -                return 0;
 -            }
 -        }
 -        if (((mh * nh) == (mh2 * nh2)) && (((mh * nh) == (mh3 * nh3))))
 -        {
 -            for (i = 0; i < Block.nout; i++)
 -            {
 -                Block.outsz[i] = (int) * ((double *)(&ilh[4]) + i);
 -                Block.outsz[Block.nout + i] = (int) * ((double *)(&ilh2[4]) + i);
 -                type = *((double *)(&ilh3[4]) + i);
 -                if (type == 1)
 -                {
 -                    Block.outsz[2 * Block.nout + i] = 10;
 -                }
 -                else if (type == 2)
 -                {
 -                    Block.outsz[2 * Block.nout + i] = 11;
 -                }
 -                else if (type == 3)
 -                {
 -                    Block.outsz[2 * Block.nout + i] = 84;
 -                }
 -                else if (type == 4)
 -                {
 -                    Block.outsz[2 * Block.nout + i] = 82;
 -                }
 -                else if (type == 5)
 -                {
 -                    Block.outsz[2 * Block.nout + i] = 81;
 -                }
 -                else if (type == 6)
 -                {
 -                    Block.outsz[2 * Block.nout + i] = 814;
 -                }
 -                else if (type == 7)
 -                {
 -                    Block.outsz[2 * Block.nout + i] = 812;
 -                }
 -                else if (type == 8)
 -                {
 -                    Block.outsz[2 * Block.nout + i] = 811;
 -                }
 -                else
 -                {
 -                    Block.outsz[2 * Block.nout + i] = 10;
 -                }
 -            }
 -        }
 -        else
 -        {
 -            for (i = 0; i < Block.nout; i++)
 -            {
 -                Block.outsz[i] = (int) * ((double *)(&ilh[4]) + i);
 -                Block.outsz[Block.nout + i] = 1;
 -                Block.outsz[2 * Block.nout + i] = 10;
 -            }
 -        }
 -        for (i = 0; i < Block.nout; i++)
 -        {
 -            switch (Block.outsz[2 * Block.nout + i])
 -            {
 -                case 10  :
 -                    if ((Block.outptr[i] = (double *) \
 -                                           MALLOC(Block.outsz[i] * Block.outsz[Block.nout + i] * sizeof(double))) == NULL)
 -                    {
 -                        for (j = 0; j < Block.nin; j++)
 -                        {
 -                            FREE(Block.inptr[j]);
 -                        }
 -                        FREE(Block.inptr);
 -                        FREE(Block.insz);
 -                        for (j = 0; j < i; j++)
 -                        {
 -                            FREE(Block.outptr[j]);
 -                        }
 -                        FREE(Block.outptr);
 -                        FREE(Block.outsz);
 -                        Scierror(888, _("%s : Allocation error.\n"), fname);
 -                        return 0;
 -                    }
 -                    ptr_d = (double *) Block.outptr[i];
 -                    for (j = 0; j < Block.outsz[i]*Block.outsz[Block.nout + i]; j++)
 -                    {
 -                        ptr_d[j] = 0.;
 -                    }
 -                    break;
 -                case 11  :
 -                    if ((Block.outptr[i] = (double *) \
 -                                           MALLOC(2 * Block.outsz[i] * Block.outsz[Block.nout + i] * sizeof(double))) == NULL)
 -                    {
 -                        for (j = 0; j < Block.nin; j++)
 -                        {
 -                            FREE(Block.inptr[j]);
 -                        }
 -                        FREE(Block.inptr);
 -                        FREE(Block.insz);
 -                        for (j = 0; j < i; j++)
 -                        {
 -                            FREE(Block.outptr[j]);
 -                        }
 -                        FREE(Block.outptr);
 -                        FREE(Block.outsz);
 -                        Scierror(888, _("%s : Allocation error.\n"), fname);
 -                        return 0;
 -                    }
 -                    ptr_d = (double *) Block.outptr[i];
 -                    for (j = 0; j < 2 * Block.outsz[i]*Block.outsz[Block.nout + i]; j++)
 -                    {
 -                        ptr_d[j] = 0.;
 -                    }
 -                    break;
 -                case 84  :
 -                    if ((Block.outptr[i] = (SCSINT32_COP *) \
 -                                           MALLOC(Block.outsz[i] * Block.outsz[Block.nout + i] * sizeof(SCSINT32_COP))) == NULL)
 -                    {
 -                        for (j = 0; j < Block.nin; j++)
 -                        {
 -                            FREE(Block.inptr[j]);
 -                        }
 -                        FREE(Block.inptr);
 -                        FREE(Block.insz);
 -                        for (j = 0; j < i; j++)
 -                        {
 -                            FREE(Block.outptr[j]);
 -                        }
 -                        FREE(Block.outptr);
 -                        FREE(Block.outsz);
 -                        Scierror(888, _("%s : Allocation error.\n"), fname);
 -                        return 0;
 -                    }
 -                    ptr_l = (SCSINT32_COP *) Block.outptr[i];
 -                    for (j = 0; j < Block.outsz[i]*Block.outsz[Block.nout + i]; j++)
 -                    {
 -                        ptr_l[j] = 0;
 -                    }
 -                    break;
 -                case 82  :
 -                    if ((Block.outptr[i] = (short *) \
 -                                           MALLOC(Block.outsz[i] * Block.outsz[Block.nout + i] * sizeof(short))) == NULL)
 -                    {
 -                        for (j = 0; j < Block.nin; j++)
 -                        {
 -                            FREE(Block.inptr[j]);
 -                        }
 -                        FREE(Block.inptr);
 -                        FREE(Block.insz);
 -                        for (j = 0; j < i; j++)
 -                        {
 -                            FREE(Block.outptr[j]);
 -                        }
 -                        FREE(Block.outptr);
 -                        FREE(Block.outsz);
 -                        Scierror(888, _("%s : Allocation error.\n"), fname);
 -                        return 0;
 -                    }
 -                    ptr_s = (short *) Block.outptr[i];
 -                    for (j = 0; j < Block.outsz[i]*Block.outsz[Block.nout + i]; j++)
 -                    {
 -                        ptr_s[j] = 0;
 -                    }
 -                    break;
 -                case 81  :
 -                    if ((Block.outptr[i] = (char *) \
 -                                           MALLOC(Block.outsz[i] * Block.outsz[Block.nout + i] * sizeof(char))) == NULL)
 -                    {
 -                        for (j = 0; j < Block.nin; j++)
 -                        {
 -                            FREE(Block.inptr[j]);
 -                        }
 -                        FREE(Block.inptr);
 -                        FREE(Block.insz);
 -                        for (j = 0; j < i; j++)
 -                        {
 -                            FREE(Block.outptr[j]);
 -                        }
 -                        FREE(Block.outptr);
 -                        FREE(Block.outsz);
 -                        Scierror(888, _("%s : Allocation error.\n"), fname);
 -                        return 0;
 -                    }
 -                    ptr_c = (char *) Block.outptr[i];
 -                    for (j = 0; j < Block.outsz[i]*Block.outsz[Block.nout + i]; j++)
 -                    {
 -                        ptr_c[j] = 0;
 -                    }
 -                    break;
 -                case 814 :
 -                    if ((Block.outptr[i] = (SCSUINT32_COP *) \
 -                                           MALLOC(Block.outsz[i] * Block.outsz[Block.nout + i] * sizeof(SCSUINT32_COP))) == NULL)
 -                    {
 -                        for (j = 0; j < Block.nin; j++)
 -                        {
 -                            FREE(Block.inptr[j]);
 -                        }
 -                        FREE(Block.inptr);
 -                        FREE(Block.insz);
 -                        for (j = 0; j < i; j++)
 -                        {
 -                            FREE(Block.outptr[j]);
 -                        }
 -                        FREE(Block.outptr);
 -                        FREE(Block.outsz);
 -                        Scierror(888, _("%s : Allocation error.\n"), fname);
 -                        return 0;
 -                    }
 -                    ptr_ul = (SCSUINT32_COP *) Block.outptr[i];
 -                    for (j = 0; j < Block.outsz[i]*Block.outsz[Block.nout + i]; j++)
 -                    {
 -                        ptr_ul[j] = 0;
 -                    }
 -                    break;
 -                case 812 :
 -                    if ((Block.outptr[i] = (unsigned short *) \
 -                                           MALLOC(Block.outsz[i] * Block.outsz[Block.nout + i] * sizeof(unsigned short))) == NULL)
 -                    {
 -                        for (j = 0; j < Block.nin; j++)
 -                        {
 -                            FREE(Block.inptr[j]);
 -                        }
 -                        FREE(Block.inptr);
 -                        FREE(Block.insz);
 -                        for (j = 0; j < i; j++)
 -                        {
 -                            FREE(Block.outptr[j]);
 -                        }
 -                        FREE(Block.outptr);
 -                        FREE(Block.outsz);
 -                        Scierror(888, _("%s : Allocation error.\n"), fname);
 -                        return 0;
 -                    }
 -                    ptr_us = (unsigned short *) Block.outptr[i];
 -                    for (j = 0; j < Block.outsz[i]*Block.outsz[Block.nout + i]; j++)
 -                    {
 -                        ptr_us[j] = 0;
 -                    }
 -                    break;
 -                case 811 :
 -                    if ((Block.outptr[i] = (unsigned char *) \
 -                                           MALLOC(Block.outsz[i] * Block.outsz[Block.nout + i] * sizeof(unsigned char))) == NULL)
 -                    {
 -                        for (j = 0; j < Block.nin; j++)
 -                        {
 -                            FREE(Block.inptr[j]);
 -                        }
 -                        FREE(Block.inptr);
 -                        FREE(Block.insz);
 -                        for (j = 0; j < i; j++)
 -                        {
 -                            FREE(Block.outptr[j]);
 -                        }
 -                        FREE(Block.outptr);
 -                        FREE(Block.outsz);
 -                        Scierror(888, _("%s : Allocation error.\n"), fname);
 -                        return 0;
 -                    }
 -                    ptr_uc = (unsigned char *) Block.outptr[i];
 -                    for (j = 0; j < Block.outsz[i]*Block.outsz[Block.nout + i]; j++)
 -                    {
 -                        ptr_uc[j] = 0;
 -                    }
 -                    break;
 -            }
 -        }
 -    }
 +    ///* check output ports */
 +    ///* 6 : model.out  */
 +    //n            = MlistGetFieldNumber(il1, "out");
 +    //ilh          = (int *) (listentry(il1, n));
 +    //mh           = ilh[1];
 +    //nh           = ilh[2];
 +    //Block.nout   = mh * nh;
 +    //Block.outsz  = NULL;
 +    //Block.outptr = NULL;
 +    //if (mh * nh != 0)
 +    //{
 +    //    /* check value of out */
 +    //    for (i = 0; i < Block.nout; i++)
 +    //    {
 +    //        if ((*((double *)(&ilh[4]) + i)) <= 0.)
 +    //        {
 +    //            Scierror(888, _("%s : Undetermined Size. out(%d)=%d. Please adjust your model.\n"), \
 +    //                     fname, i + 1, (int)(*((double *)(&ilh[4]) + i)));
 +    //            for (j = 0; j < Block.nin; j++)
 +    //            {
 +    //                FREE(Block.inptr[j]);
 +    //            }
 +    //            FREE(Block.inptr);
 +    //            FREE(Block.insz);
 +    //            return 0;
 +    //        }
 +    //    }
 +    //    /* alloc outsz */
 +    //    if ((Block.outsz = (int *) MALLOC(Block.nout * 3 * sizeof(int))) == NULL)
 +    //    {
 +    //        Scierror(888, _("%s : Allocation error.\n"), fname);
 +    //        for (j = 0; j < Block.nin; j++)
 +    //        {
 +    //            FREE(Block.inptr[j]);
 +    //        }
 +    //        FREE(Block.inptr);
 +    //        FREE(Block.insz);
 +    //        return 0;
 +    //    }
 +    //    /* alloc outptr */
 +    //    if ((Block.outptr = (void **) MALLOC(Block.nout * sizeof(void *))) == NULL)
 +    //    {
 +    //        FREE(Block.outsz);
 +    //        for (j = 0; j < Block.nin; j++)
 +    //        {
 +    //            FREE(Block.inptr[j]);
 +    //        }
 +    //        FREE(Block.inptr);
 +    //        FREE(Block.insz);
 +    //        Scierror(888, _("%s : Allocation error.\n"), fname);
 +    //        return 0;
 +    //    }
 +    //    /* 7 : model.out2  */
 +    //    n    = MlistGetFieldNumber(il1, "out2");
 +    //    ilh2 = (int *) (listentry(il1, n));
 +    //    mh2  = ilh2[1];
 +    //    nh2  = ilh2[2];
 +    //    /* check value of out2 */
 +    //    for (i = 0; i < (mh2 * nh2); i++)
 +    //    {
 +    //        if ((*((double *)(&ilh2[4]) + i)) <= 0.)
 +    //        {
 +    //            Scierror(888, _("%s : Undetermined Size. out2(%d)=%d. Please adjust your model.\n"), \
 +    //                     fname, i + 1, (int)(*((double *)(&ilh2[4]) + i)));
 +    //            for (j = 0; j < Block.nin; j++)
 +    //            {
 +    //                FREE(Block.inptr[j]);
 +    //            }
 +    //            FREE(Block.insz);
 +    //            FREE(Block.inptr);
 +    //            FREE(Block.outptr);
 +    //            FREE(Block.outsz);
 +    //            return 0;
 +    //        }
 +    //    }
 +    //    /* 8 : model.outtyp  */
 +    //    n    = MlistGetFieldNumber(il1, "outtyp");
 +    //    ilh3 = (int *) (listentry(il1, n));
 +    //    mh3  = ilh3[1];
 +    //    nh3  = ilh3[2];
 +    //    /* check value of intyp */
 +    //    for (i = 0; i < (mh3 * nh3); i++)
 +    //    {
 +    //        if ((*((double *)(&ilh3[4]) + i)) <= 0.)
 +    //        {
 +    //            Scierror(888, _("%s : Undetermined Type. outtyp(%d)=%d. Please adjust your model.\n"), \
 +    //                     fname, i + 1, (int)(*((double *)(&ilh3[4]) + i)));
 +    //            FREE(Block.insz);
 +    //            FREE(Block.inptr);
 +    //            FREE(Block.outptr);
 +    //            FREE(Block.outsz);
 +    //            return 0;
 +    //        }
 +    //    }
 +    //    if (((mh * nh) == (mh2 * nh2)) && (((mh * nh) == (mh3 * nh3))))
 +    //    {
 +    //        for (i = 0; i < Block.nout; i++)
 +    //        {
 +    //            Block.outsz[i] = (int) * ((double *)(&ilh[4]) + i);
 +    //            Block.outsz[Block.nout + i] = (int) * ((double *)(&ilh2[4]) + i);
 +    //            type = *((double *)(&ilh3[4]) + i);
 +    //            if (type == 1)
 +    //            {
 +    //                Block.outsz[2 * Block.nout + i] = 10;
 +    //            }
 +    //            else if (type == 2)
 +    //            {
 +    //                Block.outsz[2 * Block.nout + i] = 11;
 +    //            }
 +    //            else if (type == 3)
 +    //            {
 +    //                Block.outsz[2 * Block.nout + i] = 84;
 +    //            }
 +    //            else if (type == 4)
 +    //            {
 +    //                Block.outsz[2 * Block.nout + i] = 82;
 +    //            }
 +    //            else if (type == 5)
 +    //            {
 +    //                Block.outsz[2 * Block.nout + i] = 81;
 +    //            }
 +    //            else if (type == 6)
 +    //            {
 +    //                Block.outsz[2 * Block.nout + i] = 814;
 +    //            }
 +    //            else if (type == 7)
 +    //            {
 +    //                Block.outsz[2 * Block.nout + i] = 812;
 +    //            }
 +    //            else if (type == 8)
 +    //            {
 +    //                Block.outsz[2 * Block.nout + i] = 811;
 +    //            }
 +    //            else
 +    //            {
 +    //                Block.outsz[2 * Block.nout + i] = 10;
 +    //            }
 +    //        }
 +    //    }
 +    //    else
 +    //    {
 +    //        for (i = 0; i < Block.nout; i++)
 +    //        {
 +    //            Block.outsz[i] = (int) * ((double *)(&ilh[4]) + i);
 +    //            Block.outsz[Block.nout + i] = 1;
 +    //            Block.outsz[2 * Block.nout + i] = 10;
 +    //        }
 +    //    }
 +    //    for (i = 0; i < Block.nout; i++)
 +    //    {
 +    //        switch (Block.outsz[2 * Block.nout + i])
 +    //        {
 +    //            case 10  :
 +    //                if ((Block.outptr[i] = (double *) \
 +    //                                       MALLOC(Block.outsz[i] * Block.outsz[Block.nout + i] * sizeof(double))) == NULL)
 +    //                {
 +    //                    for (j = 0; j < Block.nin; j++)
 +    //                    {
 +    //                        FREE(Block.inptr[j]);
 +    //                    }
 +    //                    FREE(Block.inptr);
 +    //                    FREE(Block.insz);
 +    //                    for (j = 0; j < i; j++)
 +    //                    {
 +    //                        FREE(Block.outptr[j]);
 +    //                    }
 +    //                    FREE(Block.outptr);
 +    //                    FREE(Block.outsz);
 +    //                    Scierror(888, _("%s : Allocation error.\n"), fname);
 +    //                    return 0;
 +    //                }
 +    //                ptr_d = (double *) Block.outptr[i];
 +    //                for (j = 0; j < Block.outsz[i]*Block.outsz[Block.nout + i]; j++)
 +    //                {
 +    //                    ptr_d[j] = 0.;
 +    //                }
 +    //                break;
 +    //            case 11  :
 +    //                if ((Block.outptr[i] = (double *) \
 +    //                                       MALLOC(2 * Block.outsz[i] * Block.outsz[Block.nout + i] * sizeof(double))) == NULL)
 +    //                {
 +    //                    for (j = 0; j < Block.nin; j++)
 +    //                    {
 +    //                        FREE(Block.inptr[j]);
 +    //                    }
 +    //                    FREE(Block.inptr);
 +    //                    FREE(Block.insz);
 +    //                    for (j = 0; j < i; j++)
 +    //                    {
 +    //                        FREE(Block.outptr[j]);
 +    //                    }
 +    //                    FREE(Block.outptr);
 +    //                    FREE(Block.outsz);
 +    //                    Scierror(888, _("%s : Allocation error.\n"), fname);
 +    //                    return 0;
 +    //                }
 +    //                ptr_d = (double *) Block.outptr[i];
 +    //                for (j = 0; j < 2 * Block.outsz[i]*Block.outsz[Block.nout + i]; j++)
 +    //                {
 +    //                    ptr_d[j] = 0.;
 +    //                }
 +    //                break;
 +    //            case 84  :
-     //                if ((Block.outptr[i] = (long *) \
-     //                                       MALLOC(Block.outsz[i] * Block.outsz[Block.nout + i] * sizeof(long))) == NULL)
++    //                if ((Block.outptr[i] = (SCSINT32_COP *) \
++    //                                       MALLOC(Block.outsz[i] * Block.outsz[Block.nout + i] * sizeof(SCSINT32_COP))) == NULL)
 +    //                {
 +    //                    for (j = 0; j < Block.nin; j++)
 +    //                    {
 +    //                        FREE(Block.inptr[j]);
 +    //                    }
 +    //                    FREE(Block.inptr);
 +    //                    FREE(Block.insz);
 +    //                    for (j = 0; j < i; j++)
 +    //                    {
 +    //                        FREE(Block.outptr[j]);
 +    //                    }
 +    //                    FREE(Block.outptr);
 +    //                    FREE(Block.outsz);
 +    //                    Scierror(888, _("%s : Allocation error.\n"), fname);
 +    //                    return 0;
 +    //                }
-     //                ptr_l = (long *) Block.outptr[i];
++    //                ptr_l = (SCSINT32_COP *) Block.outptr[i];
 +    //                for (j = 0; j < Block.outsz[i]*Block.outsz[Block.nout + i]; j++)
 +    //                {
 +    //                    ptr_l[j] = 0;
 +    //                }
 +    //                break;
 +    //            case 82  :
 +    //                if ((Block.outptr[i] = (short *) \
 +    //                                       MALLOC(Block.outsz[i] * Block.outsz[Block.nout + i] * sizeof(short))) == NULL)
 +    //                {
 +    //                    for (j = 0; j < Block.nin; j++)
 +    //                    {
 +    //                        FREE(Block.inptr[j]);
 +    //                    }
 +    //                    FREE(Block.inptr);
 +    //                    FREE(Block.insz);
 +    //                    for (j = 0; j < i; j++)
 +    //                    {
 +    //                        FREE(Block.outptr[j]);
 +    //                    }
 +    //                    FREE(Block.outptr);
 +    //                    FREE(Block.outsz);
 +    //                    Scierror(888, _("%s : Allocation error.\n"), fname);
 +    //                    return 0;
 +    //                }
 +    //                ptr_s = (short *) Block.outptr[i];
 +    //                for (j = 0; j < Block.outsz[i]*Block.outsz[Block.nout + i]; j++)
 +    //                {
 +    //                    ptr_s[j] = 0;
 +    //                }
 +    //                break;
 +    //            case 81  :
 +    //                if ((Block.outptr[i] = (char *) \
 +    //                                       MALLOC(Block.outsz[i] * Block.outsz[Block.nout + i] * sizeof(char))) == NULL)
 +    //                {
 +    //                    for (j = 0; j < Block.nin; j++)
 +    //                    {
 +    //                        FREE(Block.inptr[j]);
 +    //                    }
 +    //                    FREE(Block.inptr);
 +    //                    FREE(Block.insz);
 +    //                    for (j = 0; j < i; j++)
 +    //                    {
 +    //                        FREE(Block.outptr[j]);
 +    //                    }
 +    //                    FREE(Block.outptr);
 +    //                    FREE(Block.outsz);
 +    //                    Scierror(888, _("%s : Allocation error.\n"), fname);
 +    //                    return 0;
 +    //                }
 +    //                ptr_c = (char *) Block.outptr[i];
 +    //                for (j = 0; j < Block.outsz[i]*Block.outsz[Block.nout + i]; j++)
 +    //                {
 +    //                    ptr_c[j] = 0;
 +    //                }
 +    //                break;
 +    //            case 814 :
-     //                if ((Block.outptr[i] = (unsigned long *) \
-     //                                       MALLOC(Block.outsz[i] * Block.outsz[Block.nout + i] * sizeof(unsigned long))) == NULL)
++    //                if ((Block.outptr[i] = (SCSUINT32_COP *) \
++    //                                       MALLOC(Block.outsz[i] * Block.outsz[Block.nout + i] * sizeof(SCSUINT32_COP))) == NULL)
 +    //                {
 +    //                    for (j = 0; j < Block.nin; j++)
 +    //                    {
 +    //                        FREE(Block.inptr[j]);
 +    //                    }
 +    //                    FREE(Block.inptr);
 +    //                    FREE(Block.insz);
 +    //                    for (j = 0; j < i; j++)
 +    //                    {
 +    //                        FREE(Block.outptr[j]);
 +    //                    }
 +    //                    FREE(Block.outptr);
 +    //                    FREE(Block.outsz);
 +    //                    Scierror(888, _("%s : Allocation error.\n"), fname);
 +    //                    return 0;
 +    //                }
-     //                ptr_ul = (unsigned long *) Block.outptr[i];
++    //                ptr_ul = (SCSUINT32_COP *) Block.outptr[i];
 +    //                for (j = 0; j < Block.outsz[i]*Block.outsz[Block.nout + i]; j++)
 +    //                {
 +    //                    ptr_ul[j] = 0;
 +    //                }
 +    //                break;
 +    //            case 812 :
 +    //                if ((Block.outptr[i] = (unsigned short *) \
 +    //                                       MALLOC(Block.outsz[i] * Block.outsz[Block.nout + i] * sizeof(unsigned short))) == NULL)
 +    //                {
 +    //                    for (j = 0; j < Block.nin; j++)
 +    //                    {
 +    //                        FREE(Block.inptr[j]);
 +    //                    }
 +    //                    FREE(Block.inptr);
 +    //                    FREE(Block.insz);
 +    //                    for (j = 0; j < i; j++)
 +    //                    {
 +    //                        FREE(Block.outptr[j]);
 +    //                    }
 +    //                    FREE(Block.outptr);
 +    //                    FREE(Block.outsz);
 +    //                    Scierror(888, _("%s : Allocation error.\n"), fname);
 +    //                    return 0;
 +    //                }
 +    //                ptr_us = (unsigned short *) Block.outptr[i];
 +    //                for (j = 0; j < Block.outsz[i]*Block.outsz[Block.nout + i]; j++)
 +    //                {
 +    //                    ptr_us[j] = 0;
 +    //                }
 +    //                break;
 +    //            case 811 :
 +    //                if ((Block.outptr[i] = (unsigned char *) \
 +    //                                       MALLOC(Block.outsz[i] * Block.outsz[Block.nout + i] * sizeof(unsigned char))) == NULL)
 +    //                {
 +    //                    for (j = 0; j < Block.nin; j++)
 +    //                    {
 +    //                        FREE(Block.inptr[j]);
 +    //                    }
 +    //                    FREE(Block.inptr);
 +    //                    FREE(Block.insz);
 +    //                    for (j = 0; j < i; j++)
 +    //                    {
 +    //                        FREE(Block.outptr[j]);
 +    //                    }
 +    //                    FREE(Block.outptr);
 +    //                    FREE(Block.outsz);
 +    //                    Scierror(888, _("%s : Allocation error.\n"), fname);
 +    //                    return 0;
 +    //                }
 +    //                ptr_uc = (unsigned char *) Block.outptr[i];
 +    //                for (j = 0; j < Block.outsz[i]*Block.outsz[Block.nout + i]; j++)
 +    //                {
 +    //                    ptr_uc[j] = 0;
 +    //                }
 +    //                break;
 +    //        }
 +    //    }
 +    //}
  
 -    /* event input port */
 -    /* 9 : model.evtin  */
 +    ///* event input port */
 +    ///* 9 : model.evtin  */
  
 -    /* event output port  */
 -    /* 10 : model.evtout  */
 -    n            = MlistGetFieldNumber(il1, "evtout");
 -    ilh          = (int *) (listentry(il1, n));
 -    mh           = ilh[1];
 -    nh           = ilh[2];
 -    Block.nevout = mh * nh;
 -    Block.evout  = NULL;
 -    if (mh * nh != 0)
 -    {
 -        if ((Block.evout = (double *) MALLOC(Block.nevout * sizeof(double))) == NULL)
 -        {
 -            for (j = 0; j < Block.nin; j++)
 -            {
 -                FREE(Block.inptr[j]);
 -            }
 -            FREE(Block.inptr);
 -            FREE(Block.insz);
 -            for (j = 0; j < Block.nout; j++)
 -            {
 -                FREE(Block.outptr[j]);
 -            }
 -            FREE(Block.outptr);
 -            FREE(Block.outsz);
 -            Scierror(888, _("%s : Allocation error.\n"), fname);
 -            return 0;
 -        }
 -        n            = MlistGetFieldNumber(il1, "firing");
 -        ilh2         = (int *) (listentry(il1, n));
 -        mh2          = ilh2[1];
 -        nh2          = ilh2[2];
 -        if ((mh * nh) == (mh2 * nh2))
 -        {
 -            for (j = 0; j < Block.nevout; j++)
 -            {
 -                Block.evout[j] = *((double *)(&ilh2[4]) + j);
 -            }
 -        }
 -        else
 -        {
 -            for (j = 0; j < Block.nevout; j++)
 -            {
 -                Block.evout[j] = -1.0;
 -            }
 -        }
 -    }
 +    ///* event output port  */
 +    ///* 10 : model.evtout  */
 +    //n            = MlistGetFieldNumber(il1, "evtout");
 +    //ilh          = (int *) (listentry(il1, n));
 +    //mh           = ilh[1];
 +    //nh           = ilh[2];
 +    //Block.nevout = mh * nh;
 +    //Block.evout  = NULL;
 +    //if (mh * nh != 0)
 +    //{
 +    //    if ((Block.evout = (double *) MALLOC(Block.nevout * sizeof(double))) == NULL)
 +    //    {
 +    //        for (j = 0; j < Block.nin; j++)
 +    //        {
 +    //            FREE(Block.inptr[j]);
 +    //        }
 +    //        FREE(Block.inptr);
 +    //        FREE(Block.insz);
 +    //        for (j = 0; j < Block.nout; j++)
 +    //        {
 +    //            FREE(Block.outptr[j]);
 +    //        }
 +    //        FREE(Block.outptr);
 +    //        FREE(Block.outsz);
 +    //        Scierror(888, _("%s : Allocation error.\n"), fname);
 +    //        return 0;
 +    //    }
 +    //    n            = MlistGetFieldNumber(il1, "firing");
 +    //    ilh2         = (int *) (listentry(il1, n));
 +    //    mh2          = ilh2[1];
 +    //    nh2          = ilh2[2];
 +    //    if ((mh * nh) == (mh2 * nh2))
 +    //    {
 +    //        for (j = 0; j < Block.nevout; j++)
 +    //        {
 +    //            Block.evout[j] = *((double *)(&ilh2[4]) + j);
 +    //        }
 +    //    }
 +    //    else
 +    //    {
 +    //        for (j = 0; j < Block.nevout; j++)
 +    //        {
 +    //            Block.evout[j] = -1.0;
 +    //        }
 +    //    }
 +    //}
  
 -    /* continuous state  */
 -    /* 11 : model.state  */
 -    n            = MlistGetFieldNumber(il1, "state");
 -    ilh          = (int *) (listentry(il1, n));
 -    mh           = ilh[1];
 -    nh           = ilh[2];
 -    Block.nx     = mh * nh;
 -    Block.x      = NULL;
 -    Block.xprop  = NULL;
 -    Block.xd     = NULL;
 -    Block.res    = NULL;
 -    if (mh * nh != 0)
 -    {
 -        /* x */
 -        if ((Block.x = (double *) MALLOC(Block.nx * sizeof(double))) == NULL)
 -        {
 -            for (j = 0; j < Block.nin; j++)
 -            {
 -                FREE(Block.inptr[j]);
 -            }
 -            FREE(Block.inptr);
 -            FREE(Block.insz);
 -            for (j = 0; j < Block.nout; j++)
 -            {
 -                FREE(Block.outptr[j]);
 -            }
 -            FREE(Block.outptr);
 -            FREE(Block.outsz);
 -            FREE(Block.evout);
 -            Scierror(888, _("%s : Allocation error.\n"), fname);
 -            return 0;
 -        }
 +    ///* continuous state  */
 +    ///* 11 : model.state  */
 +    //n            = MlistGetFieldNumber(il1, "state");
 +    //ilh          = (int *) (listentry(il1, n));
 +    //mh           = ilh[1];
 +    //nh           = ilh[2];
 +    //Block.nx     = mh * nh;
 +    //Block.x      = NULL;
 +    //Block.xprop  = NULL;
 +    //Block.xd     = NULL;
 +    //Block.res    = NULL;
 +    //if (mh * nh != 0)
 +    //{
 +    //    /* x */
 +    //    if ((Block.x = (double *) MALLOC(Block.nx * sizeof(double))) == NULL)
 +    //    {
 +    //        for (j = 0; j < Block.nin; j++)
 +    //        {
 +    //            FREE(Block.inptr[j]);
 +    //        }
 +    //        FREE(Block.inptr);
 +    //        FREE(Block.insz);
 +    //        for (j = 0; j < Block.nout; j++)
 +    //        {
 +    //            FREE(Block.outptr[j]);
 +    //        }
 +    //        FREE(Block.outptr);
 +    //        FREE(Block.outsz);
 +    //        FREE(Block.evout);
 +    //        Scierror(888, _("%s : Allocation error.\n"), fname);
 +    //        return 0;
 +    //    }
  
 -        for (j = 0; j < Block.nx; j++)
 -        {
 -            Block.x[j] = *((double *)(&ilh[4]) + j);
 -        }
 +    //    for (j = 0; j < Block.nx; j++)
 +    //    {
 +    //        Block.x[j] = *((double *)(&ilh[4]) + j);
 +    //    }
  
 -        /* xd */
 -        if ((Block.xd = (double *) MALLOC(Block.nx * sizeof(double))) == NULL)
 -        {
 -            for (j = 0; j < Block.nin; j++)
 -            {
 -                FREE(Block.inptr[j]);
 -            }
 -            FREE(Block.inptr);
 -            FREE(Block.insz);
 -            for (j = 0; j < Block.nout; j++)
 -            {
 -                FREE(Block.outptr[j]);
 -            }
 -            FREE(Block.outptr);
 -            FREE(Block.outsz);
 -            FREE(Block.evout);
 -            FREE(Block.x);
 -            Scierror(888, _("%s : Allocation error.\n"), fname);
 -            return 0;
 -        }
 +    //    /* xd */
 +    //    if ((Block.xd = (double *) MALLOC(Block.nx * sizeof(double))) == NULL)
 +    //    {
 +    //        for (j = 0; j < Block.nin; j++)
 +    //        {
 +    //            FREE(Block.inptr[j]);
 +    //        }
 +    //        FREE(Block.inptr);
 +    //        FREE(Block.insz);
 +    //        for (j = 0; j < Block.nout; j++)
 +    //        {
 +    //            FREE(Block.outptr[j]);
 +    //        }
 +    //        FREE(Block.outptr);
 +    //        FREE(Block.outsz);
 +    //        FREE(Block.evout);
 +    //        FREE(Block.x);
 +    //        Scierror(888, _("%s : Allocation error.\n"), fname);
 +    //        return 0;
 +    //    }
  
 -        for (j = 0; j < Block.nx; j++)
 -        {
 -            Block.xd[j] = 0.;
 -        }
 -        /* xprop */
 -        if ((Block.xprop = (int *) MALLOC(Block.nx * sizeof(int))) == NULL)
 -        {
 -            for (j = 0; j < Block.nin; j++)
 -            {
 -                FREE(Block.inptr[j]);
 -            }
 -            FREE(Block.inptr);
 -            FREE(Block.insz);
 -            for (j = 0; j < Block.nout; j++)
 -            {
 -                FREE(Block.outptr[j]);
 -            }
 -            FREE(Block.outptr);
 -            FREE(Block.outsz);
 -            FREE(Block.evout);
 -            FREE(Block.x);
 -            FREE(Block.xd);
 -            Scierror(888, _("%s : Allocation error.\n"), fname);
 -            return 0;
 -        }
 +    //    for (j = 0; j < Block.nx; j++)
 +    //    {
 +    //        Block.xd[j] = 0.;
 +    //    }
 +    //    /* xprop */
 +    //    if ((Block.xprop = (int *) MALLOC(Block.nx * sizeof(int))) == NULL)
 +    //    {
 +    //        for (j = 0; j < Block.nin; j++)
 +    //        {
 +    //            FREE(Block.inptr[j]);
 +    //        }
 +    //        FREE(Block.inptr);
 +    //        FREE(Block.insz);
 +    //        for (j = 0; j < Block.nout; j++)
 +    //        {
 +    //            FREE(Block.outptr[j]);
 +    //        }
 +    //        FREE(Block.outptr);
 +    //        FREE(Block.outsz);
 +    //        FREE(Block.evout);
 +    //        FREE(Block.x);
 +    //        FREE(Block.xd);
 +    //        Scierror(888, _("%s : Allocation error.\n"), fname);
 +    //        return 0;
 +    //    }
  
 -        for (j = 0; j < Block.nx; j++)
 -        {
 -            Block.xprop[j] = 1;
 -        }
 -        /* res */
 -        /*if (blktyp>10000) {*/
 -        if ((Block.res = (double *) MALLOC(Block.nx * sizeof(double))) == NULL)
 -        {
 -            for (j = 0; j < Block.nin; j++)
 -            {
 -                FREE(Block.inptr[j]);
 -            }
 -            FREE(Block.inptr);
 -            FREE(Block.insz);
 -            for (j = 0; j < Block.nout; j++)
 -            {
 -                FREE(Block.outptr[j]);
 -            }
 -            FREE(Block.outptr);
 -            FREE(Block.outsz);
 -            FREE(Block.evout);
 -            FREE(Block.x);
 -            FREE(Block.xd);
 -            FREE(Block.xprop);
 -            Scierror(888, _("%s : Allocation error.\n"), fname);
 -            return 0;
 -        }
 +    //    for (j = 0; j < Block.nx; j++)
 +    //    {
 +    //        Block.xprop[j] = 1;
 +    //    }
 +    //    /* res */
 +    //    /*if (blktyp>10000) {*/
 +    //    if ((Block.res = (double *) MALLOC(Block.nx * sizeof(double))) == NULL)
 +    //    {
 +    //        for (j = 0; j < Block.nin; j++)
 +    //        {
 +    //            FREE(Block.inptr[j]);
 +    //        }
 +    //        FREE(Block.inptr);
 +    //        FREE(Block.insz);
 +    //        for (j = 0; j < Block.nout; j++)
 +    //        {
 +    //            FREE(Block.outptr[j]);
 +    //        }
 +    //        FREE(Block.outptr);
 +    //        FREE(Block.outsz);
 +    //        FREE(Block.evout);
 +    //        FREE(Block.x);
 +    //        FREE(Block.xd);
 +    //        FREE(Block.xprop);
 +    //        Scierror(888, _("%s : Allocation error.\n"), fname);
 +    //        return 0;
 +    //    }
  
 -        for (j = 0; j < Block.nx; j++)
 -        {
 -            Block.res[j] = 0.;
 -        }
 -        /*}*/
 -    }
 +    //    for (j = 0; j < Block.nx; j++)
 +    //    {
 +    //        Block.res[j] = 0.;
 +    //    }
 +    //    /*}*/
 +    //}
  
 -    /* discrete state  */
 -    /* 12 : model.dstate  */
 -    n            = MlistGetFieldNumber(il1, "dstate");
 -    ilh          = (int *) (listentry(il1, n));
 -    mh           = ilh[1];
 -    nh           = ilh[2];
 -    Block.nz     = mh * nh;
 -    Block.z      = NULL;
 +    ///* discrete state  */
 +    ///* 12 : model.dstate  */
 +    //n            = MlistGetFieldNumber(il1, "dstate");
 +    //ilh          = (int *) (listentry(il1, n));
 +    //mh           = ilh[1];
 +    //nh           = ilh[2];
 +    //Block.nz     = mh * nh;
 +    //Block.z      = NULL;
  
 -    if (mh * nh != 0)
 -    {
 -        if ((Block.z = (double *) MALLOC(Block.nz * sizeof(double))) == NULL)
 -        {
 -            for (j = 0; j < Block.nin; j++)
 -            {
 -                FREE(Block.inptr[j]);
 -            }
 -            FREE(Block.inptr);
 -            FREE(Block.insz);
 -            for (j = 0; j < Block.nout; j++)
 -            {
 -                FREE(Block.outptr[j]);
 -            }
 -            FREE(Block.outptr);
 -            FREE(Block.outsz);
 -            FREE(Block.evout);
 -            FREE(Block.x);
 -            FREE(Block.xd);
 -            FREE(Block.xprop);
 -            FREE(Block.res);
 -            Scierror(888, _("%s : Allocation error.\n"), fname);
 -            return 0;
 -        }
 +    //if (mh * nh != 0)
 +    //{
 +    //    if ((Block.z = (double *) MALLOC(Block.nz * sizeof(double))) == NULL)
 +    //    {
 +    //        for (j = 0; j < Block.nin; j++)
 +    //        {
 +    //            FREE(Block.inptr[j]);
 +    //        }
 +    //        FREE(Block.inptr);
 +    //        FREE(Block.insz);
 +    //        for (j = 0; j < Block.nout; j++)
 +    //        {
 +    //            FREE(Block.outptr[j]);
 +    //        }
 +    //        FREE(Block.outptr);
 +    //        FREE(Block.outsz);
 +    //        FREE(Block.evout);
 +    //        FREE(Block.x);
 +    //        FREE(Block.xd);
 +    //        FREE(Block.xprop);
 +    //        FREE(Block.res);
 +    //        Scierror(888, _("%s : Allocation error.\n"), fname);
 +    //        return 0;
 +    //    }
  
 -        for (j = 0; j < Block.nz; j++)
 -        {
 -            Block.z[j] = *((double *)(&ilh[4]) + j);
 -        }
 -    }
 +    //    for (j = 0; j < Block.nz; j++)
 +    //    {
 +    //        Block.z[j] = *((double *)(&ilh[4]) + j);
 +    //    }
 +    //}
  
 -    /* discrete object state  */
 -    /* 13 : model.odstate  */
 -    n            = MlistGetFieldNumber(il1, "odstate");
 -    ilh          = (int *) (listentry(il1, n));
 -    mh           = ilh[1];
 -    nh           = ilh[2];
 -    Block.noz    = mh * nh;
 -    Block.ozsz   = NULL;
 -    Block.oztyp  = NULL;
 -    Block.ozptr  = NULL;
 -    if (mh * nh != 0)
 -    {
 -        if ((Block.ozsz = (int *) MALLOC(2 * Block.noz * sizeof(int))) == NULL)
 -        {
 -            for (j = 0; j < Block.nin; j++)
 -            {
 -                FREE(Block.inptr[j]);
 -            }
 -            FREE(Block.inptr);
 -            FREE(Block.insz);
 -            for (j = 0; j < Block.nout; j++)
 -            {
 -                FREE(Block.outptr[j]);
 -            }
 -            FREE(Block.outptr);
 -            FREE(Block.outsz);
 -            FREE(Block.evout);
 -            FREE(Block.x);
 -            FREE(Block.xd);
 -            FREE(Block.xprop);
 -            FREE(Block.res);
 -            FREE(Block.z);
 -            Scierror(888, _("%s : Allocation error.\n"), fname);
 -            return 0;
 -        }
 +    ///* discrete object state  */
 +    ///* 13 : model.odstate  */
 +    //n            = MlistGetFieldNumber(il1, "odstate");
 +    //ilh          = (int *) (listentry(il1, n));
 +    //mh           = ilh[1];
 +    //nh           = ilh[2];
 +    //Block.noz    = mh * nh;
 +    //Block.ozsz   = NULL;
 +    //Block.oztyp  = NULL;
 +    //Block.ozptr  = NULL;
 +    //if (mh * nh != 0)
 +    //{
 +    //    if ((Block.ozsz = (int *) MALLOC(2 * Block.noz * sizeof(int))) == NULL)
 +    //    {
 +    //        for (j = 0; j < Block.nin; j++)
 +    //        {
 +    //            FREE(Block.inptr[j]);
 +    //        }
 +    //        FREE(Block.inptr);
 +    //        FREE(Block.insz);
 +    //        for (j = 0; j < Block.nout; j++)
 +    //        {
 +    //            FREE(Block.outptr[j]);
 +    //        }
 +    //        FREE(Block.outptr);
 +    //        FREE(Block.outsz);
 +    //        FREE(Block.evout);
 +    //        FREE(Block.x);
 +    //        FREE(Block.xd);
 +    //        FREE(Block.xprop);
 +    //        FREE(Block.res);
 +    //        FREE(Block.z);
 +    //        Scierror(888, _("%s : Allocation error.\n"), fname);
 +    //        return 0;
 +    //    }
  
 -        if ((Block.oztyp = (int *) MALLOC(Block.noz * sizeof(int))) == NULL)
 -        {
 -            for (j = 0; j < Block.nin; j++)
 -            {
 -                FREE(Block.inptr[j]);
 -            }
 -            FREE(Block.inptr);
 -            FREE(Block.insz);
 -            for (j = 0; j < Block.nout; j++)
 -            {
 -                FREE(Block.outptr[j]);
 -            }
 -            FREE(Block.outptr);
 -            FREE(Block.outsz);
 -            FREE(Block.evout);
 -            FREE(Block.x);
 -            FREE(Block.xd);
 -            FREE(Block.xprop);
 -            FREE(Block.res);
 -            FREE(Block.z);
 -            FREE(Block.ozsz);
 -            Scierror(888, _("%s : Allocation error.\n"), fname);
 -            return 0;
 -        }
 +    //    if ((Block.oztyp = (int *) MALLOC(Block.noz * sizeof(int))) == NULL)
 +    //    {
 +    //        for (j = 0; j < Block.nin; j++)
 +    //        {
 +    //            FREE(Block.inptr[j]);
 +    //        }
 +    //        FREE(Block.inptr);
 +    //        FREE(Block.insz);
 +    //        for (j = 0; j < Block.nout; j++)
 +    //        {
 +    //            FREE(Block.outptr[j]);
 +    //        }
 +    //        FREE(Block.outptr);
 +    //        FREE(Block.outsz);
 +    //        FREE(Block.evout);
 +    //        FREE(Block.x);
 +    //        FREE(Block.xd);
 +    //        FREE(Block.xprop);
 +    //        FREE(Block.res);
 +    //        FREE(Block.z);
 +    //        FREE(Block.ozsz);
 +    //        Scierror(888, _("%s : Allocation error.\n"), fname);
 +    //        return 0;
 +    //    }
  
 -        if ((Block.ozptr = (void **) MALLOC(Block.noz * sizeof(void *))) == NULL)
 -        {
 -            for (j = 0; j < Block.nin; j++)
 -            {
 -                FREE(Block.inptr[j]);
 -            }
 -            FREE(Block.inptr);
 -            FREE(Block.insz);
 -            for (j = 0; j < Block.nout; j++)
 -            {
 -                FREE(Block.outptr[j]);
 -            }
 -            FREE(Block.outptr);
 -            FREE(Block.outsz);
 -            FREE(Block.evout);
 -            FREE(Block.x);
 -            FREE(Block.xd);
 -            FREE(Block.xprop);
 -            FREE(Block.res);
 -            FREE(Block.z);
 -            FREE(Block.ozsz);
 -            FREE(Block.oztyp);
 -            Scierror(888, _("%s : Allocation error.\n"), fname);
 -            return 0;
 -        }
 +    //    if ((Block.ozptr = (void **) MALLOC(Block.noz * sizeof(void *))) == NULL)
 +    //    {
 +    //        for (j = 0; j < Block.nin; j++)
 +    //        {
 +    //            FREE(Block.inptr[j]);
 +    //        }
 +    //        FREE(Block.inptr);
 +    //        FREE(Block.insz);
 +    //        for (j = 0; j < Block.nout; j++)
 +    //        {
 +    //            FREE(Block.outptr[j]);
 +    //        }
 +    //        FREE(Block.outptr);
 +    //        FREE(Block.outsz);
 +    //        FREE(Block.evout);
 +    //        FREE(Block.x);
 +    //        FREE(Block.xd);
 +    //        FREE(Block.xprop);
 +    //        FREE(Block.res);
 +    //        FREE(Block.z);
 +    //        FREE(Block.ozsz);
 +    //        FREE(Block.oztyp);
 +    //        Scierror(888, _("%s : Allocation error.\n"), fname);
 +    //        return 0;
 +    //    }
  
 -        for (i = 0; i < mh * nh; i++)
 -        {
 -            ilh2 = (int *) (listentry(ilh, i + 1));
 -            mh2  = ilh2[1];
 -            nh2  = ilh2[2];
 -            Block.ozsz[i] = mh2;
 -            Block.ozsz[Block.noz + i] = nh2;
 -            if (ilh2[0] == 1)
 -            {
 -                if (ilh2[3] == 0)
 -                {
 -                    Block.oztyp[i] = 10;
 -                    if ((Block.ozptr[i] = (double *) MALLOC(mh2 * nh2 * sizeof(double))) == NULL)
 -                    {
 -                        for (j = 0; j < Block.nin; j++)
 -                        {
 -                            FREE(Block.inptr[j]);
 -                        }
 -                        FREE(Block.inptr);
 -                        FREE(Block.insz);
 -                        for (j = 0; j < Block.nout; j++)
 -                        {
 -                            FREE(Block.outptr[j]);
 -                        }
 -                        FREE(Block.outptr);
 -                        FREE(Block.outsz);
 -                        FREE(Block.evout);
 -                        FREE(Block.x);
 -                        FREE(Block.xd);
 -                        FREE(Block.xprop);
 -                        FREE(Block.res);
 -                        FREE(Block.z);
 -                        FREE(Block.ozsz);
 -                        FREE(Block.oztyp);
 -                        for (j = 0; j < i; j++)
 -                        {
 -                            FREE(Block.ozptr[j]);
 -                        }
 -                        Scierror(888, _("%s : Allocation error.\n"), fname);
 -                        return 0;
 -                    }
 -                    ptr_d = (double *) Block.ozptr[i];
 -                    for (j = 0; j < mh2 * nh2; j++)
 -                    {
 -                        ptr_d[j] = *((double *)(&ilh2[4]) + j);
 -                    }
 -                }
 -                else if (ilh2[3] == 1)
 -                {
 -                    Block.oztyp[i] = 11;
 -                    if ((Block.ozptr[i] = (double *) MALLOC(2 * mh2 * nh2 * sizeof(double))) == NULL)
 -                    {
 -                        for (j = 0; j < Block.nin; j++)
 -                        {
 -                            FREE(Block.inptr[j]);
 -                        }
 -                        FREE(Block.inptr);
 -                        FREE(Block.insz);
 -                        for (j = 0; j < Block.nout; j++)
 -                        {
 -                            FREE(Block.outptr[j]);
 -                        }
 -                        FREE(Block.outptr);
 -                        FREE(Block.outsz);
 -                        FREE(Block.evout);
 -                        FREE(Block.x);
 -                        FREE(Block.xd);
 -                        FREE(Block.xprop);
 -                        FREE(Block.res);
 -                        FREE(Block.z);
 -                        FREE(Block.ozsz);
 -                        FREE(Block.oztyp);
 -                        for (j = 0; j < i; j++)
 -                        {
 -                            FREE(Block.ozptr[j]);
 -                        }
 -                        Scierror(888, _("%s : Allocation error.\n"), fname);
 -                        return 0;
 -                    }
 -                    ptr_d = (double *) Block.ozptr[i];
 -                    for (j = 0; j < 2 * mh2 * nh2; j++)
 -                    {
 -                        ptr_d[j] = *((double *)(&ilh2[4]) + j);
 -                    }
 -                }
 -            }
 -            else if (ilh2[0] == 8)
 -            {
 -                if (ilh2[3] == 4)
 -                {
 -                    Block.oztyp[i] = 84;
 -                    if ((Block.ozptr[i] = (SCSINT32_COP *) MALLOC(mh2 * nh2 * sizeof(SCSINT32_COP))) == NULL)
 -                    {
 -                        for (j = 0; j < Block.nin; j++)
 -                        {
 -                            FREE(Block.inptr[j]);
 -                        }
 -                        FREE(Block.inptr);
 -                        FREE(Block.insz);
 -                        for (j = 0; j < Block.nout; j++)
 -                        {
 -                            FREE(Block.outptr[j]);
 -                        }
 -                        FREE(Block.outptr);
 -                        FREE(Block.outsz);
 -                        FREE(Block.evout);
 -                        FREE(Block.x);
 -                        FREE(Block.xd);
 -                        FREE(Block.xprop);
 -                        FREE(Block.res);
 -                        FREE(Block.z);
 -                        FREE(Block.ozsz);
 -                        FREE(Block.oztyp);
 -                        for (j = 0; j < i; j++)
 -                        {
 -                            FREE(Block.ozptr[j]);
 -                        }
 -                        Scierror(888, _("%s : Allocation error.\n"), fname);
 -                        return 0;
 -                    }
 -                    ptr_l = (SCSINT32_COP *) Block.ozptr[i];
 -                    for (j = 0; j < mh2 * nh2; j++)
 -                    {
 -                        ptr_l[j] = *((SCSINT32_COP *)(&ilh2[4]) + j);
 -                    }
 -                }
 -                else if (ilh2[3] == 2)
 -                {
 -                    Block.oztyp[i] = 82;
 -                    if ((Block.ozptr[i] = (short *) MALLOC(mh2 * nh2 * sizeof(short))) == NULL)
 -                    {
 -                        for (j = 0; j < Block.nin; j++)
 -                        {
 -                            FREE(Block.inptr[j]);
 -                        }
 -                        FREE(Block.inptr);
 -                        FREE(Block.insz);
 -                        for (j = 0; j < Block.nout; j++)
 -                        {
 -                            FREE(Block.outptr[j]);
 -                        }
 -                        FREE(Block.outptr);
 -                        FREE(Block.outsz);
 -                        FREE(Block.evout);
 -                        FREE(Block.x);
 -                        FREE(Block.xd);
 -                        FREE(Block.xprop);
 -                        FREE(Block.res);
 -                        FREE(Block.z);
 -                        FREE(Block.ozsz);
 -                        FREE(Block.oztyp);
 -                        for (j = 0; j < i; j++)
 -                        {
 -                            FREE(Block.ozptr[j]);
 -                        }
 -                        Scierror(888, _("%s : Allocation error.\n"), fname);
 -                        return 0;
 -                    }
 -                    ptr_s = (short *) Block.ozptr[i];
 -                    for (j = 0; j < mh2 * nh2; j++)
 -                    {
 -                        ptr_s[j] = *((short *)(&ilh2[4]) + j);
 -                    }
 -                }
 -                else if (ilh2[3] == 1)
 -                {
 -                    Block.oztyp[i] = 81;
 -                    if ((Block.ozptr[i] = (char *) MALLOC(mh2 * nh2 * sizeof(char))) == NULL)
 -                    {
 -                        for (j = 0; j < Block.nin; j++)
 -                        {
 -                            FREE(Block.inptr[j]);
 -                        }
 -                        FREE(Block.inptr);
 -                        FREE(Block.insz);
 -                        for (j = 0; j < Block.nout; j++)
 -                        {
 -                            FREE(Block.outptr[j]);
 -                        }
 -                        FREE(Block.outptr);
 -                        FREE(Block.outsz);
 -                        FREE(Block.evout);
 -                        FREE(Block.x);
 -                        FREE(Block.xd);
 -                        FREE(Block.xprop);
 -                        FREE(Block.res);
 -                        FREE(Block.z);
 -                        FREE(Block.ozsz);
 -                        FREE(Block.oztyp);
 -                        for (j = 0; j < i; j++)
 -                        {
 -                            FREE(Block.ozptr[j]);
 -                        }
 -                        Scierror(888, _("%s : Allocation error.\n"), fname);
 -                        return 0;
 -                    }
 -                    ptr_c = (char *) Block.ozptr[i];
 -                    for (j = 0; j < mh2 * nh2; j++)
 -                    {
 -                        ptr_c[j] = *((char *)(&ilh2[4]) + j);
 -                    }
 -                }
 -                else if (ilh2[3] == 14)
 -                {
 -                    Block.oztyp[i] = 814;
 -                    if ((Block.ozptr[i] = (SCSUINT32_COP *) MALLOC(mh2 * nh2 * sizeof(SCSUINT32_COP))) == NULL)
 -                    {
 -                        for (j = 0; j < Block.nin; j++)
 -                        {
 -                            FREE(Block.inptr[j]);
 -                        }
 -                        FREE(Block.inptr);
 -                        FREE(Block.insz);
 -                        for (j = 0; j < Block.nout; j++)
 -                        {
 -                            FREE(Block.outptr[j]);
 -                        }
 -                        FREE(Block.outptr);
 -                        FREE(Block.outsz);
 -                        FREE(Block.evout);
 -                        FREE(Block.x);
 -                        FREE(Block.xd);
 -                        FREE(Block.xprop);
 -                        FREE(Block.res);
 -                        FREE(Block.z);
 -                        FREE(Block.ozsz);
 -                        FREE(Block.oztyp);
 -                        for (j = 0; j < i; j++)
 -                        {
 -                            FREE(Block.ozptr[j]);
 -                        }
 -                        Scierror(888, _("%s : Allocation error.\n"), fname);
 -                        return 0;
 -                    }
 -                    ptr_ul = (SCSUINT32_COP *) Block.ozptr[i];
 -                    for (j = 0; j < mh2 * nh2; j++)
 -                    {
 -                        ptr_ul[j] = *((SCSUINT32_COP *)(&ilh2[4]) + j);
 -                    }
 -                }
 -                else if (ilh2[3] == 12)
 -                {
 -                    Block.oztyp[i] = 812;
 -                    if ((Block.ozptr[i] = (unsigned short *) MALLOC(mh2 * nh2 * sizeof(unsigned short))) == NULL)
 -                    {
 -                        for (j = 0; j < Block.nin; j++)
 -                        {
 -                            FREE(Block.inptr[j]);
 -                        }
 -                        FREE(Block.inptr);
 -                        FREE(Block.insz);
 -                        for (j = 0; j < Block.nout; j++)
 -                        {
 -                            FREE(Block.outptr[j]);
 -                        }
 -                        FREE(Block.outptr);
 -                        FREE(Block.outsz);
 -                        FREE(Block.evout);
 -                        FREE(Block.x);
 -                        FREE(Block.xd);
 -                        FREE(Block.xprop);
 -                        FREE(Block.res);
 -                        FREE(Block.z);
 -                        FREE(Block.ozsz);
 -                        FREE(Block.oztyp);
 -                        for (j = 0; j < i; j++)
 -                        {
 -                            FREE(Block.ozptr[j]);
 -                        }
 -                        Scierror(888, _("%s : Allocation error.\n"), fname);
 -                        return 0;
 -                    }
 -                    ptr_us = (unsigned short *) Block.ozptr[i];
 -                    for (j = 0; j < mh2 * nh2; j++)
 -                    {
 -                        ptr_us[j] = *((unsigned short *)(&ilh2[4]) + j);
 -                    }
 -                }
 -                else if (ilh2[3] == 11)
 -                {
 -                    Block.oztyp[i] = 811;
 -                    if ((Block.ozptr[i] = (unsigned char *) MALLOC(mh2 * nh2 * sizeof(unsigned char))) == NULL)
 -                    {
 -                        for (j = 0; j < Block.nin; j++)
 -                        {
 -                            FREE(Block.inptr[j]);
 -                        }
 -                        FREE(Block.inptr);
 -                        FREE(Block.insz);
 -                        for (j = 0; j < Block.nout; j++)
 -                        {
 -                            FREE(Block.outptr[j]);
 -                        }
 -                        FREE(Block.outptr);
 -                        FREE(Block.outsz);
 -                        FREE(Block.evout);
 -                        FREE(Block.x);
 -                        FREE(Block.xd);
 -                        FREE(Block.xprop);
 -                        FREE(Block.res);
 -                        FREE(Block.z);
 -                        FREE(Block.ozsz);
 -                        FREE(Block.oztyp);
 -                        for (j = 0; j < i; j++)
 -                        {
 -                            FREE(Block.ozptr[j]);
 -                        }
 -                        Scierror(888, _("%s : Allocation error.\n"), fname);
 -                        return 0;
 -                    }
 -                    ptr_uc = (unsigned char *) Block.ozptr[i];
 -                    for (j = 0; j < mh2 * nh2; j++)
 -                    {
 -                        ptr_uc[j] = *((unsigned char *)(&ilh2[4]) + j);
 -                    }
 -                }
 -            }
 -        }
 -    }
 +    //    for (i = 0; i < mh * nh; i++)
 +    //    {
 +    //        ilh2 = (int *) (listentry(ilh, i + 1));
 +    //        mh2  = ilh2[1];
 +    //        nh2  = ilh2[2];
 +    //        Block.ozsz[i] = mh2;
 +    //        Block.ozsz[Block.noz + i] = nh2;
 +    //        if (ilh2[0] == 1)
 +    //        {
 +    //            if (ilh2[3] == 0)
 +    //            {
 +    //                Block.oztyp[i] = 10;
 +    //                if ((Block.ozptr[i] = (double *) MALLOC(mh2 * nh2 * sizeof(double))) == NULL)
 +    //                {
 +    //                    for (j = 0; j < Block.nin; j++)
 +    //                    {
 +    //                        FREE(Block.inptr[j]);
 +    //                    }
 +    //                    FREE(Block.inptr);
 +    //                    FREE(Block.insz);
 +    //                    for (j = 0; j < Block.nout; j++)
 +    //                    {
 +    //                        FREE(Block.outptr[j]);
 +    //                    }
 +    //                    FREE(Block.outptr);
 +    //                    FREE(Block.outsz);
 +    //                    FREE(Block.evout);
 +    //                    FREE(Block.x);
 +    //                    FREE(Block.xd);
 +    //                    FREE(Block.xprop);
 +    //                    FREE(Block.res);
 +    //                    FREE(Block.z);
 +    //                    FREE(Block.ozsz);
 +    //                    FREE(Block.oztyp);
 +    //                    for (j = 0; j < i; j++)
 +    //                    {
 +    //                        FREE(Block.ozptr[j]);
 +    //                    }
 +    //                    Scierror(888, _("%s : Allocation error.\n"), fname);
 +    //                    return 0;
 +    //                }
 +    //                ptr_d = (double *) Block.ozptr[i];
 +    //                for (j = 0; j < mh2 * nh2; j++)
 +    //                {
 +    //                    ptr_d[j] = *((double *)(&ilh2[4]) + j);
 +    //                }
 +    //            }
 +    //            else if (ilh2[3] == 1)
 +    //            {
 +    //                Block.oztyp[i] = 11;
 +    //                if ((Block.ozptr[i] = (double *) MALLOC(2 * mh2 * nh2 * sizeof(double))) == NULL)
 +    //                {
 +    //                    for (j = 0; j < Block.nin; j++)
 +    //                    {
 +    //                        FREE(Block.inptr[j]);
 +    //                    }
 +    //                    FREE(Block.inptr);
 +    //                    FREE(Block.insz);
 +    //                    for (j = 0; j < Block.nout; j++)
 +    //                    {
 +    //                        FREE(Block.outptr[j]);
 +    //                    }
 +    //                    FREE(Block.outptr);
 +    //                    FREE(Block.outsz);
 +    //                    FREE(Block.evout);
 +    //                    FREE(Block.x);
 +    //                    FREE(Block.xd);
 +    //                    FREE(Block.xprop);
 +    //                    FREE(Block.res);
 +    //                    FREE(Block.z);
 +    //                    FREE(Block.ozsz);
 +    //                    FREE(Block.oztyp);
 +    //                    for (j = 0; j < i; j++)
 +    //                    {
 +    //                        FREE(Block.ozptr[j]);
 +    //                    }
 +    //                    Scierror(888, _("%s : Allocation error.\n"), fname);
 +    //                    return 0;
 +    //                }
 +    //                ptr_d = (double *) Block.ozptr[i];
 +    //                for (j = 0; j < 2 * mh2 * nh2; j++)
 +    //                {
 +    //                    ptr_d[j] = *((double *)(&ilh2[4]) + j);
 +    //                }
 +    //            }
 +    //        }
 +    //        else if (ilh2[0] == 8)
 +    //        {
 +    //            if (ilh2[3] == 4)
 +    //            {
 +    //                Block.oztyp[i] = 84;
-     //                if ((Block.ozptr[i] = (long *) MALLOC(mh2 * nh2 * sizeof(long))) == NULL)
++    //                if ((Block.ozptr[i] = (SCSINT32_COP *) MALLOC(mh2 * nh2 * sizeof(SCSINT32_COP))) == NULL)
 +    //                {
 +    //                    for (j = 0; j < Block.nin; j++)
 +    //                    {
 +    //                        FREE(Block.inptr[j]);
 +    //                    }
 +    //                    FREE(Block.inptr);
 +    //                    FREE(Block.insz);
 +    //                    for (j = 0; j < Block.nout; j++)
 +    //                    {
 +    //                        FREE(Block.outptr[j]);
 +    //                    }
 +    //                    FREE(Block.outptr);
 +    //                    FREE(Block.outsz);
 +    //                    FREE(Block.evout);
 +    //                    FREE(Block.x);
 +    //                    FREE(Block.xd);
 +    //                    FREE(Block.xprop);
 +    //                    FREE(Block.res);
 +    //                    FREE(Block.z);
 +    //                    FREE(Block.ozsz);
 +    //                    FREE(Block.oztyp);
 +    //                    for (j = 0; j < i; j++)
 +    //                    {
 +    //                        FREE(Block.ozptr[j]);
 +    //                    }
 +    //                    Scierror(888, _("%s : Allocation error.\n"), fname);
 +    //                    return 0;
 +    //                }
-     //                ptr_l = (long *) Block.ozptr[i];
++    //                ptr_l = (SCSINT32_COP *) Block.ozptr[i];
 +    //                for (j = 0; j < mh2 * nh2; j++)
 +    //                {
-     //                    ptr_l[j] = *((long *)(&ilh2[4]) + j);
++    //                    ptr_l[j] = *((SCSINT32_COP *)(&ilh2[4]) + j);
 +    //                }
 +    //            }
 +    //            else if (ilh2[3] == 2)
 +    //            {
 +    //                Block.oztyp[i] = 82;
 +    //                if ((Block.ozptr[i] = (short *) MALLOC(mh2 * nh2 * sizeof(short))) == NULL)
 +    //                {
 +    //                    for (j = 0; j < Block.nin; j++)
 +    //                    {
 +    //                        FREE(Block.inptr[j]);
 +    //                    }
 +    //                    FREE(Block.inptr);
 +    //                    FREE(Block.insz);
 +    //                    for (j = 0; j < Block.nout; j++)
 +    //                    {
 +    //                        FREE(Block.outptr[j]);
 +    //                    }
 +    //                    FREE(Block.outptr);
 +    //                    FREE(Block.outsz);
 +    //                    FREE(Block.evout);
 +    //                    FREE(Block.x);
 +    //                    FREE(Block.xd);
 +    //                    FREE(Block.xprop);
 +    //                    FREE(Block.res);
 +    //                    FREE(Block.z);
 +    //                    FREE(Block.ozsz);
 +    //                    FREE(Block.oztyp);
 +    //                    for (j = 0; j < i; j++)
 +    //                    {
 +    //                        FREE(Block.ozptr[j]);
 +    //                    }
 +    //                    Scierror(888, _("%s : Allocation error.\n"), fname);
 +    //                    return 0;
 +    //                }
 +    //                ptr_s = (short *) Block.ozptr[i];
 +    //                for (j = 0; j < mh2 * nh2; j++)
 +    //                {
 +    //                    ptr_s[j] = *((short *)(&ilh2[4]) + j);
 +    //                }
 +    //            }
 +    //            else if (ilh2[3] == 1)
 +    //            {
 +    //                Block.oztyp[i] = 81;
 +    //                if ((Block.ozptr[i] = (char *) MALLOC(mh2 * nh2 * sizeof(char))) == NULL)
 +    //                {
 +    //                    for (j = 0; j < Block.nin; j++)
 +    //                    {
 +    //                        FREE(Block.inptr[j]);
 +    //                    }
 +    //                    FREE(Block.inptr);
 +    //                    FREE(Block.insz);
 +    //                    for (j = 0; j < Block.nout; j++)
 +    //                    {
 +    //                        FREE(Block.outptr[j]);
 +    //                    }
 +    //                    FREE(Block.outptr);
 +    //                    FREE(Block.outsz);
 +    //                    FREE(Block.evout);
 +    //                    FREE(Block.x);
 +    //                    FREE(Block.xd);
 +    //                    FREE(Block.xprop);
 +    //                    FREE(Block.res);
 +    //                    FREE(Block.z);
 +    //                    FREE(Block.ozsz);
 +    //                    FREE(Block.oztyp);
 +    //                    for (j = 0; j < i; j++)
 +    //                    {
 +    //                        FREE(Block.ozptr[j]);
 +    //                    }
 +    //                    Scierror(888, _("%s : Allocation error.\n"), fname);
 +    //                    return 0;
 +    //                }
 +    //                ptr_c = (char *) Block.ozptr[i];
 +    //                for (j = 0; j < mh2 * nh2; j++)
 +    //                {
 +    //                    ptr_c[j] = *((char *)(&ilh2[4]) + j);
 +    //                }
 +    //            }
 +    //            else if (ilh2[3] == 14)
 +    //            {
 +    //                Block.oztyp[i] = 814;
-     //                if ((Block.ozptr[i] = (unsigned long *) MALLOC(mh2 * nh2 * sizeof(unsigned long))) == NULL)
++    //                if ((Block.ozptr[i] = (SCSUINT32_COP *) MALLOC(mh2 * nh2 * sizeof(SCSUINT32_COP))) == NULL)
 +    //                {
 +    //                    for (j = 0; j < Block.nin; j++)
 +    //                    {
 +    //                        FREE(Block.inptr[j]);
 +    //                    }
 +    //                    FREE(Block.inptr);
 +    //                    FREE(Block.insz);
 +    //                    for (j = 0; j < Block.nout; j++)
 +    //                    {
 +    //                        FREE(Block.outptr[j]);
 +    //                    }
 +    //                    FREE(Block.outptr);
 +    //                    FREE(Block.outsz);
 +    //                    FREE(Block.evout);
 +    //                    FREE(Block.x);
 +    //                    FREE(Block.xd);
 +    //                    FREE(Block.xprop);
 +    //                    FREE(Block.res);
 +    //                    FREE(Block.z);
 +    //                    FREE(Block.ozsz);
 +    //                    FREE(Block.oztyp);
 +    //                    for (j = 0; j < i; j++)
 +    //                    {
 +    //                        FREE(Block.ozptr[j]);
 +    //                    }
 +    //                    Scierror(888, _("%s : Allocation error.\n"), fname);
 +    //                    return 0;
 +    //                }
-     //                ptr_ul = (unsigned long *) Block.ozptr[i];
++    //                ptr_ul = (SCSUINT32_COP *) Block.ozptr[i];
 +    //                for (j = 0; j < mh2 * nh2; j++)
 +    //                {
-     //                    ptr_ul[j] = *((unsigned long *)(&ilh2[4]) + j);
++    //                    ptr_ul[j] = *((SCSUINT32_COP *)(&ilh2[4]) + j);
 +    //                }
 +    //            }
 +    //            else if (ilh2[3] == 12)
 +    //            {
 +    //                Block.oztyp[i] = 812;
 +    //                if ((Block.ozptr[i] = (unsigned short *) MALLOC(mh2 * nh2 * sizeof(unsigned short))) == NULL)
 +    //                {
 +    //                    for (j = 0; j < Block.nin; j++)
 +    //                    {
 +    //                        FREE(Block.inptr[j]);
 +    //                    }
 +    //                    FREE(Block.inptr);
 +    //                    FREE(Block.insz);
 +    //                    for (j = 0; j < Block.nout; j++)
 +    //                    {
 +    //                        FREE(Block.outptr[j]);
 +    //                    }
 +    //                    FREE(Block.outptr);
 +    //                    FREE(Block.outsz);
 +    //                    FREE(Block.evout);
 +    //                    FREE(Block.x);
 +    //                    FREE(Block.xd);
 +    //                    FREE(Block.xprop);
 +    //                    FREE(Block.res);
 +    //                    FREE(Block.z);
 +    //                    FREE(Block.ozsz);
 +    //                    FREE(Block.oztyp);
 +    //                    for (j = 0; j < i; j++)
 +    //                    {
 +    //                        FREE(Block.ozptr[j]);
 +    //                    }
 +    //                    Scierror(888, _("%s : Allocation error.\n"), fname);
 +    //                    return 0;
 +    //                }
 +    //                ptr_us = (unsigned short *) Block.ozptr[i];
 +    //                for (j = 0; j < mh2 * nh2; j++)
 +    //                {
 +    //                    ptr_us[j] = *((unsigned short *)(&ilh2[4]) + j);
 +    //                }
 +    //            }
 +    //            else if (ilh2[3] == 11)
 +    //            {
 +    //                Block.oztyp[i] = 811;
 +    //                if ((Block.ozptr[i] = (unsigned char *) MALLOC(mh2 * nh2 * sizeof(unsigned char))) == NULL)
 +    //                {
 +    //                    for (j = 0; j < Block.nin; j++)
 +    //                    {
 +    //                        FREE(Block.inptr[j]);
 +    //                    }
 +    //                    FREE(Block.inptr);
 +    //                    FREE(Block.insz);
 +    //                    for (j = 0; j < Block.nout; j++)
 +    //                    {
 +    //                        FREE(Block.outptr[j]);
 +    //                    }
 +    //                    FREE(Block.outptr);
 +    //                    FREE(Block.outsz);
 +    //                    FREE(Block.evout);
 +    //                    FREE(Block.x);
 +    //                    FREE(Block.xd);
 +    //                    FREE(Block.xprop);
 +    //                    FREE(Block.res);
 +    //                    FREE(Block.z);
 +    //                    FREE(Block.ozsz);
 +    //                    FREE(Block.oztyp);
 +    //                    for (j = 0; j < i; j++)
 +    //                    {
 +    //                        FREE(Block.ozptr[j]);
 +    //                    }
 +    //                    Scierror(888, _("%s : Allocation error.\n"), fname);
 +    //                    return 0;
 +    //                }
 +    //                ptr_uc = (unsigned char *) Block.ozptr[i];
 +    //                for (j = 0; j < mh2 * nh2; j++)
 +    //                {
 +    //                    ptr_uc[j] = *((unsigned char *)(&ilh2[4]) + j);
 +    //                }
 +    //            }
 +    //        }
 +    //    }
 +    //}
  
 -    /* real parameters */
 -    /* 14 : model.rpar  */
 -    n            = MlistGetFieldNumber(il1, "rpar");
 -    ilh          = (int *) (listentry(il1, n));
 -    mh           = ilh[1];
 -    nh           = ilh[2];
 -    Block.nrpar  = mh * nh;
 -    Block.rpar   = NULL;
 -    if (mh * nh != 0)
 -    {
 -        if ((Block.rpar = (double *) MALLOC(Block.nrpar * sizeof(double))) == NULL)
 -        {
 -            for (j = 0; j < Block.nin; j++)
 -            {
 -                FREE(Block.inptr[j]);
 -            }
 -            FREE(Block.inptr);
 -            FREE(Block.insz);
 -            for (j = 0; j < Block.nout; j++)
 -            {
 -                FREE(Block.outptr[j]);
 -            }
 -            FREE(Block.outptr);
 -            FREE(Block.outsz);
 -            FREE(Block.evout);
 -            FREE(Block.x);
 -            FREE(Block.xd);
 -            FREE(Block.xprop);
 -            FREE(Block.res);
 -            FREE(Block.z);
 -            FREE(Block.ozsz);
 -            FREE(Block.oztyp);
 -            for (j = 0; j < Block.noz; j++)
 -            {
 -                FREE(Block.ozptr[j]);
 -            }
 -            Scierror(888, _("%s : Allocation error.\n"), fname);
 -            return 0;
 -        }
 -        for (j = 0; j < Block.nrpar; j++)
 -        {
 -            Block.rpar[j] = *((double *)(&ilh[4]) + j);
 -        }
 -    }
 +    ///* real parameters */
 +    ///* 14 : model.rpar  */
 +    //n            = MlistGetFieldNumber(il1, "rpar");
 +    //ilh          = (int *) (listentry(il1, n));
 +    //mh           = ilh[1];
 +    //nh           = ilh[2];
 +    //Block.nrpar  = mh * nh;
 +    //Block.rpar   = NULL;
 +    //if (mh * nh != 0)
 +    //{
 +    //    if ((Block.rpar = (double *) MALLOC(Block.nrpar * sizeof(double))) == NULL)
 +    //    {
 +    //        for (j = 0; j < Block.nin; j++)
 +    //        {
 +    //            FREE(Block.inptr[j]);
 +    //        }
 +    //        FREE(Block.inptr);
 +    //        FREE(Block.insz);
 +    //        for (j = 0; j < Block.nout; j++)
 +    //        {
 +    //            FREE(Block.outptr[j]);
 +    //        }
 +    //        FREE(Block.outptr);
 +    //        FREE(Block.outsz);
 +    //        FREE(Block.evout);
 +    //        FREE(Block.x);
 +    //        FREE(Block.xd);
 +    //        FREE(Block.xprop);
 +    //        FREE(Block.res);
 +    //        FREE(Block.z);
 +    //        FREE(Block.ozsz);
 +    //        FREE(Block.oztyp);
 +    //        for (j = 0; j < Block.noz; j++)
 +    //        {
 +    //            FREE(Block.ozptr[j]);
 +    //        }
 +    //        Scierror(888, _("%s : Allocation error.\n"), fname);
 +    //        return 0;
 +    //    }
 +    //    for (j = 0; j < Block.nrpar; j++)
 +    //    {
 +    //        Block.rpar[j] = *((double *)(&ilh[4]) + j);
 +    //    }
 +    //}
  
 -    /* integer parameters */
 -    /* 15 : model.ipar  */
 -    n            = MlistGetFieldNumber(il1, "ipar");
 -    ilh          = (int *) (listentry(il1, n));
 -    mh           = ilh[1];
 -    nh           = ilh[2];
 -    Block.nipar  = mh * nh;
 -    Block.ipar   = NULL;
 -    if (mh * nh != 0)
 -    {
 -        if ((Block.ipar = (int *) MALLOC(Block.nipar * sizeof(int))) == NULL)
 -        {
 -            for (j = 0; j < Block.nin; j++)
 -            {
 -                FREE(Block.inptr[j]);
 -            }
 -            FREE(Block.inptr);
 -            FREE(Block.insz);
 -            for (j = 0; j < Block.nout; j++)
 -            {
 -                FREE(Block.outptr[j]);
 -            }
 -            FREE(Block.outptr);
 -            FREE(Block.outsz);
 -            FREE(Block.evout);
 -            FREE(Block.x);
 -            FREE(Block.xd);
 -            FREE(Block.xprop);
 -            FREE(Block.res);
 -            FREE(Block.z);
 -            FREE(Block.ozsz);
 -            FREE(Block.oztyp);
 -            for (j = 0; j < Block.noz; j++)
 -            {
 -                FREE(Block.ozptr[j]);
 -            }
 -            FREE(Block.rpar);
 -            Scierror(888, _("%s : Allocation error.\n"), fname);
 -            return 0;
 -        }
 +    ///* integer parameters */
 +    ///* 15 : model.ipar  */
 +    //n            = MlistGetFieldNumber(il1, "ipar");
 +    //ilh          = (int *) (listentry(il1, n));
 +    //mh           = ilh[1];
 +    //nh           = ilh[2];
 +    //Block.nipar  = mh * nh;
 +    //Block.ipar   = NULL;
 +    //if (mh * nh != 0)
 +    //{
 +    //    if ((Block.ipar = (int *) MALLOC(Block.nipar * sizeof(int))) == NULL)
 +    //    {
 +    //        for (j = 0; j < Block.nin; j++)
 +    //        {
 +    //            FREE(Block.inptr[j]);
 +    //        }
 +    //        FREE(Block.inptr);
 +    //        FREE(Block.insz);
 +    //        for (j = 0; j < Block.nout; j++)
 +    //        {
 +    //            FREE(Block.outptr[j]);
 +    //        }
 +    //        FREE(Block.outptr);
 +    //        FREE(Block.outsz);
 +    //        FREE(Block.evout);
 +    //        FREE(Block.x);
 +    //        FREE(Block.xd);
 +    //        FREE(Block.xprop);
 +    //        FREE(Block.res);
 +    //        FREE(Block.z);
 +    //        FREE(Block.ozsz);
 +    //        FREE(Block.oztyp);
 +    //        for (j = 0; j < Block.noz; j++)
 +    //        {
 +    //            FREE(Block.ozptr[j]);
 +    //        }
 +    //        FREE(Block.rpar);
 +    //        Scierror(888, _("%s : Allocation error.\n"), fname);
 +    //        return 0;
 +    //    }
  
 -        for (j = 0; j < Block.nipar; j++)
 -        {
 -            Block.ipar[j] = (int) * ((double *)(&ilh[4]) + j);
 -        }
 -    }
 +    //    for (j = 0; j < Block.nipar; j++)
 +    //    {
 +    //        Block.ipar[j] = (int) * ((double *)(&ilh[4]) + j);
 +    //    }
 +    //}
  
 -    /* object parameters */
 -    /* 16 : model.opar  */
 -    n             = MlistGetFieldNumber(il1, "opar");
 -    ilh           = (int *) (listentry(il1, n));
 -    mh            = ilh[1];
 -    nh            = ilh[2];
 -    Block.nopar   = mh * nh;
 -    Block.oparsz  = NULL;
 -    Block.opartyp = NULL;
 -    Block.oparptr = NULL;
 -    if (mh * nh != 0)
 -    {
 -        if ((Block.oparsz = (int *) MALLOC(2 * Block.nopar * sizeof(int))) == NULL)
 -        {
 -            for (j = 0; j < Block.nin; j++)
 -            {
 -                FREE(Block.inptr[j]);
 -            }
 -            FREE(Block.inptr);
 -            FREE(Block.insz);
 -            for (j = 0; j < Block.nout; j++)
 -            {
 -                FREE(Block.outptr[j]);
 -            }
 -            FREE(Block.outptr);
 -            FREE(Block.outsz);
 -            FREE(Block.evout);
 -            FREE(Block.x);
 -            FREE(Block.xd);
 -            FREE(Block.xprop);
 -            FREE(Block.res);
 -            FREE(Block.z);
 -            FREE(Block.ozsz);
 -            FREE(Block.oztyp);
 -            for (j = 0; j < Block.noz; j++)
 -            {
 -                FREE(Block.ozptr[j]);
 -            }
 -            FREE(Block.rpar);
 -            FREE(Block.ipar);
 -            Scierror(888, _("%s : Allocation error.\n"), fname);
 -            return 0;
 -        }
 +    ///* object parameters */
 +    ///* 16 : model.opar  */
 +    //n             = MlistGetFieldNumber(il1, "opar");
 +    //ilh           = (int *) (listentry(il1, n));
 +    //mh            = ilh[1];
 +    //nh            = ilh[2];
 +    //Block.nopar   = mh * nh;
 +    //Block.oparsz  = NULL;
 +    //Block.opartyp = NULL;
 +    //Block.oparptr = NULL;
 +    //if (mh * nh != 0)
 +    //{
 +    //    if ((Block.oparsz = (int *) MALLOC(2 * Block.nopar * sizeof(int))) == NULL)
 +    //    {
 +    //        for (j = 0; j < Block.nin; j++)
 +    //        {
 +    //            FREE(Block.inptr[j]);
 +    //        }
 +    //        FREE(Block.inptr);
 +    //        FREE(Block.insz);
 +    //        for (j = 0; j < Block.nout; j++)
 +    //        {
 +    //            FREE(Block.outptr[j]);
 +    //        }
 +    //        FREE(Block.outptr);
 +    //        FREE(Block.outsz);
 +    //        FREE(Block.evout);
 +    //        FREE(Block.x);
 +    //        FREE(Block.xd);
 +    //        FREE(Block.xprop);
 +    //        FREE(Block.res);
 +    //        FREE(Block.z);
 +    //        FREE(Block.ozsz);
 +    //        FREE(Block.oztyp);
 +    //        for (j = 0; j < Block.noz; j++)
 +    //        {
 +    //            FREE(Block.ozptr[j]);
 +    //        }
 +    //        FREE(Block.rpar);
 +    //        FREE(Block.ipar);
 +    //        Scierror(888, _("%s : Allocation error.\n"), fname);
 +    //        return 0;
 +    //    }
  
 -        if ((Block.opartyp = (int *) MALLOC(Block.nopar * sizeof(int))) == NULL)
 -        {
 -            for (j = 0; j < Block.nin; j++)
 -            {
 -                FREE(Block.inptr[j]);
 -            }
 -            FREE(Block.inptr);
 -            FREE(Block.insz);
 -            for (j = 0; j < Block.nout; j++)
 -            {
 -                FREE(Block.outptr[j]);
 -            }
 -            FREE(Block.outptr);
 -            FREE(Block.outsz);
 -            FREE(Block.evout);
 -            FREE(Block.x);
 -            FREE(Block.xd);
 -            FREE(Block.xprop);
 -            FREE(Block.res);
 -            FREE(Block.z);
 -            FREE(Block.ozsz);
 -            FREE(Block.oztyp);
 -            for (j = 0; j < Block.noz; j++)
 -            {
 -                FREE(Block.ozptr[j]);
 -            }
 -            FREE(Block.rpar);
 -            FREE(Block.ipar);
 -            FREE(Block.oparsz);
 -            Scierror(888, _("%s : Allocation error.\n"), fname);
 -            return 0;
 -        }
 +    //    if ((Block.opartyp = (int *) MALLOC(Block.nopar * sizeof(int))) == NULL)
 +    //    {
 +    //        for (j = 0; j < Block.nin; j++)
 +    //        {
 +    //            FREE(Block.inptr[j]);
 +    //        }
 +    //        FREE(Block.inptr);
 +    //        FREE(Block.insz);
 +    //        for (j = 0; j < Block.nout; j++)
 +    //        {
 +    //            FREE(Block.outptr[j]);
 +    //        }
 +    //        FREE(Block.outptr);
 +    //        FREE(Block.outsz);
 +    //        FREE(Block.evout);
 +    //        FREE(Block.x);
 +    //        FREE(Block.xd);
 +    //        FREE(Block.xprop);
 +    //        FREE(Block.res);
 +    //        FREE(Block.z);
 +    //        FREE(Block.ozsz);
 +    //        FREE(Block.oztyp);
 +    //        for (j = 0; j < Block.noz; j++)
 +    //        {
 +    //            FREE(Block.ozptr[j]);
 +    //        }
 +    //        FREE(Block.rpar);
 +    //        FREE(Block.ipar);
 +    //        FREE(Block.oparsz);
 +    //        Scierror(888, _("%s : Allocation error.\n"), fname);
 +    //        return 0;
 +    //    }
  
 -        if ((Block.oparptr = (void **) MALLOC(Block.nopar * sizeof(void *))) == NULL)
 -        {
 -            for (j = 0; j < Block.nin; j++)
 -            {
 -                FREE(Block.inptr[j]);
 -            }
 -            FREE(Block.inptr);
 -            FREE(Block.insz);
 -            for (j = 0; j < Block.nout; j++)
 -            {
 -                FREE(Block.outptr[j]);
 -            }
 -            FREE(Block.outptr);
 -            FREE(Block.outsz);
 -            FREE(Block.evout);
 -            FREE(Block.x);
 -            FREE(Block.xd);
 -            FREE(Block.xprop);
 -            FREE(Block.res);
 -            FREE(Block.z);
 -            FREE(Block.ozsz);
 -            FREE(Block.oztyp);
 -            for (j = 0; j < Block.noz; j++)
 -            {
 -                FREE(Block.ozptr[j]);
 -            }
 -            FREE(Block.rpar);
 -            FREE(Block.ipar);
 -            FREE(Block.oparsz);
 -            FREE(Block.opartyp);
 -            Scierror(888, _("%s : Allocation error.\n"), fname);
 -            return 0;
 -        }
 +    //    if ((Block.oparptr = (void **) MALLOC(Block.nopar * sizeof(void *))) == NULL)
 +    //    {
 +    //        for (j = 0; j < Block.nin; j++)
 +    //        {
 +    //            FREE(Block.inptr[j]);
 +    //        }
 +    //        FREE(Block.inptr);
 +    //        FREE(Block.insz);
 +    //        for (j = 0; j < Block.nout; j++)
 +    //        {
 +    //            FREE(Block.outptr[j]);
 +    //        }
 +    //        FREE(Block.outptr);
 +    //        FREE(Block.outsz);
 +    //        FREE(Block.evout);
 +    //        FREE(Block.x);
 +    //        FREE(Block.xd);
 +    //        FREE(Block.xprop);
 +    //        FREE(Block.res);
 +    //        FREE(Block.z);
 +    //        FREE(Block.ozsz);
 +    //        FREE(Block.oztyp);
 +    //        for (j = 0; j < Block.noz; j++)
 +    //        {
 +    //            FREE(Block.ozptr[j]);
 +    //        }
 +    //        FREE(Block.rpar);
 +    //        FREE(Block.ipar);
 +    //        FREE(Block.oparsz);
 +    //        FREE(Block.opartyp);
 +    //        Scierror(888, _("%s : Allocation error.\n"), fname);
 +    //        return 0;
 +    //    }
  
 -        for (i = 0; i < mh * nh; i++)
 -        {
 -            ilh2 = (int *) (listentry(ilh, i + 1));
 -            mh2  = ilh2[1];
 -            nh2  = ilh2[2];
 -            Block.oparsz[i] = mh2;
 -            Block.oparsz[Block.nopar + i] = nh2;
 -            if (ilh2[0] == 1)
 -            {
 -                if (ilh2[3] == 0)
 -                {
 -                    Block.opartyp[i] = 10;
 -                    if ((Block.oparptr[i] = (double *) MALLOC(mh2 * nh2 * sizeof(double))) == NULL)
 -                    {
 -                        for (j = 0; j < Block.nin; j++)
 -                        {
 -                            FREE(Block.inptr[j]);
 -                        }
 -                        FREE(Block.inptr);
 -                        FREE(Block.insz);
 -                        for (j = 0; j < Block.nout; j++)
 -                        {
 -                            FREE(Block.outptr[j]);
 -                        }
 -                        FREE(Block.outptr);
 -                        FREE(Block.outsz);
 -                        FREE(Block.evout);
 -                        FREE(Block.x);
 -                        FREE(Block.xd);
 -                        FREE(Block.xprop);
 -                        FREE(Block.res);
 -                        FREE(Block.z);
 -                        FREE(Block.ozsz);
 -                        FREE(Block.oztyp);
 -                        for (j = 0; j < Block.noz; j++)
 -                        {
 -                            FREE(Block.ozptr[j]);
 -                        }
 -                        FREE(Block.rpar);
 -                        FREE(Block.ipar);
 -                        FREE(Block.oparsz);
 -                        FREE(Block.opartyp);
 -                        for (j = 0; j < i; j++)
 -                        {
 -                            FREE(Block.oparptr[j]);
 -                        }
 -                        Scierror(888, _("%s : Allocation error.\n"), fname);
 -                        return 0;
 -                    }
 -                    ptr_d = (double *) Block.oparptr[i];
 -                    for (j = 0; j < mh2 * nh2; j++)
 -                    {
 -                        ptr_d[j] = *((double *)(&ilh2[4]) + j);
 -                    }
 -                }
 -                else if (ilh2[3] == 1)
 -                {
 -                    Block.opartyp[i] = 11;
 -                    if ((Block.oparptr[i] = (double *) MALLOC(2 * mh2 * nh2 * sizeof(double))) == NULL)
 -                    {
 -                        for (j = 0; j < Block.nin; j++)
 -                        {
 -                            FREE(Block.inptr[j]);
 -                        }
 -                        FREE(Block.inptr);
 -                        FREE(Block.insz);
 -                        for (j = 0; j < Block.nout; j++)
 -                        {
 -                            FREE(Block.outptr[j]);
 -                        }
 -                        FREE(Block.outptr);
 -                        FREE(Block.outsz);
 -                        FREE(Block.evout);
 -                        FREE(Block.x);
 -                        FREE(Block.xd);
 -                        FREE(Block.xprop);
 -                        FREE(Block.res);
 -                        FREE(Block.z);
 -                        FREE(Block.ozsz);
 -                        FREE(Block.oztyp);
 -                        for (j = 0; j < Block.noz; j++)
 -                        {
 -                            FREE(Block.ozptr[j]);
 -                        }
 -                        FREE(Block.rpar);
 -                        FREE(Block.ipar);
 -                        FREE(Block.oparsz);
 -                        FREE(Block.opartyp);
 -                        for (j = 0; j < i; j++)
 -                        {
 -                            FREE(Block.oparptr[j]);
 -                        }
 -                        Scierror(888, _("%s : Allocation error.\n"), fname);
 -                        return 0;
 -                    }
 +    //    for (i = 0; i < mh * nh; i++)
 +    //    {
 +    //        ilh2 = (int *) (listentry(ilh, i + 1));
 +    //        mh2  = ilh2[1];
 +    //        nh2  = ilh2[2];
 +    //        Block.oparsz[i] = mh2;
 +    //        Block.oparsz[Block.nopar + i] = nh2;
 +    //        if (ilh2[0] == 1)
 +    //        {
 +    //            if (ilh2[3] == 0)
 +    //            {
 +    //                Block.opartyp[i] = 10;
 +    //                if ((Block.oparptr[i] = (double *) MALLOC(mh2 * nh2 * sizeof(double))) == NULL)
 +    //                {
 +    //                    for (j = 0; j < Block.nin; j++)
 +    //                    {
 +    //                        FREE(Block.inptr[j]);
 +    //                    }
 +    //                    FREE(Block.inptr);
 +    //                    FREE(Block.insz);
 +    //                    for (j = 0; j < Block.nout; j++)
 +    //                    {
 +    //                        FREE(Block.outptr[j]);
 +    //                    }
 +    //                    FREE(Block.outptr);
 +    //                    FREE(Block.outsz);
 +    //                    FREE(Block.evout);
 +    //                    FREE(Block.x);
 +    //                    FREE(Block.xd);
 +    //                    FREE(Block.xprop);
 +    //                    FREE(Block.res);
 +    //                    FREE(Block.z);
 +    //                    FREE(Block.ozsz);
 +    //                    FREE(Block.oztyp);
 +    //                    for (j = 0; j < Block.noz; j++)
 +    //                    {
 +    //                        FREE(Block.ozptr[j]);
 +    //                    }
 +    //                    FREE(Block.rpar);
 +    //                    FREE(Block.ipar);
 +    //                    FREE(Block.oparsz);
 +    //                    FREE(Block.opartyp);
 +    //                    for (j = 0; j < i; j++)
 +    //                    {
 +    //                        FREE(Block.oparptr[j]);
 +    //                    }
 +    //                    Scierror(888, _("%s : Allocation error.\n"), fname);
 +    //                    return 0;
 +    //                }
 +    //                ptr_d = (double *) Block.oparptr[i];
 +    //                for (j = 0; j < mh2 * nh2; j++)
 +    //                {
 +    //                    ptr_d[j] = *((double *)(&ilh2[4]) + j);
 +    //                }
 +    //            }
 +    //            else if (ilh2[3] == 1)
 +    //            {
 +    //                Block.opartyp[i] = 11;
 +    //                if ((Block.oparptr[i] = (double *) MALLOC(2 * mh2 * nh2 * sizeof(double))) == NULL)
 +    //                {
 +    //                    for (j = 0; j < Block.nin; j++)
 +    //                    {
 +    //                        FREE(Block.inptr[j]);
 +    //                    }
 +    //                    FREE(Block.inptr);
 +    //                    FREE(Block.insz);
 +    //                    for (j = 0; j < Block.nout; j++)
 +    //                    {
 +    //                        FREE(Block.outptr[j]);
 +    //                    }
 +    //                    FREE(Block.outptr);
 +    //                    FREE(Block.outsz);
 +    //                    FREE(Block.evout);
 +    //                    FREE(Block.x);
 +    //                    FREE(Block.xd);
 +    //                    FREE(Block.xprop);
 +    //                    FREE(Block.res);
 +    //                    FREE(Block.z);
 +    //                    FREE(Block.ozsz);
 +    //                    FREE(Block.oztyp);
 +    //                    for (j = 0; j < Block.noz; j++)
 +    //                    {
 +    //                        FREE(Block.ozptr[j]);
 +    //                    }
 +    //                    FREE(Block.rpar);
 +    //                    FREE(Block.ipar);
 +    //                    FREE(Block.oparsz);
 +    //                    FREE(Block.opartyp);
 +    //                    for (j = 0; j < i; j++)
 +    //                    {
 +    //                        FREE(Block.oparptr[j]);
 +    //                    }
 +    //                    Scierror(888, _("%s : Allocation error.\n"), fname);
 +    //                    return 0;
 +    //                }
  
 -                    ptr_d = (double *) Block.oparptr[i];
 -                    for (j = 0; j < 2 * mh2 * nh2; j++)
 -                    {
 -                        ptr_d[j] = *((double *)(&ilh2[4]) + j);
 -                    }
 -                }
 -            }
 -            else if (ilh2[0] == 8)
 -            {
 -                if (ilh2[3] == 4)
 -                {
 -                    Block.opartyp[i] = 84;
 -                    if ((Block.oparptr[i] = (SCSINT32_COP *) MALLOC(mh2 * nh2 * sizeof(SCSINT32_COP))) == NULL)
 -                    {
 -                        for (j = 0; j < Block.nin; j++)
 -                        {
 -                            FREE(Block.inptr[j]);
 -                        }
 -                        FREE(Block.inptr);
 -                        FREE(Block.insz);
 -                        for (j = 0; j < Block.nout; j++)
 -                        {
 -                            FREE(Block.outptr[j]);
 -                        }
 -                        FREE(Block.outptr);
 -                        FREE(Block.outsz);
 -                        FREE(Block.evout);
 -                        FREE(Block.x);
 -                        FREE(Block.xd);
 -                        FREE(Block.xprop);
 -                        FREE(Block.res);
 -                        FREE(Block.z);
 -                        FREE(Block.ozsz);
 -                        FREE(Block.oztyp);
 -                        for (j = 0; j < Block.noz; j++)
 -                        {
 -                            FREE(Block.ozptr[j]);
 -                        }
 -                        FREE(Block.rpar);
 -                        FREE(Block.ipar);
 -                        FREE(Block.oparsz);
 -                        FREE(Block.opartyp);
 -                        for (j = 0; j < i; j++)
 -                        {
 -                            FREE(Block.oparptr[j]);
 -                        }
 -                        Scierror(888, _("%s : Allocation error.\n"), fname);
 -                        return 0;
 -                    }
 -                    ptr_l = (SCSINT32_COP *) Block.oparptr[i];
 -                    for (j = 0; j < mh2 * nh2; j++)
 -                    {
 -                        ptr_l[j] = *((SCSINT32_COP *)(&ilh2[4]) + j);
 -                    }
 -                }
 -                else if (ilh2[3] == 2)
 -                {
 -                    Block.opartyp[i] = 82;
 -                    if ((Block.oparptr[i] = (short *) MALLOC(mh2 * nh2 * sizeof(short))) == NULL)
 -                    {
 -                        for (j = 0; j < Block.nin; j++)
 -                        {
 -                            FREE(Block.inptr[j]);
 -                        }
 -                        FREE(Block.inptr);
 -                        FREE(Block.insz);
 -                        for (j = 0; j < Block.nout; j++)
 -                        {
 -                            FREE(Block.outptr[j]);
 -                        }
 -                        FREE(Block.outptr);
 -                        FREE(Block.outsz);
 -                        FREE(Block.evout);
 -                        FREE(Block.x);
 -                        FREE(Block.xd);
 -                        FREE(Block.xprop);
 -                        FREE(Block.res);
 -                        FREE(Block.z);
 -                        FREE(Block.ozsz);
 -                        FREE(Block.oztyp);
 -                        for (j = 0; j < Block.noz; j++)
 -                        {
 -                            FREE(Block.ozptr[j]);
 -                        }
 -                        FREE(Block.rpar);
 -                        FREE(Block.ipar);
 -                        FREE(Block.oparsz);
 -                        FREE(Block.opartyp);
 -                        for (j = 0; j < i; j++)
 -                        {
 -                            FREE(Block.oparptr[j]);
 -                        }
 -                        Scierror(888, _("%s : Allocation error.\n"), fname);
 -                        return 0;
 -                    }
 -                    ptr_s = (short *) Block.oparptr[i];
 -                    for (j = 0; j < mh2 * nh2; j++)
 -                    {
 -                        ptr_s[j] = *((short *)(&ilh2[4]) + j);
 -                    }
 -                }
 -                else if (ilh2[3] == 1)
 -                {
 -                    Block.opartyp[i] = 81;
 -                    if ((Block.oparptr[i] = (char *) MALLOC(mh2 * nh2 * sizeof(char))) == NULL)
 -                    {
 -                        for (j = 0; j < Block.nin; j++)
 -                        {
 -                            FREE(Block.inptr[j]);
 -                        }
 -                        FREE(Block.inptr);
 -                        FREE(Block.insz);
 -                        for (j = 0; j < Block.nout; j++)
 -                        {
 -                            FREE(Block.outptr[j]);
 -                        }
 -                        FREE(Block.outptr);
 -                        FREE(Block.outsz);
 -                        FREE(Block.evout);
 -                        FREE(Block.x);
 -                        FREE(Block.xd);
 -                        FREE(Block.xprop);
 -                        FREE(Block.res);
 -                        FREE(Block.z);
 -                        FREE(Block.ozsz);
 -                        FREE(Block.oztyp);
 -                        for (j = 0; j < Block.noz; j++)
 -                        {
 -                            FREE(Block.ozptr[j]);
 -                        }
 -                        FREE(Block.rpar);
 -                        FREE(Block.ipar);
 -                        FREE(Block.oparsz);
 -                        FREE(Block.opartyp);
 -                        for (j = 0; j < i; j++)
 -                        {
 -                            FREE(Block.oparptr[j]);
 -                        }
 -                        Scierror(888, _("%s : Allocation error.\n"), fname);
 -                        return 0;
 -                    }
 -                    ptr_c = (char *) Block.oparptr[i];
 -                    for (j = 0; j < mh2 * nh2; j++)
 -                    {
 -                        ptr_c[j] = *((char *)(&ilh2[4]) + j);
 -                    }
 -                }
 -                else if (ilh2[3] == 14)
 -                {
 -                    Block.opartyp[i] = 814;
 -                    if ((Block.oparptr[i] = (SCSUINT32_COP *) MALLOC(mh2 * nh2 * sizeof(SCSUINT32_COP))) == NULL)
 -                    {
 -                        for (j = 0; j < Block.nin; j++)
 -                        {
 -                            FREE(Block.inptr[j]);
 -                        }
 -                        FREE(Block.inptr);
 -                        FREE(Block.insz);
 -                        for (j = 0; j < Block.nout; j++)
 -                        {
 -                            FREE(Block.outptr[j]);
 -                        }
 -                        FREE(Block.outptr);
 -                        FREE(Block.outsz);
 -                        FREE(Block.evout);
 -                        FREE(Block.x);
 -                        FREE(Block.xd);
 -                        FREE(Block.xprop);
 -                        FREE(Block.res);
 -                        FREE(Block.z);
 -                        FREE(Block.ozsz);
 -                        FREE(Block.oztyp);
 -                        for (j = 0; j < Block.noz; j++)
 -                        {
 -                            FREE(Block.ozptr[j]);
 -                        }
 -                        FREE(Block.rpar);
 -                        FREE(Block.ipar);
 -                        FREE(Block.oparsz);
 -                        FREE(Block.opartyp);
 -                        for (j = 0; j < i; j++)
 -                        {
 -                            FREE(Block.oparptr[j]);
 -                        }
 -                        Scierror(888, _("%s : Allocation error.\n"), fname);
 -                        return 0;
 -                    }
 -                    ptr_ul = (SCSUINT32_COP *) Block.oparptr[i];
 -                    for (j = 0; j < mh2 * nh2; j++)
 -                    {
 -                        ptr_ul[j] = *((SCSUINT32_COP *)(&ilh2[4]) + j);
 -                    }
 -                }
 -                else if (ilh2[3] == 12)
 -                {
 -                    Block.opartyp[i] = 812;
 -                    if ((Block.oparptr[i] = (unsigned short *) MALLOC(mh2 * nh2 * sizeof(unsigned short))) == NULL)
 -                    {
 -                        for (j = 0; j < Block.nin; j++)
 -                        {
 -                            FREE(Block.inptr[j]);
 -                        }
 -                        FREE(Block.inptr);
 -                        FREE(Block.insz);
 -                        for (j = 0; j < Block.nout; j++)
 -                        {
 -                            FREE(Block.outptr[j]);
 -                        }
 -                        FREE(Block.outptr);
 -                        FREE(Block.outsz);
 -                        FREE(Block.evout);
 -                        FREE(Block.x);
 -                        FREE(Block.xd);
 -                        FREE(Block.xprop);
 -                        FREE(Block.res);
 -                        FREE(Block.z);
 -                        FREE(Block.ozsz);
 -                        FREE(Block.oztyp);
 -                        for (j = 0; j < Block.noz; j++)
 -                        {
 -                            FREE(Block.ozptr[j]);
 -                        }
 -                        FREE(Block.rpar);
 -                        FREE(Block.ipar);
 -                        FREE(Block.oparsz);
 -                        FREE(Block.opartyp);
 -                        for (j = 0; j < i; j++)
 -                        {
 -                            FREE(Block.oparptr[j]);
 -                        }
 -                        Scierror(888, _("%s : Allocation error.\n"), fname);
 -                        return 0;
 -                    }
 -                    ptr_us = (unsigned short *) Block.oparptr[i];
 -                    for (j = 0; j < mh2 * nh2; j++)
 -                    {
 -                        ptr_us[j] = *((unsigned short *)(&ilh2[4]) + j);
 -                    }
 -                }
 -                else if (ilh2[3] == 11)
 -                {
 -                    Block.opartyp[i] = 811;
 -                    if ((Block.oparptr[i] = (unsigned char *) MALLOC(mh2 * nh2 * sizeof(unsigned char))) == NULL)
 -                    {
 -                        for (j = 0; j < Block.nin; j++)
 -                        {
 -                            FREE(Block.inptr[j]);
 -                        }
 -                        FREE(Block.inptr);
 -                        FREE(Block.insz);
 -                        for (j = 0; j < Block.nout; j++)
 -                        {
 -                            FREE(Block.outptr[j]);
 -                        }
 -                        FREE(Block.outptr);
 -                        FREE(Block.outsz);
 -                        FREE(Block.evout);
 -                        FREE(Block.x);
 -                        FREE(Block.xd);
 -                        FREE(Block.xprop);
 -                        FREE(Block.res);
 -                        FREE(Block.z);
 -                        FREE(Block.ozsz);
 -                        FREE(Block.oztyp);
 -                        for (j = 0; j < Block.noz; j++)
 -                        {
 -                            FREE(Block.ozptr[j]);
 -                        }
 -                        FREE(Block.rpar);
 -                        FREE(Block.ipar);
 -                        FREE(Block.oparsz);
 -                        FREE(Block.opartyp);
 -                        for (j = 0; j < i; j++)
 -                        {
 -                            FREE(Block.oparptr[j]);
 -                        }
 -                        Scierror(888, _("%s : Allocation error.\n"), fname);
 -                        return 0;
 -                    }
 -                    ptr_uc = (unsigned char *) Block.oparptr[i];
 -                    for (j = 0; j < mh2 * nh2; j++)
 -                    {
 -                        ptr_uc[j] = *((unsigned char *)(&ilh2[4]) + j);
 -                    }
 -                }
 -            }
 -        }
 -    }
 +    //                ptr_d = (double *) Block.oparptr[i];
 +    //                for (j = 0; j < 2 * mh2 * nh2; j++)
 +    //                {
 +    //                    ptr_d[j] = *((double *)(&ilh2[4]) + j);
 +    //                }
 +    //            }
 +    //        }
 +    //        else if (ilh2[0] == 8)
 +    //        {
 +    //            if (ilh2[3] == 4)
 +    //            {
 +    //                Block.opartyp[i] = 84;
-     //                if ((Block.oparptr[i] = (long *) MALLOC(mh2 * nh2 * sizeof(long))) == NULL)
++    //                if ((Block.oparptr[i] = (SCSINT32_COP *) MALLOC(mh2 * nh2 * sizeof(SCSINT32_COP))) == NULL)
 +    //                {
 +    //                    for (j = 0; j < Block.nin; j++)
 +    //                    {
 +    //                        FREE(Block.inptr[j]);
 +    //                    }
 +    //                    FREE(Block.inptr);
 +    //                    FREE(Block.insz);
 +    //                    for (j = 0; j < Block.nout; j++)
 +    //                    {
 +    //                        FREE(Block.outptr[j]);
 +    //                    }
 +    //                    FREE(Block.outptr);
 +    //                    FREE(Block.outsz);
 +    //                    FREE(Block.evout);
 +    //                    FREE(Block.x);
 +    //                    FREE(Block.xd);
 +    //                    FREE(Block.xprop);
 +    //                    FREE(Block.res);
 +    //                    FREE(Block.z);
 +    //                    FREE(Block.ozsz);
 +    //                    FREE(Block.oztyp);
 +    //                    for (j = 0; j < Block.noz; j++)
 +    //                    {
 +    //                        FREE(Block.ozptr[j]);
 +    //                    }
 +    //                    FREE(Block.rpar);
 +    //                    FREE(Block.ipar);
 +    //                    FREE(Block.oparsz);
 +    //                    FREE(Block.opartyp);
 +    //                    for (j = 0; j < i; j++)
 +    //                    {
 +    //                        FREE(Block.oparptr[j]);
 +    //                    }
 +    //                    Scierror(888, _("%s : Allocation error.\n"), fname);
 +    //                    return 0;
 +    //                }
-     //                ptr_l = (long *) Block.oparptr[i];
++    //                ptr_l = (SCSINT32_COP *) Block.oparptr[i];
 +    //                for (j = 0; j < mh2 * nh2; j++)
 +    //                {
-     //                    ptr_l[j] = *((long *)(&ilh2[4]) + j);
++    //                    ptr_l[j] = *((SCSINT32_COP *)(&ilh2[4]) + j);
 +    //                }
 +    //            }
 +    //            else if (ilh2[3] == 2)
 +    //            {
 +    //                Block.opartyp[i] = 82;
 +    //                if ((Block.oparptr[i] = (short *) MALLOC(mh2 * nh2 * sizeof(short))) == NULL)
 +    //                {
 +    //                    for (j = 0; j < Block.nin; j++)
 +    //                    {
 +    //                        FREE(Block.inptr[j]);
 +    //                    }
 +    //                    FREE(Block.inptr);
 +    //                    FREE(Block.insz);
 +    //                    for (j = 0; j < Block.nout; j++)
 +    //                    {
 +    //                        FREE(Block.outptr[j]);
 +    //                    }
 +    //                    FREE(Block.outptr);
 +    //                    FREE(Block.outsz);
 +    //                    FREE(Block.evout);
 +    //                    FREE(Block.x);
 +    //                    FREE(Block.xd);
 +    //                    FREE(Block.xprop);
 +    //                    FREE(Block.res);
 +    //                    FREE(Block.z);
 +    //                    FREE(Block.ozsz);
 +    //                    FREE(Block.oztyp);
 +    //                    for (j = 0; j < Block.noz; j++)
 +    //                    {
 +    //                        FREE(Block.ozptr[j]);
 +    //                    }
 +    //                    FREE(Block.rpar);
 +    //                    FREE(Block.ipar);
 +    //                    FREE(Block.oparsz);
 +    //                    FREE(Block.opartyp);
 +    //                    for (j = 0; j < i; j++)
 +    //                    {
 +    //                        FREE(Block.oparptr[j]);
 +    //                    }
 +    //                    Scierror(888, _("%s : Allocation error.\n"), fname);
 +    //                    return 0;
 +    //                }
 +    //                ptr_s = (short *) Block.oparptr[i];
 +    //                for (j = 0; j < mh2 * nh2; j++)
 +    //                {
 +    //                    ptr_s[j] = *((short *)(&ilh2[4]) + j);
 +    //                }
 +    //            }
 +    //            else if (ilh2[3] == 1)
 +    //            {
 +    //                Block.opartyp[i] = 81;
 +    //                if ((Block.oparptr[i] = (char *) MALLOC(mh2 * nh2 * sizeof(char))) == NULL)
 +    //                {
 +    //                    for (j = 0; j < Block.nin; j++)
 +    //                    {
 +    //                        FREE(Block.inptr[j]);
 +    //                    }
 +    //                    FREE(Block.inptr);
 +    //                    FREE(Block.insz);
 +    //                    for (j = 0; j < Block.nout; j++)
 +    //                    {
 +    //                        FREE(Block.outptr[j]);
 +    //                    }
 +    //                    FREE(Block.outptr);
 +    //                    FREE(Block.outsz);
 +    //                    FREE(Block.evout);
 +    //                    FREE(Block.x);
 +    //                    FREE(Block.xd);
 +    //                    FREE(Block.xprop);
 +    //                    FREE(Block.res);
 +    //                    FREE(Block.z);
 +    //                    FREE(Block.ozsz);
 +    //                    FREE(Block.oztyp);
 +    //                    for (j = 0; j < Block.noz; j++)
 +    //                    {
 +    //                        FREE(Block.ozptr[j]);
 +    //                    }
 +    //                    FREE(Block.rpar);
 +    //                    FREE(Block.ipar);
 +    //                    FREE(Block.oparsz);
 +    //                    FREE(Block.opartyp);
 +    //                    for (j = 0; j < i; j++)
 +    //                    {
 +    //                        FREE(Block.oparptr[j]);
 +    //                    }
 +    //                    Scierror(888, _("%s : Allocation error.\n"), fname);
 +    //                    return 0;
 +    //                }
 +    //                ptr_c = (char *) Block.oparptr[i];
 +    //                for (j = 0; j < mh2 * nh2; j++)
 +    //                {
 +    //                    ptr_c[j] = *((char *)(&ilh2[4]) + j);
 +    //                }
 +    //            }
 +    //            else if (ilh2[3] == 14)
 +    //            {
 +    //                Block.opartyp[i] = 814;
-     //                if ((Block.oparptr[i] = (unsigned long *) MALLOC(mh2 * nh2 * sizeof(unsigned long))) == NULL)
++    //                if ((Block.oparptr[i] = (SCSUINT32_COP *) MALLOC(mh2 * nh2 * sizeof(SCSUINT32_COP))) == NULL)
 +    //                {
 +    //                    for (j = 0; j < Block.nin; j++)
 +    //                    {
 +    //                        FREE(Block.inptr[j]);
 +    //                    }
 +    //                    FREE(Block.inptr);
 +    //                    FREE(Block.insz);
 +    //                    for (j = 0; j < Block.nout; j++)
 +    //                    {
 +    //                        FREE(Block.outptr[j]);
 +    //                    }
 +    //                    FREE(Block.outptr);
 +    //                    FREE(Block.outsz);
 +    //                    FREE(Block.evout);
 +    //                    FREE(Block.x);
 +    //                    FREE(Block.xd);
 +    //                    FREE(Block.xprop);
 +    //                    FREE(Block.res);
 +    //                    FREE(Block.z);
 +    //                    FREE(Block.ozsz);
 +    //                    FREE(Block.oztyp);
 +    //                    for (j = 0; j < Block.noz; j++)
 +    //                    {
 +    //                        FREE(Block.ozptr[j]);
 +    //                    }
 +    //                    FREE(Block.rpar);
 +    //                    FREE(Block.ipar);
 +    //                    FREE(Block.oparsz);
 +    //                    FREE(Block.opartyp);
 +    //                    for (j = 0; j < i; j++)
 +    //                    {
 +    //                        FREE(Block.oparptr[j]);
 +    //                    }
 +    //                    Scierror(888, _("%s : Allocation error.\n"), fname);
 +    //                    return 0;
 +    //                }
-     //                ptr_ul = (unsigned long *) Block.oparptr[i];
++    //                ptr_ul = (SCSUINT32_COP *) Block.oparptr[i];
 +    //                for (j = 0; j < mh2 * nh2; j++)
 +    //                {
-     //                    ptr_ul[j] = *((unsigned long *)(&ilh2[4]) + j);
++    //                    ptr_ul[j] = *((SCSUINT32_COP *)(&ilh2[4]) + j);
 +    //                }
 +    //            }
 +    //            else if (ilh2[3] == 12)
 +    //            {
 +    //                Block.opartyp[i] = 812;
 +    //                if ((Block.oparptr[i] = (unsigned short *) MALLOC(mh2 * nh2 * sizeof(unsigned short))) == NULL)
 +    //                {
 +    //                    for (j = 0; j < Block.nin; j++)
 +    //                    {
 +    //                        FREE(Block.inptr[j]);
 +    //                    }
 +    //                    FREE(Block.inptr);
 +    //                    FREE(Block.insz);
 +    //                    for (j = 0; j < Block.nout; j++)
 +    //                    {
 +    //                        FREE(Block.outptr[j]);
 +    //                    }
 +    //                    FREE(Block.outptr);
 +    //                    FREE(Block.outsz);
 +    //                    FREE(Block.evout);
 +    //                    FREE(Block.x);
 +    //                    FREE(Block.xd);
 +    //                    FREE(Block.xprop);
 +    //                    FREE(Block.res);
 +    //                    FREE(Block.z);
 +    //                    FREE(Block.ozsz);
 +    //                    FREE(Block.oztyp);
 +    //                    for (j = 0; j < Block.noz; j++)
 +    //                    {
 +    //                        FREE(Block.ozptr[j]);
 +    //                    }
 +    //                    FREE(Block.rpar);
 +    //                    FREE(Block.ipar);
 +    //                    FREE(Block.oparsz);
 +    //                    FREE(Block.opartyp);
 +    //                    for (j = 0; j < i; j++)
 +    //                    {
 +    //                        FREE(Block.oparptr[j]);
 +    //                    }
 +    //                    Scierror(888, _("%s : Allocation error.\n"), fname);
 +    //                    return 0;
 +    //                }
 +    //                ptr_us = (unsigned short *) Block.oparptr[i];
 +    //                for (j = 0; j < mh2 * nh2; j++)
 +    //                {
 +    //                    ptr_us[j] = *((unsigned short *)(&ilh2[4]) + j);
 +    //                }
 +    //            }
 +    //            else if (ilh2[3] == 11)
 +    //            {
 +    //                Block.opartyp[i] = 811;
 +    //                if ((Block.oparptr[i] = (unsigned char *) MALLOC(mh2 * nh2 * sizeof(unsigned char))) == NULL)
 +    //                {
 +    //                    for (j = 0; j < Block.nin; j++)
 +    //                    {
 +    //                        FREE(Block.inptr[j]);
 +    //                    }
 +    //                    FREE(Block.inptr);
 +    //                    FREE(Block.insz);
 +    //                    for (j = 0; j < Block.nout; j++)
 +    //                    {
 +    //                        FREE(Block.outptr[j]);
 +    //                    }
 +    //                    FREE(Block.outptr);
 +    //                    FREE(Block.outsz);
 +    //                    FREE(Block.evout);
 +    //                    FREE(Block.x);
 +    //                    FREE(Block.xd);
 +    //                    FREE(Block.xprop);
 +    //                    FREE(Block.res);
 +    //                    FREE(Block.z);
 +    //                    FREE(Block.ozsz);
 +    //                    FREE(Block.oztyp);
 +    //                    for (j = 0; j < Block.noz; j++)
 +    //                    {
 +    //                        FREE(Block.ozptr[j]);
 +    //                    }
 +    //                    FREE(Block.rpar);
 +    //                    FREE(Block.ipar);
 +    //                    FREE(Block.oparsz);
 +    //                    FREE(Block.opartyp);
 +    //                    for (j = 0; j < i; j++)
 +    //                    {
 +    //                        FREE(Block.oparptr[j]);
 +    //                    }
 +    //                    Scierror(888, _("%s : Allocation error.\n"), fname);
 +    //                    return 0;
 +    //                }
 +    //                ptr_uc = (unsigned char *) Block.oparptr[i];
 +    //                for (j = 0; j < mh2 * nh2; j++)
 +    //                {
 +    //                    ptr_uc[j] = *((unsigned char *)(&ilh2[4]) + j);
 +    //                }
 +    //            }
 +    //        }
 +    //    }
 +    //}
  
 -    /* labels */
 -    /* 20 : model.label  */
 -    n            = MlistGetFieldNumber(il1, "label");
 -    ilh          = (int *) (listentry(il1, n));
 -    mh           = ilh[1];
 -    nh           = ilh[2];
 -    Block.label  = "";
 -    if (mh * nh != 0)
 -    {
 -        len_str  = ilh[5] - 1;
 -        if (len_str != 0)
 -        {
 -            if ((Block.label = (char *) MALLOC((len_str + 1) * sizeof(char))) == NULL)
 -            {
 -                for (j = 0; j < Block.nin; j++)
 -                {
 -                    FREE(Block.inptr[j]);
 -                }
 -                FREE(Block.inptr);
 -                FREE(Block.insz);
 -                for (j = 0; j < Block.nout; j++)
 -                {
 -                    FREE(Block.outptr[j]);
 -                }
 -                FREE(Block.outptr);
 -                FREE(Block.outsz);
 -                FREE(Block.evout);
 -                FREE(Block.x);
 -                FREE(Block.xd);
 -                FREE(Block.xprop);
 -                FREE(Block.res);
 -                FREE(Block.z);
 -                FREE(Block.ozsz);
 -                FREE(Block.oztyp);
 -                for (j = 0; j < Block.noz; j++)
 -                {
 -                    FREE(Block.ozptr[j]);
 -                }
 -                FREE(Block.rpar);
 -                FREE(Block.ipar);
 -                FREE(Block.oparsz);
 -                FREE(Block.opartyp);
 -                for (j = 0; j < Block.nopar; j++)
 -                {
 -                    FREE(Block.oparptr[j]);
 -                }
 -                Scierror(888, _("%s : Allocation error.\n"), fname);
 -                return 0;
 -            }
 -            Block.label[len_str] = '\0';
 -            C2F(cvstr)(&len_str, &ilh[6], Block.label, (j = 1, &j), len_str);
 -        }
 -    }
 +    ///* labels */
 +    ///* 20 : model.label  */
 +    //n            = MlistGetFieldNumber(il1, "label");
 +    //ilh          = (int *) (listentry(il1, n));
 +    //mh           = ilh[1];
 +    //nh           = ilh[2];
 +    //Block.label  = "";
 +    //if (mh * nh != 0)
 +    //{
 +    //    len_str  = ilh[5] - 1;
 +    //    if (len_str != 0)
 +    //    {
 +    //        if ((Block.label = (char *) MALLOC((len_str + 1) * sizeof(char))) == NULL)
 +    //        {
 +    //            for (j = 0; j < Block.nin; j++)
 +    //            {
 +    //                FREE(Block.inptr[j]);
 +    //            }
 +    //            FREE(Block.inptr);
 +    //            FREE(Block.insz);
 +    //            for (j = 0; j < Block.nout; j++)
 +    //            {
 +    //                FREE(Block.outptr[j]);
 +    //            }
 +    //            FREE(Block.outptr);
 +    //            FREE(Block.outsz);
 +    //            FREE(Block.evout);
 +    //            FREE(Block.x);
 +    //            FREE(Block.xd);
 +    //            FREE(Block.xprop);
 +    //            FREE(Block.res);
 +    //            FREE(Block.z);
 +    //            FREE(Block.ozsz);
 +    //            FREE(Block.oztyp);
 +    //            for (j = 0; j < Block.noz; j++)
 +    //            {
 +    //                FREE(Block.ozptr[j]);
 +    //            }
 +    //            FREE(Block.rpar);
 +    //            FREE(Block.ipar);
 +    //            FREE(Block.oparsz);
 +    //            FREE(Block.opartyp);
 +    //            for (j = 0; j < Block.nopar; j++)
 +    //            {
 +    //                FREE(Block.oparptr[j]);
 +    //            }
 +    //            Scierror(888, _("%s : Allocation error.\n"), fname);
 +    //            return 0;
 +    //        }
 +    //        Block.label[len_str] = '\0';
 +    //        C2F(cvstr)(&len_str, &ilh[6], Block.label, (j = 1, &j), len_str);
 +    //    }
 +    //}
  
 -    /* zero crossing */
 -    /* 21 : model.nzcross  */
 -    n            = MlistGetFieldNumber(il1, "nzcross");
 -    ilh          = (int *) (listentry(il1, n));
 -    mh           = ilh[1];
 -    nh           = ilh[2];
 -    Block.ng     = (int) * ((double *)(&ilh[4]));
 -    Block.g      = NULL;
 -    Block.jroot  = NULL;
 -    if (Block.ng != 0)
 -    {
 -        if ((Block.g = (double *) MALLOC(Block.ng * sizeof(double))) == NULL)
 -        {
 -            for (j = 0; j < Block.nin; j++)
 -            {
 -                FREE(Block.inptr[j]);
 -            }
 -            FREE(Block.inptr);
 -            FREE(Block.insz);
 -            for (j = 0; j < Block.nout; j++)
 -            {
 -                FREE(Block.outptr[j]);
 -            }
 -            FREE(Block.outptr);
 -            FREE(Block.outsz);
 -            FREE(Block.evout);
 -            FREE(Block.x);
 -            FREE(Block.xd);
 -            FREE(Block.res);
 -            FREE(Block.xprop);
 -            FREE(Block.z);
 -            FREE(Block.ozsz);
 -            FREE(Block.oztyp);
 -            for (j = 0; j < Block.noz; j++)
 -            {
 -                FREE(Block.ozptr[j]);
 -            }
 -            FREE(Block.rpar);
 -            FREE(Block.ipar);
 -            FREE(Block.oparsz);
 -            FREE(Block.opartyp);
 -            for (j = 0; j < Block.nopar; j++)
 -            {
 -                FREE(Block.oparptr[j]);
 -            }
 -            FREE(Block.label);
 -            Scierror(888, _("%s : Allocation error.\n"), fname);
 -            return 0;
 -        }
 +    ///* zero crossing */
 +    ///* 21 : model.nzcross  */
 +    //n            = MlistGetFieldNumber(il1, "nzcross");
 +    //ilh          = (int *) (listentry(il1, n));
 +    //mh           = ilh[1];
 +    //nh           = ilh[2];
 +    //Block.ng     = (int) * ((double *)(&ilh[4]));
 +    //Block.g      = NULL;
 +    //Block.jroot  = NULL;
 +    //if (Block.ng != 0)
 +    //{
 +    //    if ((Block.g = (double *) MALLOC(Block.ng * sizeof(double))) == NULL)
 +    //    {
 +    //        for (j = 0; j < Block.nin; j++)
 +    //        {
 +    //            FREE(Block.inptr[j]);
 +    //        }
 +    //        FREE(Block.inptr);
 +    //        FREE(Block.insz);
 +    //        for (j = 0; j < Block.nout; j++)
 +    //        {
 +    //            FREE(Block.outptr[j]);
 +    //        }
 +    //        FREE(Block.outptr);
 +    //        FREE(Block.outsz);
 +    //        FREE(Block.evout);
 +    //        FREE(Block.x);
 +    //        FREE(Block.xd);
 +    //        FREE(Block.res);
 +    //        FREE(Block.xprop);
 +    //        FREE(Block.z);
 +    //        FREE(Block.ozsz);
 +    //        FREE(Block.oztyp);
 +    //        for (j = 0; j < Block.noz; j++)
 +    //        {
 +    //            FREE(Block.ozptr[j]);
 +    //        }
 +    //        FREE(Block.rpar);
 +    //        FREE(Block.ipar);
 +    //        FREE(Block.oparsz);
 +    //        FREE(Block.opartyp);
 +    //        for (j = 0; j < Block.nopar; j++)
 +    //        {
 +    //            FREE(Block.oparptr[j]);
 +    //        }
 +    //        FREE(Block.label);
 +    //        Scierror(888, _("%s : Allocation error.\n"), fname);
 +    //        return 0;
 +    //    }
  
 -        for (j = 0; j < Block.ng; j++)
 -        {
 -            Block.g[j] = 0.;
 -        }
 -        if ((Block.jroot = (int *) MALLOC(Block.ng * sizeof(int))) == NULL)
 -        {
 -            for (j = 0; j < Block.nin; j++)
 -            {
 -                FREE(Block.inptr[j]);
 -            }
 -            FREE(Block.inptr);
 -            FREE(Block.insz);
 -            for (j = 0; j < Block.nout; j++)
 -            {
 -                FREE(Block.outptr[j]);
 -            }
 -            FREE(Block.outptr);
 -            FREE(Block.outsz);
 -            FREE(Block.evout);
 -            FREE(Block.x);
 -            FREE(Block.xd);
 -            FREE(Block.res);
 -            FREE(Block.xprop);
 -            FREE(Block.z);
 -            FREE(Block.ozsz);
 -            FREE(Block.oztyp);
 -            for (j = 0; j < Block.noz; j++)
 -            {
 -                FREE(Block.ozptr[j]);
 -            }
 -            FREE(Block.rpar);
 -            FREE(Block.ipar);
 -            FREE(Block.oparsz);
 -            FREE(Block.opartyp);
 -            for (j = 0; j < Block.nopar; j++)
 -            {
 -                FREE(Block.oparptr[j]);
 -            }
 -            FREE(Block.label);
 -            FREE(Block.g);
 -            Scierror(888, _("%s : Allocation error.\n"), fname);
 -            return 0;
 -        }
 +    //    for (j = 0; j < Block.ng; j++)
 +    //    {
 +    //        Block.g[j] = 0.;
 +    //    }
 +    //    if ((Block.jroot = (int *) MALLOC(Block.ng * sizeof(int))) == NULL)
 +    //    {
 +    //        for (j = 0; j < Block.nin; j++)
 +    //        {
 +    //            FREE(Block.inptr[j]);
 +    //        }
 +    //        FREE(Block.inptr);
 +    //        FREE(Block.insz);
 +    //        for (j = 0; j < Block.nout; j++)
 +    //        {
 +    //            FREE(Block.outptr[j]);
 +    //        }
 +    //        FREE(Block.outptr);
 +    //        FREE(Block.outsz);
 +    //        FREE(Block.evout);
 +    //        FREE(Block.x);
 +    //        FREE(Block.xd);
 +    //        FREE(Block.res);
 +    //        FREE(Block.xprop);
 +    //        FREE(Block.z);
 +    //        FREE(Block.ozsz);
 +    //        FREE(Block.oztyp);
 +    //        for (j = 0; j < Block.noz; j++)
 +    //        {
 +    //            FREE(Block.ozptr[j]);
 +    //        }
 +    //        FREE(Block.rpar);
 +    //        FREE(Block.ipar);
 +    //        FREE(Block.oparsz);
 +    //        FREE(Block.opartyp);
 +    //        for (j = 0; j < Block.nopar; j++)
 +    //        {
 +    //            FREE(Block.oparptr[j]);
 +    //        }
 +    //        FREE(Block.label);
 +    //        FREE(Block.g);
 +    //        Scierror(888, _("%s : Allocation error.\n"), fname);
 +    //        return 0;
 +    //    }
  
 -        for (j = 0; j < Block.ng; j++)
 -        {
 -            Block.jroot[j] = 0;
 -        }
 -    }
 +    //    for (j = 0; j < Block.ng; j++)
 +    //    {
 +    //        Block.jroot[j] = 0;
 +    //    }
 +    //}
  
 -    /* mode */
 -    /* 22 : model.nmode  */
 -    n            = MlistGetFieldNumber(il1, "nmode");
 -    ilh          = (int *) (listentry(il1, n));
 -    mh           = ilh[1];
 -    nh           = ilh[2];
 -    Block.nmode  = (int) * ((double *)(&ilh[4]));
 -    Block.mode  = NULL;
 -    if (Block.nmode != 0)
 -    {
 -        if ((Block.mode = (int *) MALLOC(Block.nmode * sizeof(double))) == NULL)
 -        {
 -            for (j = 0; j < Block.nin; j++)
 -            {
 -                FREE(Block.inptr[j]);
 -            }
 -            FREE(Block.inptr);
 -            FREE(Block.insz);
 -            for (j = 0; j < Block.nout; j++)
 -            {
 -                FREE(Block.outptr[j]);
 -            }
 -            FREE(Block.outptr);
 -            FREE(Block.outsz);
 -            FREE(Block.evout);
 -            FREE(Block.x);
 -            FREE(Block.xd);
 -            FREE(Block.res);
 -            FREE(Block.xprop);
 -            FREE(Block.z);
 -            FREE(Block.ozsz);
 -            FREE(Block.oztyp);
 -            for (j = 0; j < Block.noz; j++)
 -            {
 -                FREE(Block.ozptr[j]);
 -            }
 -            FREE(Block.rpar);
 -            FREE(Block.ipar);
 -            FREE(Block.oparsz);
 -            FREE(Block.opartyp);
 -            for (j = 0; j < Block.nopar; j++)
 -            {
 -                FREE(Block.oparptr[j]);
 -            }
 -            FREE(Block.label);
 -            FREE(Block.g);
 -            FREE(Block.jroot);
 -            Scierror(888, _("%s : Allocation error.\n"), fname);
 -            return 0;
 -        }
 +    ///* mode */
 +    ///* 22 : model.nmode  */
 +    //n            = MlistGetFieldNumber(il1, "nmode");
 +    //ilh          = (int *) (listentry(il1, n));
 +    //mh           = ilh[1];
 +    //nh           = ilh[2];
 +    //Block.nmode  = (int) * ((double *)(&ilh[4]));
 +    //Block.mode  = NULL;
 +    //if (Block.nmode != 0)
 +    //{
 +    //    if ((Block.mode = (int *) MALLOC(Block.nmode * sizeof(double))) == NULL)
 +    //    {
 +    //        for (j = 0; j < Block.nin; j++)
 +    //        {
 +    //            FREE(Block.inptr[j]);
 +    //        }
 +    //        FREE(Block.inptr);
 +    //        FREE(Block.insz);
 +    //        for (j = 0; j < Block.nout; j++)
 +    //        {
 +    //            FREE(Block.outptr[j]);
 +    //        }
 +    //        FREE(Block.outptr);
 +    //        FREE(Block.outsz);
 +    //        FREE(Block.evout);
 +    //        FREE(Block.x);
 +    //        FREE(Block.xd);
 +    //        FREE(Block.res);
 +    //        FREE(Block.xprop);
 +    //        FREE(Block.z);
 +    //        FREE(Block.ozsz);
 +    //        FREE(Block.oztyp);
 +    //        for (j = 0; j < Block.noz; j++)
 +    //        {
 +    //            FREE(Block.ozptr[j]);
 +    //        }
 +    //        FREE(Block.rpar);
 +    //        FREE(Block.ipar);
 +    //        FREE(Block.oparsz);
 +    //        FREE(Block.opartyp);
 +    //        for (j = 0; j < Block.nopar; j++)
 +    //        {
 +    //            FREE(Block.oparptr[j]);
 +    //        }
 +    //        FREE(Block.label);
 +    //        FREE(Block.g);
 +    //        FREE(Block.jroot);
 +    //        Scierror(888, _("%s : Allocation error.\n"), fname);
 +    //        return 0;
 +    //    }
  
 -        for (j = 0; j < Block.nmode; j++)
 -        {
 -            Block.mode[j] = 0;
 -        }
 -    }
 +    //    for (j = 0; j < Block.nmode; j++)
 +    //    {
 +    //        Block.mode[j] = 0;
 +    //    }
 +    //}
  
 -    /* work */
 -    if ((Block.work = (void **) MALLOC(sizeof(void *))) == NULL)
 -    {
 -        for (j = 0; j < Block.nin; j++)
 -        {
 -            FREE(Block.inptr[j]);
 -        }
 -        FREE(Block.inptr);
 -        FREE(Block.insz);
 -        for (j = 0; j < Block.nout; j++)
 -        {
 -            FREE(Block.outptr[j]);
 -        }
 -        FREE(Block.outptr);
 -        FREE(Block.outsz);
 -        FREE(Block.evout);
 -        FREE(Block.x);
 -        FREE(Block.xd);
 -        FREE(Block.res);
 -        FREE(Block.xprop);
 -        FREE(Block.z);
 -        FREE(Block.ozsz);
 -        FREE(Block.oztyp);
 -        for (j = 0; j < Block.noz; j++)
 -        {
 -            FREE(Block.ozptr[j]);
 -        }
 -        FREE(Block.rpar);
 -        FREE(Block.ipar);
 -        FREE(Block.oparsz);
 -        FREE(Block.opartyp);
 -        for (j = 0; j < Block.nopar; j++)
 -        {
 -            FREE(Block.oparptr[j]);
 -        }
 -        FREE(Block.label);
 -        FREE(Block.g);
 -        FREE(Block.jroot);
 -        FREE(Block.mode);
 -        Scierror(888, _("%s : Allocation error.\n"), fname);
 -        return 0;
 -    }
 -    *Block.work = NULL;
 +    ///* work */
 +    //if ((Block.work = (void **) MALLOC(sizeof(void *))) == NULL)
 +    //{
 +    //    for (j = 0; j < Block.nin; j++)
 +    //    {
 +    //        FREE(Block.inptr[j]);
 +    //    }
 +    //    FREE(Block.inptr);
 +    //    FREE(Block.insz);
 +    //    for (j = 0; j < Block.nout; j++)
 +    //    {
 +    //        FREE(Block.outptr[j]);
 +    //    }
 +    //    FREE(Block.outptr);
 +    //    FREE(Block.outsz);
 +    //    FREE(Block.evout);
 +    //    FREE(Block.x);
 +    //    FREE(Block.xd);
 +    //    FREE(Block.res);
 +    //    FREE(Block.xprop);
 +    //    FREE(Block.z);
 +    //    FREE(Block.ozsz);
 +    //    FREE(Block.oztyp);
 +    //    for (j = 0; j < Block.noz; j++)
 +    //    {
 +    //        FREE(Block.ozptr[j]);
 +    //    }
 +    //    FREE(Block.rpar);
 +    //    FREE(Block.ipar);
 +    //    FREE(Block.oparsz);
 +    //    FREE(Block.opartyp);
 +    //    for (j = 0; j < Block.nopar; j++)
 +    //    {
 +    //        FREE(Block.oparptr[j]);
 +    //    }
 +    //    FREE(Block.label);
 +    //    FREE(Block.g);
 +    //    FREE(Block.jroot);
 +    //    FREE(Block.mode);
 +    //    Scierror(888, _("%s : Allocation error.\n"), fname);
 +    //    return 0;
 +    //}
 +    //*Block.work = NULL;
  
 -    TopSave = Top;
 +    //TopSave = Top;
  
 -    ierr = createblklist(&Block, &ierr, -1, Block.type);
 +    //ierr = createblklist(&Block, &ierr, -1, Block.type);
  
 -    for (j = 0; j < Block.nin; j++)
 -    {
 -        FREE(Block.inptr[j]);
 -    }
 -    FREE(Block.inptr);
 -    FREE(Block.insz);
 -    for (j = 0; j < Block.nout; j++)
 -    {
 -        FREE(Block.outptr[j]);
 -    }
 -    FREE(Block.outptr);
 -    FREE(Block.outsz);
 -    FREE(Block.evout);
 -    FREE(Block.x);
 -    FREE(Block.xd);
 -    FREE(Block.res);
 -    FREE(Block.z);
 -    FREE(Block.ozsz);
 -    FREE(Block.oztyp);
 -    for (j = 0; j < Block.noz; j++)
 -    {
 -        FREE(Block.ozptr[j]);
 -    }
 -    FREE(Block.rpar);
 -    FREE(Block.ipar);
 -    FREE(Block.oparsz);
 -    FREE(Block.opartyp);
 -    for (j = 0; j < Block.nopar; j++)
 -    {
 -        FREE(Block.oparptr[j]);
 -    }
 -    if (len_str != 0)
 -    {
 -        FREE(Block.label);
 -    }
 -    FREE(Block.g);
 -    FREE(Block.jroot);
 -    FREE(Block.mode);
 -    Top = TopSave;
 +    //for (j = 0; j < Block.nin; j++)
 +    //{
 +    //    FREE(Block.inptr[j]);
 +    //}
 +    //FREE(Block.inptr);
 +    //FREE(Block.insz);
 +    //for (j = 0; j < Block.nout; j++)
 +    //{
 +    //    FREE(Block.outptr[j]);
 +    //}
 +    //FREE(Block.outptr);
 +    //FREE(Block.outsz);
 +    //FREE(Block.evout);
 +    //FREE(Block.x);
 +    //FREE(Block.xd);
 +    //FREE(Block.res);
 +    //FREE(Block.z);
 +    //FREE(Block.ozsz);
 +    //FREE(Block.oztyp);
 +    //for (j = 0; j < Block.noz; j++)
 +    //{
 +    //    FREE(Block.ozptr[j]);
 +    //}
 +    //FREE(Block.rpar);
 +    //FREE(Block.ipar);
 +    //FREE(Block.oparsz);
 +    //FREE(Block.opartyp);
 +    //for (j = 0; j < Block.nopar; j++)
 +    //{
 +    //    FREE(Block.oparptr[j]);
 +    //}
 +    //if (len_str != 0)
 +    //{
 +    //    FREE(Block.label);
 +    //}
 +    //FREE(Block.g);
 +    //FREE(Block.jroot);
 +    //FREE(Block.mode);
 +    //Top = TopSave;
  
 -    CreateVar(2, TYPED_LIST_DATATYPE, &nblklst, (j = 1, &j), &l_tmp);
 -    LhsVar(1) = 2;
 -    PutLhsVar();
 +    //CreateVar(2, TYPED_LIST_DATATYPE, &nblklst, (j = 1, &j), &l_tmp);
 +    //LhsVar(1) = 2;
 +    //PutLhsVar();
  
      return 0;
  }
@@@ -30,2894 -30,2894 +30,2894 @@@ extern int *listentry(int *header, int 
  /*--------------------------------------------------------------------------*/
  int extractblklist(int *il, scicos_block *Block, int *ierr)
  {
 -    /*
 -    * error table :
 -    *  ierr = 0    : no errors
 -    *  ierr = -39 : allocation error
 -    *  ierr = 98  : invalid field name
 -    *
 -    */
 -
 -    /* variables for scilab stack */
 -    int *ilh = NULL;
 -    int mh = 0, nh = 0;
 -    int *ilh2 = NULL;
 -    int mh2 = 0, nh2 = 0;
 -    int len_str = 0;
 -
 -    /* local counter variables */
 -    int n = 0;
 -    int i = 0, j = 0;
 -
 -    *ierr = 0;
 -
 -    /* 2 - nevprt */
 -    n            = MlistGetFieldNumber(il, "nevprt");
 -    if (n == -1)
 -    {
 -        *ierr = 98;
 -        return 0;
 -    }
 -    ilh           = (int *) (listentry(il, n));
 -    mh            = ilh[1];
 -    nh            = ilh[2];
 -    Block->nevprt = (int) * ((double *)(&ilh[4]));
 -
 -    /* 3 - funpt */
 -    n            = MlistGetFieldNumber(il, "funpt");
 -    if (n == -1)
 -    {
 -        *ierr = 98;
 -        return 0;
 -    }
 -    ilh           = (int *) (listentry(il, n));
 -    mh            = ilh[1];
 -    nh            = ilh[2];
 -    // pointer value is stored on double values, restoring as a copy will take
 -    // care of alignement issues and pointer size issues.
 -    memcpy(&Block->funpt, &ilh[4], sizeof(voidg));
 -
 -    /* 4 - type */
 -    n            = MlistGetFieldNumber(il, "type");
 -    if (n == -1)
 -    {
 -        *ierr = 98;
 -        return 0;
 -    }
 -    ilh           = (int *) (listentry(il, n));
 -    mh            = ilh[1];
 -    nh            = ilh[2];
 -    Block->type   = (int) * ((double *)(&ilh[4]));
 -
 -    /* 5 - scsptr */
 -    n            = MlistGetFieldNumber(il, "scsptr");
 -    if (n == -1)
 -    {
 -        *ierr = 98;
 -        return 0;
 -    }
 -    ilh           = (int *) (listentry(il, n));
 -    mh            = ilh[1];
 -    nh            = ilh[2];
 -    Block->scsptr = (int) * ((double *)(&ilh[4]));
 -
 -    /* 6 - nz */
 -    n            = MlistGetFieldNumber(il, "nz");
 -    if (n == -1)
 -    {
 -        *ierr = 98;
 -        return 0;
 -    }
 -    ilh           = (int *) (listentry(il, n));
 -    mh            = ilh[1];
 -    nh            = ilh[2];
 -    Block->nz     = (int) * ((double *)(&ilh[4]));
 -
 -    /* 7 - z */
 -    n            = MlistGetFieldNumber(il, "z");
 -    if (n == -1)
 -    {
 -        *ierr = 98;
 -        return 0;
 -    }
 -    ilh           = (int *) (listentry(il, n));
 -    mh            = ilh[1];
 -    nh            = ilh[2];
 -    Block->z      = NULL;
 -    if (mh*nh != 0)
 -    {
 -        if ((Block->z = (double *) MALLOC(Block->nz * sizeof(double))) == NULL)
 -        {
 -            *ierr = -39;
 -            return 0;
 -        }
 -        for (j = 0; j < Block->nz; j++)
 -        {
 -            Block->z[j] = *((double *)(&ilh[4]) + j);
 -        }
 -    }
 -
 -    /* 8 - noz */
 -    n            = MlistGetFieldNumber(il, "noz");
 -    if (n == -1)
 -    {
 -        FREE(Block->z);
 -        *ierr = 98;
 -        return 0;
 -    }
 -    ilh           = (int *) (listentry(il, n));
 -    mh            = ilh[1];
 -    nh            = ilh[2];
 -    Block->noz    = (int) * ((double *)(&ilh[4]));
 -
 -    /* 9 - ozsz */
 -    n            = MlistGetFieldNumber(il, "ozsz");
 -    if (n == -1)
 -    {
 -        FREE(Block->z);
 -        *ierr = 98;
 -        return 0;
 -    }
 -    ilh           = (int *) (listentry(il, n));
 -    mh            = ilh[1];
 -    nh            = ilh[2];
 -    Block->ozsz   = NULL;
 -    if (mh*nh != 0)
 -    {
 -        if ((Block->ozsz = (int *) MALLOC(2 * Block->noz * sizeof(int))) == NULL)
 -        {
 -            FREE(Block->z);
 -            *ierr = -39;
 -            return 0;
 -        }
 -    }
 -
 -    for (j = 0; j < 2 * Block->noz; j++)
 -    {
 -        Block->ozsz[j] = (int) * ((double *)(&ilh[4]) + j);
 -    }
 -
 -    /* 10 - oztyp */
 -    n            = MlistGetFieldNumber(il, "oztyp");
 -    if (n == -1)
 -    {
 -        FREE(Block->z);
 -        FREE(Block->ozsz);
 -        *ierr = 98;
 -        return 0;
 -    }
 -    ilh           = (int *) (listentry(il, n));
 -    mh            = ilh[1];
 -    nh            = ilh[2];
 -    Block->oztyp  = NULL;
 -    if (mh*nh != 0)
 -    {
 -        if ((Block->oztyp = (int *) MALLOC(Block->noz * sizeof(int))) == NULL)
 -        {
 -            FREE(Block->z);
 -            FREE(Block->ozsz);
 -            *ierr = -39;
 -            return 0;
 -        }
 -    }
 -    for (j = 0; j < Block->noz; j++)
 -    {
 -        Block->oztyp[j] = (int) * ((double *)(&ilh[4]) + j);
 -    }
 -
 -    /* 11 - oz */
 -    n            = MlistGetFieldNumber(il, "oz");
 -    if (n == -1)
 -    {
 -        FREE(Block->z);
 -        FREE(Block->ozsz);
 -        FREE(Block->oztyp);
 -        *ierr = 98;
 -        return 0;
 -    }
 -    ilh           = (int *) (listentry(il, n));
 -    mh            = ilh[1];
 -    nh            = ilh[2];
 -    Block->ozptr  = NULL;
 -    if (Block->noz != 0)
 -    {
 -        if ((Block->ozptr = (void **) MALLOC(Block->noz * sizeof(void *))) == NULL)
 -        {
 -            FREE(Block->z);
 -            FREE(Block->ozsz);
 -            FREE(Block->oztyp);
 -            *ierr = -39;
 -            return 0;
 -        }
 -
 -        for (i = 0; i < Block->noz; i++)
 -        {
 -            ilh2 = (int *) (listentry(ilh, i + 1));
 -            mh2  = ilh2[1];
 -            nh2  = ilh2[2];
 -            Block->ozptr[i] = NULL;
 -            switch (Block->oztyp[i])
 -            {
 -                case 10  :
 -                    if ((Block->ozptr[i] = (double *) MALLOC(mh2 * nh2 * sizeof(double))) == NULL)
 -                    {
 -                        FREE(Block->z);
 -                        FREE(Block->ozsz);
 -                        FREE(Block->oztyp);
 -                        for (j = 0; j < i; j++)
 -                        {
 -                            FREE(Block->ozptr[j]);
 -                        }
 -                        *ierr = -39;
 -                        return 0;
 -                    }
 -                    memcpy((double *)Block->ozptr[i], \
 -                           (double *)(&ilh2[4]), \
 -                           mh2 * nh2 * sizeof(double));
 -                    break;
 -
 -                case 11  :
 -                    if ((Block->ozptr[i] = (double *) MALLOC(2 * mh2 * nh2 * sizeof(double))) == NULL)
 -                    {
 -                        FREE(Block->z);
 -                        FREE(Block->ozsz);
 -                        FREE(Block->oztyp);
 -                        for (j = 0; j < i; j++)
 -                        {
 -                            FREE(Block->ozptr[j]);
 -                        }
 -                        *ierr = -39;
 -                        return 0;
 -                    }
 -                    memcpy((double *)Block->ozptr[i], \
 -                           (double *)(&ilh2[4]), \
 -                           2 * mh2 * nh2 * sizeof(double));
 -                    break;
 -
 -                case 84  :
 -                    if ((Block->ozptr[i] = (SCSINT32_COP *) MALLOC(mh2 * nh2 * sizeof(SCSINT32_COP))) == NULL)
 -                    {
 -                        FREE(Block->z);
 -                        FREE(Block->ozsz);
 -                        FREE(Block->oztyp);
 -                        for (j = 0; j < i; j++)
 -                        {
 -                            FREE(Block->ozptr[j]);
 -                        }
 -                        *ierr = -39;
 -                        return 0;
 -                    }
 -                    memcpy((SCSINT32_COP *)Block->ozptr[i], \
 -                           (SCSINT32_COP *)(&ilh2[4]), \
 -                           mh2 * nh2 * sizeof(SCSINT32_COP));
 -                    break;
 -
 -                case 82  :
 -                    if ((Block->ozptr[i] = (short *) MALLOC(mh2 * nh2 * sizeof(short))) == NULL)
 -                    {
 -                        FREE(Block->z);
 -                        FREE(Block->ozsz);
 -                        FREE(Block->oztyp);
 -                        for (j = 0; j < i; j++)
 -                        {
 -                            FREE(Block->ozptr[j]);
 -                        }
 -                        *ierr = -39;
 -                        return 0;
 -                    }
 -                    memcpy((short *)Block->ozptr[i], \
 -                           (short *)(&ilh2[4]), \
 -                           mh2 * nh2 * sizeof(short));
 -                    break;
 -
 -                case 81  :
 -                    if ((Block->ozptr[i] = (char *) MALLOC(mh2 * nh2 * sizeof(char))) == NULL)
 -                    {
 -                        FREE(Block->z);
 -                        FREE(Block->ozsz);
 -                        FREE(Block->oztyp);
 -                        for (j = 0; j < i; j++)
 -                        {
 -                            FREE(Block->ozptr[j]);
 -                        }
 -                        *ierr = -39;
 -                        return 0;
 -                    }
 -                    memcpy((char *)Block->ozptr[i], \
 -                           (char *)(&ilh2[4]), \
 -                           mh2 * nh2 * sizeof(char));
 -                    break;
 -
 -                case 814 :
 -                    if ((Block->ozptr[i] = (SCSUINT32_COP *) MALLOC(mh2 * nh2 * sizeof(SCSUINT32_COP))) == NULL)
 -                    {
 -                        FREE(Block->z);
 -                        FREE(Block->ozsz);
 -                        FREE(Block->oztyp);
 -                        for (j = 0; j < i; j++)
 -                        {
 -                            FREE(Block->ozptr[j]);
 -                        }
 -                        *ierr = -39;
 -                        return 0;
 -                    }
 -                    memcpy((SCSUINT32_COP *)Block->ozptr[i], \
 -                           (SCSUINT32_COP *)(&ilh2[4]), \
 -                           mh2 * nh2 * sizeof(SCSUINT32_COP));
 -                    break;
 -
 -                case 812 :
 -                    if ((Block->ozptr[i] = (unsigned short *) MALLOC(mh2 * nh2 * sizeof(unsigned short))) == NULL)
 -                    {
 -                        FREE(Block->z);
 -                        FREE(Block->ozsz);
 -                        FREE(Block->oztyp);
 -                        for (j = 0; j < i; j++)
 -                        {
 -                            FREE(Block->ozptr[j]);
 -                        }
 -                        *ierr = -39;
 -                        return 0;
 -                    }
 -                    memcpy((unsigned short *)Block->ozptr[i], \
 -                           (unsigned short *)(&ilh2[4]), \
 -                           mh2 * nh2 * sizeof(unsigned short));
 -                    break;
 -
 -                case 811 :
 -                    if ((Block->ozptr[i] = (unsigned char *) MALLOC(mh2 * nh2 * sizeof(unsigned char))) == NULL)
 -                    {
 -                        FREE(Block->z);
 -                        FREE(Block->ozsz);
 -                        FREE(Block->oztyp);
 -                        for (j = 0; j < i; j++)
 -                        {
 -                            FREE(Block->ozptr[j]);
 -                        }
 -                        *ierr = -39;
 -                        return 0;
 -                    }
 -                    memcpy((unsigned char *)Block->ozptr[i], \
 -                           (unsigned char *)(&ilh2[4]), \
 -                           mh2 * nh2 * sizeof(unsigned char));
 -                    break;
 -            }
 -        }
 -    }
 -
 -    /* 12 - nx */
 -    n            = MlistGetFieldNumber(il, "nx");
 -    if (n == -1)
 -    {
 -        FREE(Block->z);
 -        FREE(Block->ozsz);
 -        FREE(Block->oztyp);
 -        for (j = 0; j < Block->noz; j++)
 -        {
 -            FREE(Block->ozptr[j]);
 -        }
 -        FREE(Block->ozptr);
 -        *ierr = 98;
 -        return 0;
 -    }
 -    ilh           = (int *) (listentry(il, n));
 -    mh            = ilh[1];
 -    nh            = ilh[2];
 -    Block->nx     = (int) * ((double *)(&ilh[4]));
 -
 -    /* 13 - x */
 -    n            = MlistGetFieldNumber(il, "x");
 -    if (n == -1)
 -    {
 -        FREE(Block->z);
 -        FREE(Block->ozsz);
 -        FREE(Block->oztyp);
 -        for (j = 0; j < Block->noz; j++)
 -        {
 -            FREE(Block->ozptr[j]);
 -        }
 -        FREE(Block->ozptr);
 -        *ierr = 98;
 -        return 0;
 -    }
 -    ilh           = (int *) (listentry(il, n));
 -    mh            = ilh[1];
 -    nh            = ilh[2];
 -    Block->x      = NULL;
 -    if (mh*nh != 0)
 -    {
 -        if ((Block->x = (double *) MALLOC((mh * nh) * sizeof(double))) == NULL)
 -        {
 -            FREE(Block->z);
 -            FREE(Block->ozsz);
 -            FREE(Block->oztyp);
 -            for (j = 0; j < Block->noz; j++)
 -            {
 -                FREE(Block->ozptr[j]);
 -            }
 -            FREE(Block->ozptr);
 -            *ierr = -39;
 -            return 0;
 -        }
 -    }
 -    for (j = 0; j < (mh * nh); j++)
 -    {
 -        Block->x[j] = *((double *)(&ilh[4]) + j);
 -    }
 -
 -    /* 14 - xd */
 -    n            = MlistGetFieldNumber(il, "xd");
 -    if (n == -1)
 -    {
 -        FREE(Block->z);
 -        FREE(Block->ozsz);
 -        FREE(Block->oztyp);
 -        for (j = 0; j < Block->noz; j++)
 -        {
 -            FREE(Block->ozptr[j]);
 -        }
 -        FREE(Block->ozptr);
 -        FREE(Block->x);
 -        *ierr = 98;
 -        return 0;
 -    }
 -    ilh           = (int *) (listentry(il, n));
 -    mh            = ilh[1];
 -    nh            = ilh[2];
 -    Block->xd     = NULL;
 -    if (mh*nh != 0)
 -    {
 -        if ((Block->xd = (double *) MALLOC((mh * nh) * sizeof(double))) == NULL)
 -        {
 -            FREE(Block->z);
 -            FREE(Block->ozsz);
 -            FREE(Block->oztyp);
 -            for (j = 0; j < Block->noz; j++)
 -            {
 -                FREE(Block->ozptr[j]);
 -            }
 -            FREE(Block->ozptr);
 -            FREE(Block->x);
 -            *ierr = -39;
 -            return 0;
 -        }
 -    }
 -    for (j = 0; j < (mh * nh); j++)
 -    {
 -        Block->xd[j] = *((double *)(&ilh[4]) + j);
 -    }
 -
 -    /* 15 - res */
 -    n            = MlistGetFieldNumber(il, "res");
 -    if (n == -1)
 -    {
 -        FREE(Block->z);
 -        FREE(Block->ozsz);
 -        FREE(Block->oztyp);
 -        for (j = 0; j < Block->noz; j++)
 -        {
 -            FREE(Block->ozptr[j]);
 -        }
 -        FREE(Block->ozptr);
 -        FREE(Block->x);
 -        FREE(Block->xd);
 -        *ierr = 98;
 -        return 0;
 -    }
 -    ilh           = (int *) (listentry(il, n));
 -    mh            = ilh[1];
 -    nh            = ilh[2];
 -    Block->res    = NULL;
 -    if (mh*nh != 0)
 -    {
 -        if ((Block->res = (double *) MALLOC((mh * nh) * sizeof(double))) == NULL)
 -        {
 -            FREE(Block->z);
 -            FREE(Block->ozsz);
 -            FREE(Block->oztyp);
 -            for (j = 0; j < Block->noz; j++)
 -            {
 -                FREE(Block->ozptr[j]);
 -            }
 -            FREE(Block->ozptr);
 -            FREE(Block->x);
 -            FREE(Block->xd);
 -            *ierr = -39;
 -            return 0;
 -        }
 -    }
 -
 -    for (j = 0; j < (mh * nh); j++)
 -    {
 -        Block->res[j] = *((double *)(&ilh[4]) + j);
 -    }
 -
 -    /* 16 - nin */
 -    n            = MlistGetFieldNumber(il, "nin");
 -    if (n == -1)
 -    {
 -        FREE(Block->z);
 -        FREE(Block->ozsz);
 -        FREE(Block->oztyp);
 -        for (j = 0; j < Block->noz; j++)
 -        {
 -            FREE(Block->ozptr[j]);
 -        }
 -        FREE(Block->ozptr);
 -        FREE(Block->x);
 -        FREE(Block->xd);
 -        FREE(Block->res);
 -        *ierr = 98;
 -        return 0;
 -    }
 -    ilh           = (int *) (listentry(il, n));
 -    mh            = ilh[1];
 -    nh            = ilh[2];
 -    Block->nin    = (int) * ((double *)(&ilh[4]));
 -
 -    /* 17 - insz */
 -    n            = MlistGetFieldNumber(il, "insz");
 -    if (n == -1)
 -    {
 -        FREE(Block->z);
 -        FREE(Block->ozsz);
 -        FREE(Block->oztyp);
 -        for (j = 0; j < Block->noz; j++)
 -        {
 -            FREE(Block->ozptr[j]);
 -        }
 -        FREE(Block->ozptr);
 -        FREE(Block->x);
 -        FREE(Block->xd);
 -        FREE(Block->res);
 -        *ierr = 98;
 -        return 0;
 -    }
 -    ilh           = (int *) (listentry(il, n));
 -    mh            = ilh[1];
 -    nh            = ilh[2];
 -    Block->insz   = NULL;
 -    if (mh*nh != 0)
 -    {
 -        if ((Block->insz = (int *) MALLOC(3 * Block->nin * sizeof(int))) == NULL)
 -        {
 -            FREE(Block->z);
 -            FREE(Block->ozsz);
 -            FREE(Block->oztyp);
 -            for (j = 0; j < Block->noz; j++)
 -            {
 -                FREE(Block->ozptr[j]);
 -            }
 -            FREE(Block->ozptr);
 -            FREE(Block->x);
 -            FREE(Block->xd);
 -            FREE(Block->res);
 -            *ierr = -39;
 -            return 0;
 -        }
 -    }
 -    for (j = 0; j < 3 * Block->nin; j++)
 -    {
 -        Block->insz[j] = (int) * ((double *)(&ilh[4]) + j);
 -    }
 -
 -    /* 18 - inptr */
 -    n            = MlistGetFieldNumber(il, "inptr");
 -    if (n == -1)
 -    {
 -        FREE(Block->z);
 -        FREE(Block->ozsz);
 -        FREE(Block->oztyp);
 -        for (j = 0; j < Block->noz; j++)
 -        {
 -            FREE(Block->ozptr[j]);
 -        }
 -        FREE(Block->ozptr);
 -        FREE(Block->x);
 -        FREE(Block->xd);
 -        FREE(Block->res);
 -        FREE(Block->insz);
 -        *ierr = 98;
 -        return 0;
 -    }
 -    ilh           = (int *) (listentry(il, n));
 -    mh            = ilh[1];
 -    nh            = ilh[2];
 -    Block->inptr  = NULL;
 -    if (Block->nin != 0)
 -    {
 -        if ((Block->inptr = (void **) MALLOC(Block->nin * sizeof(void *))) == NULL)
 -        {
 -            FREE(Block->z);
 -            FREE(Block->ozsz);
 -            FREE(Block->oztyp);
 -            for (j = 0; j < Block->noz; j++)
 -            {
 -                FREE(Block->ozptr[j]);
 -            }
 -            FREE(Block->ozptr);
 -            FREE(Block->x);
 -            FREE(Block->xd);
 -            FREE(Block->res);
 -            FREE(Block->insz);
 -            *ierr = -39;
 -            return 0;
 -        }
 -        for (i = 0; i < Block->nin; i++)
 -        {
 -            ilh2 = (int *) (listentry(ilh, i + 1));
 -            mh2  = ilh2[1];
 -            nh2  = ilh2[2];
 -            Block->inptr[i] = NULL;
 -            switch (Block->insz[2 * Block->nin + i])
 -            {
 -                case 10  :
 -                    if ((Block->inptr[i] = (double *) MALLOC(mh2 * nh2 * sizeof(double))) == NULL)
 -                    {
 -                        FREE(Block->z);
 -                        FREE(Block->ozsz);
 -                        FREE(Block->oztyp);
 -                        for (j = 0; j < Block->noz; j++)
 -                        {
 -                            FREE(Block->ozptr[j]);
 -                        }
 -                        FREE(Block->ozptr);
 -                        FREE(Block->x);
 -                        FREE(Block->xd);
 -                        FREE(Block->res);
 -                        FREE(Block->insz);
 -                        for (j = 0; j < i; j++)
 -                        {
 -                            FREE(Block->inptr[j]);
 -                        }
 -                        *ierr = -39;
 -                        return 0;
 -                    }
 -                    memcpy((double *)Block->inptr[i], \
 -                           (double *)(&ilh2[4]), \
 -                           mh2 * nh2 * sizeof(double));
 -                    break;
 -
 -                case 11  :
 -                    if ((Block->inptr[i] = (double *) MALLOC(2 * mh2 * nh2 * sizeof(double))) == NULL)
 -                    {
 -                        FREE(Block->z);
 -                        FREE(Block->ozsz);
 -                        FREE(Block->oztyp);
 -                        for (j = 0; j < Block->noz; j++)
 -                        {
 -                            FREE(Block->ozptr[j]);
 -                        }
 -                        FREE(Block->ozptr);
 -                        FREE(Block->x);
 -                        FREE(Block->xd);
 -                        FREE(Block->res);
 -                        FREE(Block->insz);
 -                        for (j = 0; j < i; j++)
 -                        {
 -                            FREE(Block->inptr[j]);
 -                        }
 -                        *ierr = -39;
 -                        return 0;
 -                    }
 -                    memcpy((double *)Block->inptr[i], \
 -                           (double *)(&ilh2[4]), \
 -                           2 * mh2 * nh2 * sizeof(double));
 -                    break;
 -
 -                case 84  :
 -                    if ((Block->inptr[i] = (SCSINT32_COP *) MALLOC(mh2 * nh2 * sizeof(SCSINT32_COP))) == NULL)
 -                    {
 -                        FREE(Block->z);
 -                        FREE(Block->ozsz);
 -                        FREE(Block->oztyp);
 -                        for (j = 0; j < Block->noz; j++)
 -                        {
 -                            FREE(Block->ozptr[j]);
 -                        }
 -                        FREE(Block->ozptr);
 -                        FREE(Block->x);
 -                        FREE(Block->xd);
 -                        FREE(Block->res);
 -                        FREE(Block->insz);
 -                        for (j = 0; j < i; j++)
 -                        {
 -                            FREE(Block->inptr[j]);
 -                        }
 -                        *ierr = -39;
 -                        return 0;
 -                    }
 -                    memcpy((SCSINT32_COP *)Block->inptr[i], \
 -                           (SCSINT32_COP *)(&ilh2[4]), \
 -                           mh2 * nh2 * sizeof(SCSINT32_COP));
 -                    break;
 -
 -                case 82  :
 -                    if ((Block->inptr[i] = (short *) MALLOC(mh2 * nh2 * sizeof(short))) == NULL)
 -                    {
 -                        FREE(Block->z);
 -                        FREE(Block->ozsz);
 -                        FREE(Block->oztyp);
 -                        for (j = 0; j < Block->noz; j++)
 -                        {
 -                            FREE(Block->ozptr[j]);
 -                        }
 -                        FREE(Block->ozptr);
 -                        FREE(Block->x);
 -                        FREE(Block->xd);
 -                        FREE(Block->res);
 -                        FREE(Block->insz);
 -                        for (j = 0; j < i; j++)
 -                        {
 -                            FREE(Block->inptr[j]);
 -                        }
 -                        *ierr = -39;
 -                        return 0;
 -                    }
 -                    memcpy((short *)Block->inptr[i], \
 -                           (short *)(&ilh2[4]), \
 -                           mh2 * nh2 * sizeof(short));
 -                    break;
 -
 -                case 81  :
 -                    if ((Block->inptr[i] = (char *) MALLOC(mh2 * nh2 * sizeof(char))) == NULL)
 -                    {
 -                        FREE(Block->z);
 -                        FREE(Block->ozsz);
 -                        FREE(Block->oztyp);
 -                        for (j = 0; j < Block->noz; j++)
 -                        {
 -                            FREE(Block->ozptr[j]);
 -                        }
 -                        FREE(Block->ozptr);
 -                        FREE(Block->x);
 -                        FREE(Block->xd);
 -                        FREE(Block->res);
 -                        FREE(Block->insz);
 -                        for (j = 0; j < i; j++)
 -                        {
 -                            FREE(Block->inptr[j]);
 -                        }
 -                        *ierr = -39;
 -                        return 0;
 -                    }
 -                    memcpy((char *)Block->inptr[i], \
 -                           (char *)(&ilh2[4]), \
 -                           mh2 * nh2 * sizeof(char));
 -                    break;
 -
 -                case 814 :
 -                    if ((Block->inptr[i] = (SCSUINT32_COP *) MALLOC(mh2 * nh2 * sizeof(SCSUINT32_COP))) == NULL)
 -                    {
 -                        FREE(Block->z);
 -                        FREE(Block->ozsz);
 -                        FREE(Block->oztyp);
 -                        for (j = 0; j < Block->noz; j++)
 -                        {
 -                            FREE(Block->ozptr[j]);
 -                        }
 -                        FREE(Block->ozptr);
 -                        FREE(Block->x);
 -                        FREE(Block->xd);
 -                        FREE(Block->res);
 -                        FREE(Block->insz);
 -                        for (j = 0; j < i; j++)
 -                        {
 -                            FREE(Block->inptr[j]);
 -                        }
 -                        *ierr = -39;
 -                        return 0;
 -                    }
 -                    memcpy((SCSUINT32_COP *)Block->inptr[i], \
 -                           (SCSUINT32_COP *)(&ilh2[4]), \
 -                           mh2 * nh2 * sizeof(SCSUINT32_COP));
 -                    break;
 -
 -                case 812 :
 -                    if ((Block->inptr[i] = (unsigned short *) MALLOC(mh2 * nh2 * sizeof(unsigned short))) == NULL)
 -                    {
 -                        FREE(Block->z);
 -                        FREE(Block->ozsz);
 -                        FREE(Block->oztyp);
 -                        for (j = 0; j < Block->noz; j++)
 -                        {
 -                            FREE(Block->ozptr[j]);
 -                        }
 -                        FREE(Block->ozptr);
 -                        FREE(Block->x);
 -                        FREE(Block->xd);
 -                        FREE(Block->res);
 -                        FREE(Block->insz);
 -                        for (j = 0; j < i; j++)
 -                        {
 -                            FREE(Block->inptr[j]);
 -                        }
 -                        *ierr = -39;
 -                        return 0;
 -                    }
 -                    memcpy((unsigned short *)Block->inptr[i], \
 -                           (unsigned short *)(&ilh2[4]), \
 -                           mh2 * nh2 * sizeof(unsigned short));
 -                    break;
 -
 -                case 811 :
 -                    if ((Block->inptr[i] = (unsigned char *) MALLOC(mh2 * nh2 * sizeof(unsigned char))) == NULL)
 -                    {
 -                        FREE(Block->z);
 -                        FREE(Block->ozsz);
 -                        FREE(Block->oztyp);
 -                        for (j = 0; j < Block->noz; j++)
 -                        {
 -                            FREE(Block->ozptr[j]);
 -                        }
 -                        FREE(Block->ozptr);
 -                        FREE(Block->x);
 -                        FREE(Block->xd);
 -                        FREE(Block->res);
 -                        FREE(Block->insz);
 -                        for (j = 0; j < i; j++)
 -                        {
 -                            FREE(Block->inptr[j]);
 -                        }
 -                        *ierr = -39;
 -                        return 0;
 -                    }
 -                    memcpy((unsigned char *)Block->inptr[i], \
 -                           (unsigned char *)(&ilh2[4]), \
 -                           mh2 * nh2 * sizeof(unsigned char));
 -                    break;
 -            }
 -        }
 -    }
 -
 -    /* 19 - nout */
 -    n            = MlistGetFieldNumber(il, "nout");
 -    if (n == -1)
 -    {
 -        FREE(Block->z);
 -        FREE(Block->ozsz);
 -        FREE(Block->oztyp);
 -        for (j = 0; j < Block->noz; j++)
 -        {
 -            FREE(Block->ozptr[j]);
 -        }
 -        FREE(Block->ozptr);
 -        FREE(Block->x);
 -        FREE(Block->xd);
 -        FREE(Block->res);
 -        FREE(Block->insz);
 -        for (j = 0; j < Block->nin; j++)
 -        {
 -            FREE(Block->inptr[j]);
 -        }
 -        FREE(Block->inptr);
 -        *ierr = 98;
 -        return 0;
 -    }
 -    ilh           = (int *) (listentry(il, n));
 -    mh            = ilh[1];
 -    nh            = ilh[2];
 -    Block->nout   = (int) * ((double *)(&ilh[4]));
 -
 -    /* 20 - outsz */
 -    n            = MlistGetFieldNumber(il, "outsz");
 -    if (n == -1)
 -    {
 -        FREE(Block->z);
 -        FREE(Block->ozsz);
 -        FREE(Block->oztyp);
 -        for (j = 0; j < Block->noz; j++)
 -        {
 -            FREE(Block->ozptr[j]);
 -        }
 -        FREE(Block->ozptr);
 -        FREE(Block->x);
 -        FREE(Block->xd);
 -        FREE(Block->res);
 -        FREE(Block->insz);
 -        for (j = 0; j < Block->nin; j++)
 -        {
 -            FREE(Block->inptr[j]);
 -        }
 -        FREE(Block->inptr);
 -        *ierr = 98;
 -        return 0;
 -    }
 -
 -    ilh           = (int *) (listentry(il, n));
 -    mh            = ilh[1];
 -    nh            = ilh[2];
 -    Block->outsz   = NULL;
 -    if (mh*nh != 0)
 -    {
 -        if ((Block->outsz = (int *) MALLOC(3 * Block->nout * sizeof(int))) == NULL)
 -        {
 -            FREE(Block->z);
 -            FREE(Block->ozsz);
 -            FREE(Block->oztyp);
 -            for (j = 0; j < Block->noz; j++)
 -            {
 -                FREE(Block->ozptr[j]);
 -            }
 -            FREE(Block->ozptr);
 -            FREE(Block->x);
 -            FREE(Block->xd);
 -            FREE(Block->res);
 -            FREE(Block->insz);
 -            for (j = 0; j < Block->nin; j++)
 -            {
 -                FREE(Block->inptr[j]);
 -            }
 -            FREE(Block->inptr);
 -            *ierr = -39;
 -            return 0;
 -        }
 -    }
 -
 -    for (j = 0; j < 3 * Block->nout; j++)
 -    {
 -        Block->outsz[j] = (int) * ((double *)(&ilh[4]) + j);
 -    }
 -
 -    /* 21 - outptr */
 -    n            = MlistGetFieldNumber(il, "outptr");
 -    if (n == -1)
 -    {
 -        FREE(Block->z);
 -        FREE(Block->ozsz);
 -        FREE(Block->oztyp);
 -        for (j = 0; j < Block->noz; j++)
 -        {
 -            FREE(Block->ozptr[j]);
 -        }
 -        FREE(Block->ozptr);
 -        FREE(Block->x);
 -        FREE(Block->xd);
 -        FREE(Block->res);
 -        FREE(Block->insz);
 -        for (j = 0; j < Block->nin; j++)
 -        {
 -            FREE(Block->inptr[j]);
 -        }
 -        FREE(Block->inptr);
 -        FREE(Block->outsz);
 -        *ierr = 98;
 -        return 0;
 -    }
 -    ilh           = (int *) (listentry(il, n));
 -    mh            = ilh[1];
 -    nh            = ilh[2];
 -    Block->outptr = NULL;
 -    if (Block->nout != 0)
 -    {
 -        if ((Block->outptr = (void **) MALLOC(Block->nout * sizeof(void *))) == NULL)
 -        {
 -            FREE(Block->z);
 -            FREE(Block->ozsz);
 -            FREE(Block->oztyp);
 -            for (j = 0; j < Block->noz; j++)
 -            {
 -                FREE(Block->ozptr[j]);
 -            }
 -            FREE(Block->ozptr);
 -            FREE(Block->x);
 -            FREE(Block->xd);
 -            FREE(Block->res);
 -            FREE(Block->insz);
 -            for (j = 0; j < Block->nin; j++)
 -            {
 -                FREE(Block->inptr[j]);
 -            }
 -            FREE(Block->inptr);
 -            FREE(Block->outsz);
 -            *ierr = -39;
 -            return 0;
 -        }
 -        for (i = 0; i < Block->nout; i++)
 -        {
 -            ilh2 = (int *) (listentry(ilh, i + 1));
 -            mh2  = ilh2[1];
 -            nh2  = ilh2[2];
 -            Block->outptr[i] = NULL;
 -            switch (Block->outsz[2 * Block->nout + i])
 -            {
 -                case 10  :
 -                    if ((Block->outptr[i] = (double *) MALLOC(mh2 * nh2 * sizeof(double))) == NULL)
 -                    {
 -                        FREE(Block->z);
 -                        FREE(Block->ozsz);
 -                        FREE(Block->oztyp);
 -                        for (j = 0; j < Block->noz; j++)
 -                        {
 -                            FREE(Block->ozptr[j]);
 -                        }
 -                        FREE(Block->ozptr);
 -                        FREE(Block->x);
 -                        FREE(Block->xd);
 -                        FREE(Block->res);
 -                        FREE(Block->insz);
 -                        for (j = 0; j < Block->nin; j++)
 -                        {
 -                            FREE(Block->inptr[j]);
 -                        }
 -                        FREE(Block->inptr);
 -                        FREE(Block->outsz);
 -                        for (j = 0; j < i; j++)
 -                        {
 -                            FREE(Block->outptr[j]);
 -                        }
 -                        *ierr = -39;
 -                        return 0;
 -                    }
 -                    memcpy((double *)Block->outptr[i], \
 -                           (double *)(&ilh2[4]), \
 -                           mh2 * nh2 * sizeof(double));
 -                    break;
 -
 -                case 11  :
 -                    if ((Block->outptr[i] = (double *) MALLOC(2 * mh2 * nh2 * sizeof(double))) == NULL)
 -                    {
 -                        FREE(Block->z);
 -                        FREE(Block->ozsz);
 -                        FREE(Block->oztyp);
 -                        for (j = 0; j < Block->noz; j++)
 -                        {
 -                            FREE(Block->ozptr[j]);
 -                        }
 -                        FREE(Block->ozptr);
 -                        FREE(Block->x);
 -                        FREE(Block->xd);
 -                        FREE(Block->res);
 -                        FREE(Block->insz);
 -                        for (j = 0; j < Block->nin; j++)
 -                        {
 -                            FREE(Block->inptr[j]);
 -                        }
 -                        FREE(Block->inptr);
 -                        FREE(Block->outsz);
 -                        for (j = 0; j < i; j++)
 -                        {
 -                            FREE(Block->outptr[j]);
 -                        }
 -                        *ierr = -39;
 -                        return 0;
 -                    }
 -                    memcpy((double *)Block->outptr[i], \
 -                           (double *)(&ilh2[4]), \
 -                           2 * mh2 * nh2 * sizeof(double));
 -                    break;
 -
 -                case 84  :
 -                    if ((Block->outptr[i] = (SCSINT32_COP *) MALLOC(mh2 * nh2 * sizeof(SCSINT32_COP))) == NULL)
 -                    {
 -                        FREE(Block->z);
 -                        FREE(Block->ozsz);
 -                        FREE(Block->oztyp);
 -                        for (j = 0; j < Block->noz; j++)
 -                        {
 -                            FREE(Block->ozptr[j]);
 -                        }
 -                        FREE(Block->ozptr);
 -                        FREE(Block->x);
 -                        FREE(Block->xd);
 -                        FREE(Block->res);
 -                        FREE(Block->insz);
 -                        for (j = 0; j < Block->nin; j++)
 -                        {
 -                            FREE(Block->inptr[j]);
 -                        }
 -                        FREE(Block->inptr);
 -                        FREE(Block->outsz);
 -                        for (j = 0; j < i; j++)
 -                        {
 -                            FREE(Block->outptr[j]);
 -                        }
 -                        *ierr = -39;
 -                        return 0;
 -                    }
 -                    memcpy((SCSINT32_COP *)Block->outptr[i], \
 -                           (SCSINT32_COP *)(&ilh2[4]), \
 -                           mh2 * nh2 * sizeof(SCSINT32_COP));
 -                    break;
 -
 -                case 82  :
 -                    if ((Block->outptr[i] = (short *) MALLOC(mh2 * nh2 * sizeof(short))) == NULL)
 -                    {
 -                        FREE(Block->z);
 -                        FREE(Block->ozsz);
 -                        FREE(Block->oztyp);
 -                        for (j = 0; j < Block->noz; j++)
 -                        {
 -                            FREE(Block->ozptr[j]);
 -                        }
 -                        FREE(Block->ozptr);
 -                        FREE(Block->x);
 -                        FREE(Block->xd);
 -                        FREE(Block->res);
 -                        FREE(Block->insz);
 -                        for (j = 0; j < Block->nin; j++)
 -                        {
 -                            FREE(Block->inptr[j]);
 -                        }
 -                        FREE(Block->inptr);
 -                        FREE(Block->outsz);
 -                        for (j = 0; j < i; j++)
 -                        {
 -                            FREE(Block->outptr[j]);
 -                        }
 -                        *ierr = -39;
 -                        return 0;
 -                    }
 -                    memcpy((short *)Block->outptr[i], \
 -                           (short *)(&ilh2[4]), \
 -                           mh2 * nh2 * sizeof(short));
 -                    break;
 -
 -                case 81  :
 -                    if ((Block->outptr[i] = (char *) MALLOC(mh2 * nh2 * sizeof(char))) == NULL)
 -                    {
 -                        FREE(Block->z);
 -                        FREE(Block->ozsz);
 -                        FREE(Block->oztyp);
 -                        for (j = 0; j < Block->noz; j++)
 -                        {
 -                            FREE(Block->ozptr[j]);
 -                        }
 -                        FREE(Block->ozptr);
 -                        FREE(Block->x);
 -                        FREE(Block->xd);
 -                        FREE(Block->res);
 -                        FREE(Block->insz);
 -                        for (j = 0; j < Block->nin; j++)
 -                        {
 -                            FREE(Block->inptr[j]);
 -                        }
 -                        FREE(Block->inptr);
 -                        FREE(Block->outsz);
 -                        for (j = 0; j < i; j++)
 -                        {
 -                            FREE(Block->outptr[j]);
 -                        }
 -                        *ierr = -39;
 -                        return 0;
 -                    }
 -                    memcpy((char *)Block->outptr[i], \
 -                           (char *)(&ilh2[4]), \
 -                           mh2 * nh2 * sizeof(char));
 -                    break;
 -
 -                case 814 :
 -                    if ((Block->outptr[i] = (SCSUINT32_COP *) MALLOC(mh2 * nh2 * sizeof(SCSUINT32_COP))) == NULL)
 -                    {
 -                        FREE(Block->z);
 -                        FREE(Block->ozsz);
 -                        FREE(Block->oztyp);
 -                        for (j = 0; j < Block->noz; j++)
 -                        {
 -                            FREE(Block->ozptr[j]);
 -                        }
 -                        FREE(Block->ozptr);
 -                        FREE(Block->x);
 -                        FREE(Block->xd);
 -                        FREE(Block->res);
 -                        FREE(Block->insz);
 -                        for (j = 0; j < Block->nin; j++)
 -                        {
 -                            FREE(Block->inptr[j]);
 -                        }
 -                        FREE(Block->inptr);
 -                        FREE(Block->outsz);
 -                        for (j = 0; j < i; j++)
 -                        {
 -                            FREE(Block->outptr[j]);
 -                        }
 -                        *ierr = -39;
 -                        return 0;
 -                    }
 -                    memcpy((SCSUINT32_COP *)Block->outptr[i], \
 -                           (SCSUINT32_COP *)(&ilh2[4]), \
 -                           mh2 * nh2 * sizeof(SCSUINT32_COP));
 -                    break;
 -
 -                case 812 :
 -                    if ((Block->outptr[i] = (unsigned short *) MALLOC(mh2 * nh2 * sizeof(unsigned short))) == NULL)
 -                    {
 -                        FREE(Block->z);
 -                        FREE(Block->ozsz);
 -                        FREE(Block->oztyp);
 -                        for (j = 0; j < Block->noz; j++)
 -                        {
 -                            FREE(Block->ozptr[j]);
 -                        }
 -                        FREE(Block->ozptr);
 -                        FREE(Block->x);
 -                        FREE(Block->xd);
 -                        FREE(Block->res);
 -                        FREE(Block->insz);
 -                        for (j = 0; j < Block->nin; j++)
 -                        {
 -                            FREE(Block->inptr[j]);
 -                        }
 -                        FREE(Block->inptr);
 -                        FREE(Block->outsz);
 -                        for (j = 0; j < i; j++)
 -                        {
 -                            FREE(Block->outptr[j]);
 -                        }
 -                        *ierr = -39;
 -                        return 0;
 -                    }
 -                    memcpy((unsigned short *)Block->outptr[i], \
 -                           (unsigned short *)(&ilh2[4]), \
 -                           mh2 * nh2 * sizeof(unsigned short));
 -                    break;
 -
 -                case 811 :
 -                    if ((Block->outptr[i] = (unsigned char *) MALLOC(mh2 * nh2 * sizeof(unsigned char))) == NULL)
 -                    {
 -                        FREE(Block->z);
 -                        FREE(Block->ozsz);
 -                        FREE(Block->oztyp);
 -                        for (j = 0; j < Block->noz; j++)
 -                        {
 -                            FREE(Block->ozptr[j]);
 -                        }
 -                        FREE(Block->ozptr);
 -                        FREE(Block->x);
 -                        FREE(Block->xd);
 -                        FREE(Block->res);
 -                        FREE(Block->insz);
 -                        for (j = 0; j < Block->nin; j++)
 -                        {
 -                            FREE(Block->inptr[j]);
 -                        }
 -                        FREE(Block->inptr);
 -                        FREE(Block->outsz);
 -                        for (j = 0; j < i; j++)
 -                        {
 -                            FREE(Block->outptr[j]);
 -                        }
 -                        *ierr = -39;
 -                        return 0;
 -                    }
 -                    memcpy((unsigned char *)Block->outptr[i], \
 -                           (unsigned char *)(&ilh2[4]),&nbs