0022786: 64bit issue in AdvApp2Var
authorRoman Lygin <mail@mail.com>
Tue, 27 Mar 2012 16:04:46 +0000 (20:04 +0400)
committerbugmaster <bugmaster@opencascade.com>
Thu, 29 Mar 2012 15:19:37 +0000 (19:19 +0400)
src/AdvApp2Var/AdvApp2Var_ApproxF2var.cxx
src/AdvApp2Var/AdvApp2Var_MathBase.cxx
src/AdvApp2Var/AdvApp2Var_MathBase.hxx
src/AdvApp2Var/AdvApp2Var_SysBase.cxx
src/AdvApp2Var/AdvApp2Var_SysBase.hxx

index fc1cb11..8d1e0e3 100755 (executable)
@@ -798,7 +798,7 @@ int mma1fdi_(integer *ndimen,
 /* ---------------------- Legendre polynom of degree NBROOT ------------------- 
 */
 
-    foncnp.Evaluate (ndimen,
+    (*const_cast <AdvApp2Var_EvaluatorFunc2Var*> (&foncnp)).Evaluate (ndimen, 
              &uvfonc[3], 
              &uvfonc[5], 
              isofav, 
@@ -870,8 +870,9 @@ int mma1fdi_(integer *ndimen,
            bid1 = (uvfonc[6] - uvfonc[5]) / 2.;
            i__1 = *iordre;
            for (iderv = 1; iderv <= i__1; ++iderv) {
-               foncnp.Evaluate (ndimen, &uvfonc[3], &uvfonc[5], isofav, tconst,
-                       &nbp, ttable, &ideru, &iderv, &contr1[(iderv + 1) * 
+               (*const_cast <AdvApp2Var_EvaluatorFunc2Var*> (&foncnp)).Evaluate (
+            ndimen, &uvfonc[3], &uvfonc[5], isofav, tconst, &
+                       nbp, ttable, &ideru, &iderv, &contr1[(iderv + 1) * 
                        contr1_dim1 + 1], iercod);
                if (*iercod > 0) {
                    goto L9999;
@@ -880,8 +881,9 @@ int mma1fdi_(integer *ndimen,
            }
            i__1 = *iordre;
            for (iderv = 1; iderv <= i__1; ++iderv) {
-               foncnp.Evaluate (ndimen, &uvfonc[3], &uvfonc[5], isofav, tconst,
-                       &nbp, &ttable[*nbroot + 1], &ideru, &iderv, &contr2[(
+               (*const_cast <AdvApp2Var_EvaluatorFunc2Var*> (&foncnp)).Evaluate (
+            ndimen, &uvfonc[3], &uvfonc[5], isofav, tconst, &
+                       nbp, &ttable[*nbroot + 1], &ideru, &iderv, &contr2[(
                        iderv + 1) * contr2_dim1 + 1], iercod);
                if (*iercod > 0) {
                    goto L9999;
@@ -894,8 +896,9 @@ int mma1fdi_(integer *ndimen,
            bid1 = (uvfonc[4] - uvfonc[3]) / 2.;
            i__1 = *iordre;
            for (ideru = 1; ideru <= i__1; ++ideru) {
-               foncnp.Evaluate (ndimen, &uvfonc[3], &uvfonc[5], isofav, tconst,
-                       &nbp, ttable, &ideru, &iderv, &contr1[(ideru + 1) * 
+               (*const_cast <AdvApp2Var_EvaluatorFunc2Var*> (&foncnp)).Evaluate (
+            ndimen, &uvfonc[3], &uvfonc[5], isofav, tconst, &
+                       nbp, ttable, &ideru, &iderv, &contr1[(ideru + 1) * 
                        contr1_dim1 + 1], iercod);
                if (*iercod > 0) {
                    goto L9999;
@@ -904,8 +907,9 @@ int mma1fdi_(integer *ndimen,
            }
            i__1 = *iordre;
            for (ideru = 1; ideru <= i__1; ++ideru) {
-               foncnp.Evaluate (ndimen, &uvfonc[3], &uvfonc[5], isofav, tconst,
-                       &nbp, &ttable[*nbroot + 1], &ideru, &iderv, &contr2[(
+               (*const_cast <AdvApp2Var_EvaluatorFunc2Var*> (&foncnp)).Evaluate (
+            ndimen, &uvfonc[3], &uvfonc[5], isofav, tconst, &
+                       nbp, &ttable[*nbroot + 1], &ideru, &iderv, &contr2[(
                        ideru + 1) * contr2_dim1 + 1], iercod);
                if (*iercod > 0) {
                    goto L9999;
@@ -1090,7 +1094,7 @@ int mma1fer_(integer *,//ndimen,
                i__2 = ndses;
                for (kk = 1; kk <= i__2; ++kk) {
                  AdvApp2Var_SysBase::mvriraz_(&nbr0, 
-                            (char *)&crvjac[ncfnw + (idim + kk - 1) * crvjac_dim1]);
+                            &crvjac[ncfnw + (idim + kk - 1) * crvjac_dim1]);
 /* L200: */
                }
            }
@@ -2235,14 +2239,14 @@ int AdvApp2Var_ApproxF2var::mma2can_(const integer *ncfmxu,
            pataux[1], &patcan[patcan_offset]);
 
 /* --> Write all in a greater table */
-    AdvApp2Var_MathBase::mmfmca8_((integer *)ncoefu, 
-            (integer *)ncoefv, 
-            (integer *)ndimen, 
-            (integer *)ncfmxu, 
-            (integer *)ncfmxv, 
-            (integer *)ndimen, 
-            (doublereal *)&patcan[patcan_offset], 
-            (doublereal *)&patcan[patcan_offset]);
+    AdvApp2Var_MathBase::mmfmca8_(ncoefu, 
+            ncoefv, 
+            ndimen, 
+            ncfmxu, 
+            ncfmxv, 
+            ndimen, 
+            &patcan[patcan_offset], 
+            &patcan[patcan_offset]);
 
 /* --> Complete with zeros the resulting table. */
     ilon1 = *ncfmxu - *ncoefu;
@@ -2253,13 +2257,13 @@ int AdvApp2Var_ApproxF2var::mma2can_(const integer *ncfmxu,
            i__2 = *ncoefv;
            for (ii = 1; ii <= i__2; ++ii) {
                AdvApp2Var_SysBase::mvriraz_(&ilon1, 
-                        (char *)&patcan[*ncoefu + 1 + (ii + nd * patcan_dim2) * patcan_dim1]);
+                        &patcan[*ncoefu + 1 + (ii + nd * patcan_dim2) * patcan_dim1]);
 /* L110: */
            }
        }
        if (ilon2 > 0) {
            AdvApp2Var_SysBase::mvriraz_(&ilon2, 
-                    (char *)&patcan[(*ncoefv + 1 + nd * patcan_dim2) * patcan_dim1 + 1]);
+                    &patcan[(*ncoefv + 1 + nd * patcan_dim2) * patcan_dim1 + 1]);
        }
 /* L100: */
     }
@@ -3316,12 +3320,12 @@ int AdvApp2Var_ApproxF2var::mma2cdi_( integer *ndimen,
 
     /* Local variables */
     static integer ilong;
-    static long int iofwr;
+    static intptr_t iofwr;
     static doublereal wrkar[1];
     static integer iszwr;
     static integer ibb, ier;
     static integer isz1, isz2, isz3, isz4;
-    static long int ipt1, ipt2, ipt3, ipt4;
+    static intptr_t ipt1, ipt2, ipt3, ipt4;
 
 
 
@@ -3486,11 +3490,11 @@ int AdvApp2Var_ApproxF2var::mma2cdi_( integer *ndimen,
 */
 
     ilong = (*nbpntu / 2 + 1) * (*nbpntv / 2 + 1) * *ndimen;
-    AdvApp2Var_SysBase::mvriraz_(&ilong, (char *)&sosotb[sosotb_offset]);
-    AdvApp2Var_SysBase::mvriraz_(&ilong, (char *)&diditb[diditb_offset]);
+    AdvApp2Var_SysBase::mvriraz_(&ilong, &sosotb[sosotb_offset]);
+    AdvApp2Var_SysBase::mvriraz_(&ilong, &diditb[diditb_offset]);
     ilong = *nbpntu / 2 * (*nbpntv / 2) * *ndimen;
-    AdvApp2Var_SysBase::mvriraz_(&ilong, (char *)&soditb[soditb_offset]);
-    AdvApp2Var_SysBase::mvriraz_(&ilong, (char *)&disotb[disotb_offset]);
+    AdvApp2Var_SysBase::mvriraz_(&ilong, &soditb[soditb_offset]);
+    AdvApp2Var_SysBase::mvriraz_(&ilong, &disotb[disotb_offset]);
     if (*iordru == -1 && *iordrv == -1) {
        goto L9999;
     }
@@ -3629,12 +3633,12 @@ int AdvApp2Var_ApproxF2var::mma2ce1_(integer *numdec,
 
     /* Local variables */
     static logical ldbg;
-    static long int iofwr;
+    static intptr_t iofwr;
     static doublereal wrkar[1];
     static integer iszwr;
     static integer ier;
     static integer isz1, isz2, isz3, isz4, isz5, isz6, isz7;
-    static long int ipt1, ipt2, ipt3, ipt4, ipt5, ipt6, ipt7;
+    static intptr_t ipt1, ipt2, ipt3, ipt4, ipt5, ipt6, ipt7;
 
 
 
@@ -4117,12 +4121,12 @@ int mma2ce2_(integer *numdec,
     *ndegpu = *ndminu;
     *ndegpv = *ndminv;
 /* --> For the moment, max errors are null */
-    AdvApp2Var_SysBase::mvriraz_(nbsesp, (char *)&errmax[1]);
+    AdvApp2Var_SysBase::mvriraz_(nbsesp, &errmax[1]);
     nd = *ndimen << 2;
-    AdvApp2Var_SysBase::mvriraz_(&nd, (char *)&vecerr[vecerr_offset]);
+    AdvApp2Var_SysBase::mvriraz_(&nd, &vecerr[vecerr_offset]);
 /* --> and the square, too. */
     nd = (*ndjacu + 1) * (*ndjacv + 1) * *ndimen;
-    AdvApp2Var_SysBase::mvriraz_(&nd, (char *)&patjac[patjac_offset]);
+    AdvApp2Var_SysBase::mvriraz_(&nd, &patjac[patjac_offset]);
 
     i2rdu = (*iordru + 1) << 1;
     i2rdv = (*iordrv + 1) << 1;
@@ -5601,8 +5605,9 @@ int mma2ds2_(integer *ndimen,
     i__1 = nvroo;
     for (iv = 1; iv <= i__1; ++iv) {
        tcons = blinv + alinv * vrootb[iv];
-       foncnp.Evaluate (ndimen, dbfn1, dbfn2, iiuouv, &tcons, nbpntu,
-               &ttable[1], &c__0, &c__0, &fpntab[fpntab_offset], iercod);
+       (*const_cast <AdvApp2Var_EvaluatorFunc2Var*> (&foncnp)).Evaluate (
+        ndimen, dbfn1, dbfn2, iiuouv, &tcons, nbpntu, &
+               ttable[1], &c__0, &c__0, &fpntab[fpntab_offset], iercod);
        if (*iercod > 0) {
            goto L9999;
        }
@@ -5642,8 +5647,9 @@ int mma2ds2_(integer *ndimen,
 
     if (*nbpntv % 2 != 0) {
        tcons = blinv;
-       foncnp.Evaluate (ndimen, dbfn1, dbfn2, iiuouv, &tcons, nbpntu,
-               &ttable[1], &c__0, &c__0, &fpntab[fpntab_offset], iercod);
+       (*const_cast <AdvApp2Var_EvaluatorFunc2Var*> (&foncnp)).Evaluate (
+        ndimen, dbfn1, dbfn2, iiuouv, &tcons, nbpntu, &
+               ttable[1], &c__0, &c__0, &fpntab[fpntab_offset], iercod);
        if (*iercod > 0) {
            goto L9999;
        }
@@ -5672,8 +5678,9 @@ int mma2ds2_(integer *ndimen,
     i__1 = nvroo;
     for (iv = 1; iv <= i__1; ++iv) {
        tcons = alinv * vrootb[(*nbpntv + 1) / 2 + iv] + blinv;
-       foncnp.Evaluate (ndimen, dbfn1, dbfn2, iiuouv, &tcons, nbpntu,
-               &ttable[1], &c__0, &c__0, &fpntab[fpntab_offset], iercod);
+       (*const_cast <AdvApp2Var_EvaluatorFunc2Var*> (&foncnp)).Evaluate (
+        ndimen, dbfn1, dbfn2, iiuouv, &tcons, nbpntu, &
+               ttable[1], &c__0, &c__0, &fpntab[fpntab_offset], iercod);
        if (*iercod > 0) {
            goto L9999;
        }
@@ -6165,7 +6172,7 @@ int AdvApp2Var_ApproxF2var::mma2fnc_(integer *ndimen,
            ndwrk;
     static doublereal wrkar[1];
     static integer nupil;
-    static long int iofwr;
+    static intptr_t iofwr;
     static doublereal uvpav[4] /* was [2][2] */;
     static integer nd, ii;
     static integer ibb;
@@ -6174,7 +6181,7 @@ int AdvApp2Var_ApproxF2var::mma2fnc_(integer *ndimen,
   static integer ncb1;
     static doublereal eps3;
     static integer isz1, isz2, isz3, isz4, isz5;
-    static long int ipt1, ipt2, ipt3, ipt4, ipt5,iptt, jptt;
+    static intptr_t ipt1, ipt2, ipt3, ipt4, ipt5,iptt, jptt;
 
 /* ********************************************************************** 
 */
@@ -6376,7 +6383,7 @@ int AdvApp2Var_ApproxF2var::mma2fnc_(integer *ndimen,
 */
 
     ilong = *ndimen * *ncflim * *nbcrmx;
-    AdvApp2Var_SysBase::mvriraz_(&ilong, (char *)&courbe[courbe_offset]);
+    AdvApp2Var_SysBase::mvriraz_(&ilong, &courbe[courbe_offset]);
 
 /* ********************************************************************** 
 */
@@ -6577,7 +6584,7 @@ L1000:
                                      &wrkar[ipt2]);
        /*pkv t*/
        ilong = *ndimen * *ncflim;
-       AdvApp2Var_SysBase::mvriraz_(&ilong, (char*)&wrkar[ipt5]);
+       AdvApp2Var_SysBase::mvriraz_(&ilong, &wrkar[ipt5]);
 /* -> Passage to canonic base (-1,1) (result in WRKAR(IPT5)). 
 */
        ndgre = ncoeff[ncb1] - 1;
@@ -6633,7 +6640,7 @@ L1000:
        ideb = *nbcrbe + 1;
        ideb1 = ideb + 1;
        ilong = (nupil - *nbcrbe) << 3;
-       AdvApp2Var_SysBase::mcrfill_(&ilong, (char *)&tabdec[ideb],(char *)&tabdec[ideb1]);
+       AdvApp2Var_SysBase::mcrfill_(&ilong, &tabdec[ideb],&tabdec[ideb1]);
        tabdec[ideb] = tmil;
        ++nupil;
     }
@@ -7908,8 +7915,8 @@ L1000:
     for (kjac = 0; kjac <= i__1; ++kjac) {
        iptt = iptdb + kjac * (*nbpnts / 2) + 1;
        AdvApp2Var_SysBase::mcrfill_(&ilong, 
-                (char *)&mmapgss_.gslxjs[iptt - 1], 
-                (char *)&cgauss[kjac * cgauss_dim1 + 1]);
+                &mmapgss_.gslxjs[iptt - 1], 
+                &cgauss[kjac * cgauss_dim1 + 1]);
 /* L100: */
     }
 /* --> Case when the number of points is uneven. */
@@ -7939,8 +7946,8 @@ L2000:
     for (kjac = 0; kjac <= i__1; ++kjac) {
        iptt = iptdb + kjac * (*nbpnts / 2) + 1;
        AdvApp2Var_SysBase::mcrfill_(&ilong, 
-                (char *)&mmapgs0_.gslxj0[iptt - 1], 
-                (char *)&cgauss[kjac * cgauss_dim1 + 1]);
+                &mmapgs0_.gslxj0[iptt - 1], 
+                &cgauss[kjac * cgauss_dim1 + 1]);
 /* L200: */
     }
 /* --> Case when the number of points is uneven. */
@@ -7970,8 +7977,8 @@ L3000:
     for (kjac = 0; kjac <= i__1; ++kjac) {
        iptt = iptdb + kjac * (*nbpnts / 2) + 1;
        AdvApp2Var_SysBase::mcrfill_(&ilong, 
-                (char *)&mmapgs1_.gslxj1[iptt - 1], 
-                (char *)&cgauss[kjac * cgauss_dim1 + 1]);
+                &mmapgs1_.gslxj1[iptt - 1], 
+                &cgauss[kjac * cgauss_dim1 + 1]);
 /* L300: */
     }
 /* --> Case when the number of points is uneven. */
@@ -8001,8 +8008,8 @@ L4000:
     for (kjac = 0; kjac <= i__1; ++kjac) {
        iptt = iptdb + kjac * (*nbpnts / 2) + 1;
        AdvApp2Var_SysBase::mcrfill_(&ilong, 
-                (char *)&mmapgs2_.gslxj2[iptt - 1], 
-                (char *)&cgauss[kjac * cgauss_dim1 + 1]);
+                &mmapgs2_.gslxj2[iptt - 1], 
+                &cgauss[kjac * cgauss_dim1 + 1]);
 /* L400: */
     }
 /* --> Cas of uneven number of points. */
@@ -8138,12 +8145,12 @@ int mmjacpt_(const integer *ndimen,
 /*   Passage into canonical by u. */
 
     kdim = *ndimen * *ncoefv;
-    AdvApp2Var_MathBase::mmjaccv_((integer *)ncoefu, 
-            (integer *)&kdim, 
-            (integer *)iordru, 
-            (doublereal *)&ptclgd[ptclgd_offset], 
-            (doublereal *)&ptcaux[ptcaux_offset], 
-            (doublereal *)&ptccan[ptccan_offset]);
+    AdvApp2Var_MathBase::mmjaccv_(ncoefu, 
+            &kdim, 
+            iordru, 
+            &ptclgd[ptclgd_offset], 
+            &ptcaux[ptcaux_offset], 
+            &ptccan[ptccan_offset]);
 
 /*   Swapping of u and v. */
 
@@ -8166,12 +8173,12 @@ int mmjacpt_(const integer *ndimen,
 /*   Passage into canonical by v. */
 
     kdim = *ndimen * *ncoefu;
-    AdvApp2Var_MathBase::mmjaccv_((integer *)ncoefv, 
-            (integer *)&kdim, 
-            (integer *)iordrv, 
-            (doublereal *)&ptcaux[((ptcaux_dim3 + 1) * ptcaux_dim2 + 1) * ptcaux_dim1 + 1], 
-            (doublereal *)&ptccan[ptccan_offset], 
-            (doublereal *)&ptcaux[(((ptcaux_dim3 << 1) + 1) * ptcaux_dim2 + 1) * ptcaux_dim1 + 1]);
+    AdvApp2Var_MathBase::mmjaccv_(ncoefv, 
+            &kdim, 
+            iordrv, 
+            &ptcaux[((ptcaux_dim3 + 1) * ptcaux_dim2 + 1) * ptcaux_dim1 + 1], 
+            &ptccan[ptccan_offset], 
+            &ptcaux[(((ptcaux_dim3 << 1) + 1) * ptcaux_dim2 + 1) * ptcaux_dim1 + 1]);
 
 /*  Swapping of u and v. */
 
index 973de17..e5ee691 100755 (executable)
@@ -275,7 +275,7 @@ int AdvApp2Var_MathBase::mdsptpt_(integer *ndimen,
   static integer i__;
   static doublereal differ[100];
   static integer  ier;
-  long int iofset, j;
+  intptr_t iofset, j;
 
 /* ********************************************************************** 
 */
@@ -1401,9 +1401,9 @@ int AdvApp2Var_MathBase::mmaperx_(integer *ncofmx,
 */
     if (*ndimen == *ndimax && *upara0 == 0. && *upara1 == 1.) {
        nboct = (*ndimax << 3) * *ncoeff;
-       AdvApp2Var_SysBase::mcrfill_((integer *)&nboct,
-                (char *)&crvold[crvold_offset], 
-                (char *)&crvnew[crvnew_offset]);
+       AdvApp2Var_SysBase::mcrfill_(&nboct,
+                &crvold[crvold_offset], 
+                &crvnew[crvnew_offset]);
        goto L9999;
     }
 /* ********************************************************************** 
@@ -1854,8 +1854,8 @@ int mmatvec_(integer *nligne,
 /*                    Processing */
 /* ***********************************************************************
  */
-    AdvApp2Var_SysBase::mvriraz_((integer *)nligne, 
-            (char *)&vecout[1]);
+    AdvApp2Var_SysBase::mvriraz_(nligne, 
+            &vecout[1]);
     i__1 = *nligne;
     for (i__ = *deblig; i__ <= i__1; ++i__) {
        somme = 0.;
@@ -3425,8 +3425,8 @@ int mmdrvcb_(integer *ideriv,
        goto L200;
     }
     iptpnt = *ndim * *ideriv;
-    AdvApp2Var_SysBase::mvriraz_((integer *)&iptpnt, 
-            (char *)&tabpnt[tabpnt_dim1 + 1]);
+    AdvApp2Var_SysBase::mvriraz_(&iptpnt, 
+            &tabpnt[tabpnt_dim1 + 1]);
 L200:
 
 /* ------------------------ Calculation of parameter TPARAM ------------------ 
@@ -4066,12 +4066,12 @@ int mmextrl_(integer *ndegre,
 //function : AdvApp2Var_MathBase::mmfmca8_
 //purpose  : 
 //=======================================================================
-int AdvApp2Var_MathBase::mmfmca8_(integer *ndimen,
-                                 integer *ncoefu,
-                                 integer *ncoefv,
-                                 integer *ndimax, 
-                                 integer *ncfumx, 
-                                 integer *,//ncfvmx, 
+int AdvApp2Var_MathBase::mmfmca8_(const integer *ndimen,
+                                 const integer *ncoefu,
+                                 const integer *ncoefv,
+                                 const integer *ndimax, 
+                                 const integer *ncfumx, 
+                                 const integer *,//ncfvmx, 
                                  doublereal *tabini,
                                  doublereal *tabres)
 
@@ -4174,9 +4174,9 @@ L1000:
     }
     ilong = (*ndimen << 3) * *ncoefu;
     for (k = *ncoefv; k >= 1; --k) {
-       AdvApp2Var_SysBase::mcrfill_((integer *)&ilong, 
-                (char *)&tabini[(k * tabini_dim2 + 1) * tabini_dim1 + 1], 
-                (char *)&tabres[(k * tabres_dim2 + 1) * tabres_dim1 + 1]);
+       AdvApp2Var_SysBase::mcrfill_(&ilong, 
+                &tabini[(k * tabini_dim2 + 1) * tabini_dim1 + 1], 
+                &tabres[(k * tabres_dim2 + 1) * tabres_dim1 + 1]);
 /* L500: */
     }
     goto L9999;
@@ -4186,9 +4186,9 @@ L1000:
 
 L2000:
     ilong = (*ndimen << 3) * *ncoefu * *ncoefv;
-    AdvApp2Var_SysBase::mcrfill_((integer *)&ilong, 
-            (char *)&tabini[tabini_offset], 
-            (char *)&tabres[tabres_offset]);
+    AdvApp2Var_SysBase::mcrfill_(&ilong, 
+            &tabini[tabini_offset], 
+            &tabres[tabres_offset]);
     goto L9999;
 
 /* ---------------------------- The end --------------------------------- 
@@ -4318,9 +4318,9 @@ L1000:
     ilong = (*ndimen << 3) * *ncoefu;
     i__1 = *ncoefv;
     for (k = 1; k <= i__1; ++k) {
-       AdvApp2Var_SysBase::mcrfill_((integer *)&ilong, 
-                (char *)&tabini[(k * tabini_dim2 + 1) * tabini_dim1 + 1], 
-                (char *)&tabres[(k * tabres_dim2 + 1) * tabres_dim1 + 1]);
+       AdvApp2Var_SysBase::mcrfill_(&ilong, 
+                &tabini[(k * tabini_dim2 + 1) * tabini_dim1 + 1], 
+                &tabres[(k * tabres_dim2 + 1) * tabres_dim1 + 1]);
 /* L500: */
     }
     goto L9999;
@@ -4330,9 +4330,9 @@ L1000:
 
 L2000:
     ilong = (*ndimen << 3) * *ncoefu * *ncoefv;
-    AdvApp2Var_SysBase::mcrfill_((integer *)&ilong,
-            (char *)&tabini[tabini_offset], 
-            (char *)&tabres[tabres_offset]);
+    AdvApp2Var_SysBase::mcrfill_(&ilong,
+            &tabini[tabini_offset], 
+            &tabres[tabres_offset]);
     goto L9999;
 
 /* ---------------------------- The end --------------------------------- 
@@ -4367,7 +4367,7 @@ int AdvApp2Var_MathBase::mmfmcar_(integer *ndimen,
     /* Local variables */
     static doublereal tbaux[1];
     static integer ksize, numax, kk;
-    static long int iofst;
+    static intptr_t iofst;
     static integer ibb, ier;
 
 /* ***********************************************************************
@@ -4467,9 +4467,9 @@ int AdvApp2Var_MathBase::mmfmcar_(integer *ndimen,
 
     if (*upara1 == 0. && *upara2 == 1. && *vpara1 == 0. && *vpara2 == 1.) {
        ksize = (*ndimen << 3) * *ncofmx * *ncoefv;
-       AdvApp2Var_SysBase::mcrfill_((integer *)&ksize, 
-                (char *)&patold[patold_offset], 
-                (char *)&patnew[patnew_offset]);
+       AdvApp2Var_SysBase::mcrfill_(&ksize, 
+                &patold[patold_offset], 
+                &patnew[patnew_offset]);
        goto L9999;
     }
 
@@ -4678,14 +4678,14 @@ V*/
     if (*ndimen == 1 && *ncf1mx == *ncf2mx) {
        nboct = *ncf2mx << 3;
        if (*isenmsc == 1) {
-           AdvApp2Var_SysBase::mcrfill_((integer *)&nboct, 
-                    (char *)&courb1[courb1_offset], 
-                    (char *)&courb2[courb2_offset]);
+           AdvApp2Var_SysBase::mcrfill_(&nboct, 
+                    &courb1[courb1_offset], 
+                    &courb2[courb2_offset]);
        }
        if (*isenmsc == -1) {
-           AdvApp2Var_SysBase::mcrfill_((integer *)&nboct, 
-                    (char *)&courb2[courb2_offset], 
-                    (char *)&courb1[courb1_offset]);
+           AdvApp2Var_SysBase::mcrfill_(&nboct, 
+                    &courb2[courb2_offset], 
+                    &courb1[courb1_offset]);
        }
        *iercod = -3136;
        goto L9999;
@@ -4756,7 +4756,7 @@ int AdvApp2Var_MathBase::mmfmtb1_(integer *maxsz1,
     /* Local variables */
     static doublereal work[1];
     static integer ilong, isize, ii, jj, ier;
-    static long int iofst,iipt, jjpt;
+    static intptr_t iofst,iipt, jjpt;
 
 
 /************************************************************************
@@ -4844,9 +4844,9 @@ int AdvApp2Var_MathBase::mmfmtb1_(integer *maxsz1,
 /* L100: */
     }
     ilong = isize << 3;
-    AdvApp2Var_SysBase::mcrfill_((integer *)&ilong, 
-            (char *)&work[iofst], 
-            (char *)&table2[table2_offset]);
+    AdvApp2Var_SysBase::mcrfill_(&ilong, 
+            &work[iofst], 
+            &table2[table2_offset]);
 
 /* -------------- The number of elements of TABLE2 is returned ------------ 
 */
@@ -5018,8 +5018,8 @@ int AdvApp2Var_MathBase::mmgaus1_(integer *ndimf,
     --saux1;
 
     /* Function Body */
-    AdvApp2Var_SysBase::mvriraz_((integer *)ndimf, 
-            (char *)&somme[1]);
+    AdvApp2Var_SysBase::mvriraz_(ndimf, 
+            &somme[1]);
     *iercod = 0;
 
 /* ****** Loading of coefficients U and H ** */
@@ -5269,8 +5269,8 @@ L100:
 /*     Init. matrix identity : */
 
     ncmat = 36;
-    AdvApp2Var_SysBase::mvriraz_((integer *)&ncmat, 
-            (char *)miden);
+    AdvApp2Var_SysBase::mvriraz_(&ncmat, 
+            miden);
 
     for (ii = 1; ii <= 6; ++ii) {
        miden[ii + ii * 6 - 7] = 1.;
@@ -5281,7 +5281,7 @@ L100:
 
 /*     Init to 0 of table CMHERM */
 
-    AdvApp2Var_SysBase::mvriraz_((integer *)&c__576, (char *)mmcmher_.cmherm);
+    AdvApp2Var_SysBase::mvriraz_(&c__576, mmcmher_.cmherm);
 
 /*     Calculation by solution of linear systems */
 
@@ -5799,7 +5799,7 @@ int AdvApp2Var_MathBase::mmhjcan_(integer *ndimen,
 /*     CONVERSION OF THE COEFFICIENTS OF THE PART OF THE CURVE EXPRESSED */
 /*     IN HERMIT BASE, INTO THE CANONIC BASE */
 
-           AdvApp2Var_SysBase::mvriraz_((integer *)&ncoeff, (char *)taux1);
+           AdvApp2Var_SysBase::mvriraz_(&ncoeff, taux1);
 
            i__3 = aux2;
            for (k = 1; k <= i__3; ++k) {
@@ -6042,17 +6042,17 @@ L70:
     nlgn = *nbrlgn - inser;
     if (nlgn > 0) {
        noct = (*ncolmx << 3) * nlgn;
-       AdvApp2Var_SysBase::mcrfill_((integer *)&noct, 
-                (char *)&tabtri[inser * tabtri_dim1 + 1], 
-                (char *)&tabtri[(inser + 1)* tabtri_dim1 + 1]);
+       AdvApp2Var_SysBase::mcrfill_(&noct, 
+                &tabtri[inser * tabtri_dim1 + 1], 
+                &tabtri[(inser + 1)* tabtri_dim1 + 1]);
     }
 
 /* --- Copy line */
 
     noct = *nbrcol << 3;
-    AdvApp2Var_SysBase::mcrfill_((integer *)&noct, 
-            (char *)&ajoute[1], 
-            (char *)&tabtri[inser * tabtri_dim1 + 1]);
+    AdvApp2Var_SysBase::mcrfill_(&noct, 
+            &ajoute[1], 
+            &tabtri[inser * tabtri_dim1 + 1]);
 
     goto L9999;
 
@@ -6081,7 +6081,7 @@ L9999:
 //function : AdvApp2Var_MathBase::mmjacan_
 //purpose  : 
 //=======================================================================
- int AdvApp2Var_MathBase::mmjacan_(integer *ideriv, 
+ int AdvApp2Var_MathBase::mmjacan_(const integer *ideriv, 
                            integer *ndeg, 
                            doublereal *poljac, 
                            doublereal *polcan)
@@ -6224,10 +6224,10 @@ L9999:
 //function : AdvApp2Var_MathBase::mmjaccv_
 //purpose  : 
 //=======================================================================
- int AdvApp2Var_MathBase::mmjaccv_(integer *ncoef, 
-                           integer *ndim, 
-                           integer *ider, 
-                           doublereal *crvlgd,
+ int AdvApp2Var_MathBase::mmjaccv_(const integer *ncoef, 
+                           const integer *ndim, 
+                           const integer *ider, 
+                           const doublereal *crvlgd,
                            doublereal *polaux,
                            doublereal *crvcan)
 
@@ -6751,8 +6751,8 @@ L9900:
 /* Computing MAX */
     i__1 = iorjac + 1;
     nwcof = advapp_max(i__1,1);
-    AdvApp2Var_SysBase::mvriraz_((integer *)&nwcof, 
-            (char *)wpoly);
+    AdvApp2Var_SysBase::mvriraz_(&nwcof, 
+            wpoly);
     wpoly[0] = 1.;
     if (*iordre == 2) {
        wpoly[2] = -3.;
@@ -6945,8 +6945,8 @@ L9999:
 
     /* Function Body */
     isize = *ndim << 3;
-    AdvApp2Var_SysBase::miraz_((integer *)&isize, 
-          (char *)&pntcrb[1]);
+    AdvApp2Var_SysBase::miraz_(&isize, 
+          &pntcrb[1]);
 
     if (*ncoeff <= 0) {
        goto L9999;
@@ -7500,11 +7500,11 @@ L9999:
     static logical ldbg;
     static doublereal mcho[100];
     static integer jmin, jmax, i__, j, k, l;
-    static long int iofv1, iofv2, iofv3, iofv4;
+    static intptr_t iofv1, iofv2, iofv3, iofv4;
     static doublereal v1[100], v2[100], v3[100], v4[100];
     static integer deblig, dimhch;
     static doublereal hchole[100];
-    static long int iofmch, iofmam, iofhch;
+    static intptr_t iofmch, iofmam, iofhch;
     static doublereal matsym[100];
     static integer ier;
     static integer aux;
@@ -7695,9 +7695,9 @@ L9999:
 
        i__1 = *gdimen;
        for (i__ = 1; i__ <= i__1; ++i__) {
-           AdvApp2Var_SysBase::mvriraz_((integer *)hdimen, (char *)&v1[iofv1]);
-           AdvApp2Var_SysBase::mvriraz_((integer *)hdimen, (char *)&v3[iofv3]);
-           AdvApp2Var_SysBase::mvriraz_((integer *)gdimen, (char *)&v4[iofv4]);
+           AdvApp2Var_SysBase::mvriraz_(hdimen, &v1[iofv1]);
+           AdvApp2Var_SysBase::mvriraz_(hdimen, &v3[iofv3]);
+           AdvApp2Var_SysBase::mvriraz_(gdimen, &v4[iofv4]);
            jmin = gposit[i__ * 3 + 3];
            jmax = gposit[i__ * 3 + 1] + gposit[i__ * 3 + 3] - 1;
            aux = gposit[i__ * 3 + 2] - gposit[i__ * 3 + 1] - jmin + 1;
@@ -7733,7 +7733,7 @@ L9999:
 /*     WITH L=V4 */
 
 
-       AdvApp2Var_SysBase::mvriraz_((integer *)gdimen, (char *)&v4[iofv4]);
+       AdvApp2Var_SysBase::mvriraz_(gdimen, &v4[iofv4]);
        AdvApp2Var_SysBase::macrar8_(mnstoc, &c__100, mcho, &iofmch, &ier);
        if (ier > 0) {
            goto L9102;
@@ -7754,7 +7754,7 @@ L9999:
 */
 /*                                                      = V1 */
 
-       AdvApp2Var_SysBase::mvriraz_((integer *)hdimen, (char *)&v1[iofv1]);
+       AdvApp2Var_SysBase::mvriraz_(hdimen, &v1[iofv1]);
        mmtmave_(gdimen, hdimen, &gposit[4], gnstoc, &matsyg[1], &v4[iofv4], &
                v1[iofv1], &ier);
        if (ier > 0) {
@@ -8478,9 +8478,9 @@ L9999:
 
     ilong = nsur2 << 3;
     ideb = nsur2 * (nsur2 - 1) / 2 + 1;
-    AdvApp2Var_SysBase::mcrfill_((integer *)&ilong, 
-            (char *)&mlgdrtl_.rootab[ideb + nmod2 * 465 - 1], 
-            (char *)&rtlegd[1]);
+    AdvApp2Var_SysBase::mcrfill_(&ilong, 
+            &mlgdrtl_.rootab[ideb + nmod2 * 465 - 1], 
+            &rtlegd[1]);
 
 /* ----------------------------- The end -------------------------------- 
 */
@@ -9713,7 +9713,7 @@ L9999:
 
     vnorm = AdvApp2Var_MathBase::mzsnorm_(ndimen, &vector[1]);
     if (vnorm <= eps0) {
-       AdvApp2Var_SysBase::mvriraz_((integer *)ndimen, (char *)&vecnrm[1]);
+       AdvApp2Var_SysBase::mvriraz_(ndimen, &vecnrm[1]);
        *iercod = 101;
        goto L9999;
     }
index 21dcfe2..6de3759 100755 (executable)
@@ -124,12 +124,12 @@ class AdvApp2Var_MathBase {
 
   Standard_EXPORT static int mmeps1_(doublereal *epsilo);
 
-  Standard_EXPORT static int mmfmca8_(integer *ndimen,
-                                     integer *ncoefu,
-                                     integer *ncoefv,
-                                     integer *ndimax, 
-                                     integer *ncfumx, 
-                                     integer *ncfvmx, 
+  Standard_EXPORT static int mmfmca8_(const integer *ndimen,
+                                     const integer *ncoefu,
+                                     const integer *ncoefv,
+                                     const integer *ndimax, 
+                                     const integer *ncfumx, 
+                                     const integer *ncfvmx, 
                                      doublereal *tabini,
                                      doublereal *tabres);
 
@@ -190,10 +190,10 @@ class AdvApp2Var_MathBase {
                                      doublereal *epseg, 
                                      integer *iercod);
 
-  Standard_EXPORT static int mmjaccv_(integer *ncoef, 
-                                     integer *ndim, 
-                                     integer *ider, 
-                                     doublereal *crvlgd,
+  Standard_EXPORT static int mmjaccv_(const integer *ncoef, 
+                                     const integer *ndim, 
+                                     const integer *ider, 
+                                     const doublereal *crvlgd,
                                      doublereal *polaux,
                                      doublereal *crvcan);
 
@@ -292,7 +292,7 @@ class AdvApp2Var_MathBase {
                                      doublereal *curveo, 
                                      doublereal *curve);
 
-  Standard_EXPORT static int mmjacan_(integer *ideriv, 
+  Standard_EXPORT static int mmjacan_(const integer *ideriv, 
                                      integer *ndeg, 
                                      doublereal *poljac, 
                                      doublereal *polcan);
index ac94581..7c2f526 100755 (executable)
@@ -22,6 +22,7 @@
 #include <AdvApp2Var_Data_f2c.hxx>
 #include <AdvApp2Var_SysBase.hxx>
 #include <AdvApp2Var_Data.hxx>
+#include <Standard.hxx>
 
 
 static 
@@ -37,15 +38,15 @@ static
 int macrchk_();
 
 static
-int macrclw_(long int *iadfld, 
-            long int *iadflf, 
-            integer  *nalloc);
-static
-int macrerr_(long int *iad,
+int macrclw_(intptr_t *iadfld, 
+            intptr_t *iadflf, 
             integer *nalloc);
 static
-int macrgfl_(long int *iadfld, 
-            long int *iadflf, 
+int macrerr_(intptr_t *iad,
+            intptr_t *nalloc);
+static
+int macrgfl_(intptr_t *iadfld, 
+            intptr_t *iadflf, 
             integer  *iphase, 
             integer  *iznuti);
 static
@@ -58,8 +59,8 @@ int macrmsg_(const char *crout,
             ftnlen ct_len);
 
 static
-int macrstw_(integer *iadfld, 
-            integer *iadflf, 
+int macrstw_(intptr_t *iadfld, 
+            intptr_t *iadflf, 
             integer *nalloc);
 
 static
@@ -107,30 +108,30 @@ int matrsym_(const char *cnmsym,
 static
 int mcrcomm_(integer *kop, 
             integer *noct, 
-            long int *iadr, 
+            intptr_t *iadr, 
             integer *ier);
 
 static
 int mcrfree_(integer *ibyte,
-            uinteger *iadr,
+            void* *iadr,
             integer *ier);
 
 static
 int mcrgetv_(integer *sz,
-            uinteger *iad,
+            void* *iad,
             integer *ier);
 
 static
 int mcrlist_(integer *ier);
 
 static
-int mcrlocv_(long int t,
-            long int *l);
+int mcrlocv_(void* t,
+            intptr_t *l);
 
 
 /* Structures */
 static struct {
-    long int icore[12000];     
+    intptr_t icore[12000];     
     integer ncore, lprot;
 } mcrgene_;
 
@@ -241,7 +242,7 @@ int AdvApp2Var_SysBase::macinit_(integer *imode,
 int AdvApp2Var_SysBase::macrai4_(integer *nbelem, 
                                 integer *maxelm, 
                                 integer *itablo,
-                                long int *iofset,
+                                intptr_t *iofset,
                                 integer *iercod)
 
 {
@@ -298,7 +299,7 @@ int AdvApp2Var_SysBase::macrai4_(integer *nbelem,
   iunit = sizeof(integer);    
   /* Function Body */
   if (*nbelem > *maxelm) {
-    AdvApp2Var_SysBase::mcrrqst_(&iunit, nbelem, (doublereal *)&itablo[1], iofset, iercod);
+    AdvApp2Var_SysBase::mcrrqst_(&iunit, nbelem, &itablo[1], iofset, iercod);
   } else {
     *iercod = 0;
     *iofset = 0;
@@ -313,7 +314,7 @@ int AdvApp2Var_SysBase::macrai4_(integer *nbelem,
 int AdvApp2Var_SysBase::macrar8_(integer *nbelem, 
                                 integer *maxelm,
                                 doublereal *xtablo, 
-                                long int *iofset, 
+                                intptr_t *iofset, 
                                 integer *iercod)
 
 {
@@ -398,9 +399,9 @@ int macrchk_()
   
   /* Local variables */
   static integer  i__, j;
-  static long int ioff;
+  static intptr_t ioff;
   static doublereal t[1];
-  static integer loc;
+  static intptr_t loc;
   
 /* ***********************************************************************
  */
@@ -485,8 +486,7 @@ int macrchk_()
  */
 
 /* CALCULATE ADDRESS OF T */
-  mcrlocv_((long int)t, (long int *)&loc);
-  
+  mcrlocv_(t, &loc);  
   /* CONTROL OF FLAGS IN THE TABLE */
   i__1 = mcrgene_.ncore;
   for (i__ = 1; i__ <= i__1; ++i__) {
@@ -502,8 +502,8 @@ int macrchk_()
          /* MSG : '*** ERREUR  : REMOVAL FROM MEMORY OF ADDRESS
             E:',ICORE(J,I) */
          /*       AND OF RANK ICORE(12,I) */
-         macrerr_((long int *)&mcrgene_.icore[j + i__ * 12 - 13], 
-                  (integer *)&mcrgene_.icore[i__ * 12 - 1]);
+         macrerr_(&mcrgene_.icore[j + i__ * 12 - 13], 
+                  &mcrgene_.icore[i__ * 12 - 1]);          
          
          /* BACK-PARCING IN PHASE OF PRODUCTION */
          maostrb_();
@@ -527,8 +527,8 @@ int macrchk_()
 //function : macrclw_
 //purpose  : 
 //=======================================================================
-int macrclw_(long int *,//iadfld, 
-            long int *,//iadflf, 
+int macrclw_(intptr_t *,//iadfld, 
+            intptr_t *,//iadflf, 
             integer  *)//nalloc)
 
 {
@@ -542,7 +542,7 @@ int macrclw_(long int *,//iadfld,
 int AdvApp2Var_SysBase::macrdi4_(integer *nbelem, 
                                 integer *,//maxelm, 
                                 integer *itablo, 
-                                long int *iofset, /* Offset long (pmn) */
+                                intptr_t *iofset, /* Offset long (pmn) */
                                 integer *iercod)
 
 {
@@ -594,7 +594,7 @@ int AdvApp2Var_SysBase::macrdi4_(integer *nbelem,
   if (*iofset != 0) {
     AdvApp2Var_SysBase::mcrdelt_(&iunit, 
                                 nbelem, 
-                                (doublereal *)&itablo[1], 
+                                &itablo[1], 
                                 iofset, 
                                 iercod);
   } else {
@@ -610,7 +610,7 @@ int AdvApp2Var_SysBase::macrdi4_(integer *nbelem,
 int AdvApp2Var_SysBase::macrdr8_(integer *nbelem,
                                 integer *,//maxelm, 
                                 doublereal *xtablo, 
-                                long int *iofset, 
+                                intptr_t *iofset, 
                                 integer *iercod)
 
 {
@@ -674,8 +674,8 @@ int AdvApp2Var_SysBase::macrdr8_(integer *nbelem,
 //function : macrerr_
 //purpose  : 
 //=======================================================================
-int macrerr_(long int *,//iad,
-            integer *)//nalloc)
+int macrerr_(intptr_t *,//iad,
+            intptr_t *)//nalloc)
 
 {
   //static integer c__1 = 1;
@@ -735,8 +735,8 @@ int macrerr_(long int *,//iad,
 //function : macrgfl_
 //purpose  : 
 //=======================================================================
-int macrgfl_(long int *iadfld, 
-            long int *iadflf, 
+int macrgfl_(intptr_t *iadfld, 
+            intptr_t *iadflf, 
             integer  *iphase, 
             integer  *iznuti)
 
@@ -749,7 +749,7 @@ int macrgfl_(long int *iadfld,
   static integer ibid, ienr;
   static doublereal t[1];
   static integer novfl;
-  static long int ioff,iadrfl, iadt;
+  static intptr_t ioff,iadrfl, iadt;
   
   
   /* ***********************************************************************
@@ -845,7 +845,7 @@ int macrgfl_(long int *iadfld,
   }
   
   /*  CALCULATE THE ADDRESS OF T */
-  mcrlocv_((long int)t, (long int *)&iadt);
+  mcrlocv_(t, &iadt);
   
   /* CALCULATE THE OFFSET */
   ioff = (*iadfld - iadt) / 8;
@@ -1167,8 +1167,8 @@ t !! ')", 80L, 54L);
 //function : macrstw_
 //purpose  : 
 //=======================================================================
-int macrstw_(integer *,//iadfld, 
-            integer *,//iadflf, 
+int macrstw_(intptr_t *,//iadfld, 
+            intptr_t *,//iadflf, 
             integer *)//nalloc)
 
 {
@@ -1434,14 +1434,14 @@ int AdvApp2Var_SysBase::maitbr8_(integer *itaill,
     if (nbfois >= 1) {
       i__1 = nbfois;
       for (nufois = 1; nufois <= i__1; ++nufois) {
-       AdvApp2Var_SysBase::mcrfill_(&c__504, (char *)buff0, (char *)&xtab[(nufois - 1) * 63 + 1]);
+       AdvApp2Var_SysBase::mcrfill_(&c__504, buff0, &xtab[(nufois - 1) * 63 + 1]);
        /* L1000: */
       }
     }
     
     if (nreste >= 1) {
       i__1 = nreste << 3;
-      AdvApp2Var_SysBase::mcrfill_(&i__1, (char *)buff0, (char *)&xtab[noffst + 1]);
+      AdvApp2Var_SysBase::mcrfill_(&i__1, buff0, &xtab[noffst + 1]);
     }
   } else {
     for (i__ = 1; i__ <= 63; ++i__) {
@@ -1451,14 +1451,14 @@ int AdvApp2Var_SysBase::maitbr8_(integer *itaill,
     if (nbfois >= 1) {
       i__1 = nbfois;
       for (nufois = 1; nufois <= i__1; ++nufois) {
-       AdvApp2Var_SysBase::mcrfill_(&c__504, (char *)buffx, (char *)&xtab[(nufois - 1) * 63 + 1]);
+       AdvApp2Var_SysBase::mcrfill_(&c__504, buffx, &xtab[(nufois - 1) * 63 + 1]);
        /* L3000: */
       }
     }
     
     if (nreste >= 1) {
       i__1 = nreste << 3;
-      AdvApp2Var_SysBase::mcrfill_(&i__1, (char *)buffx, (char *)&xtab[noffst + 1]);
+      AdvApp2Var_SysBase::mcrfill_(&i__1, buffx, &xtab[noffst + 1]);
     }
   }
   
@@ -1837,12 +1837,12 @@ int maoverf_(integer *nbentr,
   /* Exception */
   if (*nbentr < 63) {
     nrest = *nbentr << 3;
-    AdvApp2Var_SysBase::mcrfill_(&nrest, (char *)buff, (char *)&dtable[1]);
+    AdvApp2Var_SysBase::mcrfill_(&nrest, buff, &dtable[1]);
   } else {
     
     /* Start & initialization */
     ioct = 504;
-    AdvApp2Var_SysBase::mcrfill_(&ioct, (char *)buff, (char *)&dtable[1]);
+    AdvApp2Var_SysBase::mcrfill_(&ioct, buff, &dtable[1]);
     indic = 63;
     
     /* Loop. The upper limit is the integer value of the logarithm of base 2
@@ -1852,7 +1852,7 @@ int maoverf_(integer *nbentr,
       ;
     for (ibid = 1; ibid <= i__1; ++ibid) {
       
-      AdvApp2Var_SysBase::mcrfill_(&ioct, (char *)&dtable[1], (char *)&dtable[indic + 1]);
+      AdvApp2Var_SysBase::mcrfill_(&ioct, &dtable[1], &dtable[indic + 1]);
       ioct += ioct;
       indic += indic;
       
@@ -1862,7 +1862,7 @@ int maoverf_(integer *nbentr,
     nrest = ( *nbentr - indic ) << 3;
     
     if (nrest > 0) {
-      AdvApp2Var_SysBase::mcrfill_(&nrest, (char *)&dtable[1], (char *)&dtable[indic + 1]);
+      AdvApp2Var_SysBase::mcrfill_(&nrest, &dtable[1], &dtable[indic + 1]);
     }
     
   }
@@ -1993,7 +1993,7 @@ int matrsym_(const char *cnmsym,
 //=======================================================================
 int mcrcomm_(integer *kop, 
             integer *noct, 
-            long int *iadr, 
+            intptr_t *iadr, 
             integer *ier)
 
 {
@@ -2005,10 +2005,11 @@ int mcrcomm_(integer *kop,
   integer i__1, i__2;
   
   /* Local variables */
-  static integer ideb;
+  static intptr_t ideb;
   static doublereal dtab[32000];
-  static long int itab[160]    /* was [4][40] */;
-  static integer ipre, i__, j, k;
+  static intptr_t itab[160]    /* was [4][40] */;
+  static intptr_t ipre;
+  static integer i__, j, k;
   
 
 /************************************************************************
@@ -2116,7 +2117,7 @@ int mcrcomm_(integer *kop,
        itab[(i__ << 2) - 4] = *noct / 8 + 1;
        itab[(i__ << 2) - 3] = ipre;
        itab[(i__ << 2) - 2] = *noct;
-       mcrlocv_((long int)&dtab[ipre - 1], (long int *)iadr);
+       mcrlocv_(&dtab[ipre - 1], iadr);
        itab[(i__ << 2) - 1] = *iadr;
        goto L9900;
       }
@@ -2171,8 +2172,8 @@ int mcrcomm_(integer *kop,
 //=======================================================================
 int AdvApp2Var_SysBase::mcrdelt_(integer *iunit, 
                                 integer *isize, 
-                                doublereal *t, 
-                                long int *iofset, 
+                                void *t, 
+                                intptr_t *iofset, 
                                 integer *iercod)
 
 {
@@ -2180,7 +2181,7 @@ int AdvApp2Var_SysBase::mcrdelt_(integer *iunit,
   static doublereal xbid;
   static integer noct, iver, ksys, i__, n, nrang, 
   ibyte, ier;
-  static long int iadfd,  iadff, iaddr, loc; /* Long adDresses*/
+  static intptr_t iadfd,  iadff, iaddr, loc; /* Les adrresses en long*/
   static integer kop;
   
 /* ***********************************************************************
@@ -2304,16 +2305,13 @@ int AdvApp2Var_SysBase::mcrdelt_(integer *iunit,
 /*     NBYTE : TOTAL NUMBER OF OCTETS OF ALLOCATIONS */
 /*     MBYTE : MAX NUMBER OF OCTETS */
 
-    /* Parameter adjustments */
-    --t;
-
     /* Function Body */
     *iercod = 0;
 
 /* SEARCH IN MCRGENE */
 
     n = 0;
-    mcrlocv_((long int)&t[1], (long int *)&loc);
+    mcrlocv_(t, &loc);
 
     for (i__ = mcrgene_.ncore; i__ >= 1; --i__) {
        if (*iunit == mcrgene_.icore[i__ * 12 - 11] && *isize == 
@@ -2334,12 +2332,12 @@ L1100:
 
 /* ALLOCATION RECOGNIZED : RETURN OTHER INFOS */
 
-    ksys = mcrgene_.icore[n * 12 - 7];
-    ibyte = mcrgene_.icore[n * 12 - 6];
+    ksys = static_cast<integer> (mcrgene_.icore[n * 12 - 7]);
+    ibyte = static_cast<integer> (mcrgene_.icore[n * 12 - 6]);
     iaddr = mcrgene_.icore[n * 12 - 5];
     iadfd = mcrgene_.icore[n * 12 - 3];
     iadff = mcrgene_.icore[n * 12 - 2];
-    nrang = mcrgene_.icore[n * 12 - 1];
+    nrang = static_cast<integer> (mcrgene_.icore[n * 12 - 1]);
 
 /*     Control of flags */
 
@@ -2357,7 +2355,7 @@ L1100:
        }
     } else {
 /* DE-ALLOCATION SYSTEM */
-       mcrfree_((integer *)&ibyte, (uinteger *)&iaddr, (integer *)&ier);
+       mcrfree_(&ibyte, reinterpret_cast<void**> (&iaddr), &ier);
        if (ier != 0) {
            goto L9002;
        }
@@ -2374,21 +2372,27 @@ L1100:
        i__ = 2;
     }
     ++mcrstac_.ndelt[i__ - 1];
-    mcrstac_.nbyte[i__ - 1] -= mcrgene_.icore[n * 12 - 11] * 
-           mcrgene_.icore[n * 12 - 10];
+    mcrstac_.nbyte[i__ - 1] -= static_cast<integer> (mcrgene_.icore[n * 12 - 11] * 
+           mcrgene_.icore[n * 12 - 10]);
 
 /* REMOVAL OF PARAMETERS IN MCRGENE */
     if (n < 1000) {
 /*     noct = (mcrgene_1.ncore - n) * 48; */
-        noct = (mcrgene_.ncore - n) * 12 * sizeof(long int);
-       AdvApp2Var_SysBase::mcrfill_((integer *)&noct, 
-                                    (char *)&mcrgene_.icore[(n + 1) * 12 - 12], 
-                                    (char *)&mcrgene_.icore[n * 12 - 12]);
+        noct = (mcrgene_.ncore - n) * 12 * sizeof(mcrgene_.icore[0]);
+       AdvApp2Var_SysBase::mcrfill_(&noct, 
+                                    &mcrgene_.icore[(n + 1) * 12 - 12], 
+                                    &mcrgene_.icore[n * 12 - 12]);
     }
     --mcrgene_.ncore;
 
 /* *** Set to overflow of IOFSET */
-    *iofset = 2147483647;
+    {
+       /* nested scope needed to avoid gcc compilation error crossing
+          initialization with goto*/
+       /* assign max positive integer to *iofset */
+       const size_t shift = sizeof (*iofset) * 8 - 1;
+       *iofset = (uintptr_t(1) << shift) - 1 /*2147483647 for 32bit*/;
+    }
     goto L9900;
 
 /* ----------------------------------------------------------------------*
@@ -2464,25 +2468,24 @@ C**********************************************************************
 //purpose  : 
 //=======================================================================
 int AdvApp2Var_SysBase::mcrfill_(integer *size, 
-                                char *tin, 
-                                char *tout)
+                                void *tin, 
+                                void *tout)
 
 {
-  if (mcrfill_ABS(tout-tin) >= *size)
+  register char *jmin=static_cast<char*> (tin);
+  register char *jmout=static_cast<char*> (tout);
+  if (mcrfill_ABS(jmout-jmin) >= *size)
     memcpy( tout, tin, *size);
   else if (tin > tout)
     {
       register integer n = *size;
-      register char *jmin=tin;
-      register char *jmout=tout;
       while (n-- > 0) *jmout++ = *jmin++;
     }
   else
     {
       register integer n = *size;
-      register char *jmin=tin+n;
-      register char *jmout=tout+n;
+      jmin+=n;
+      jmout+=n;
       while (n-- > 0) *--jmout = *--jmin;
     }
   return 0;
@@ -2517,13 +2520,14 @@ int AdvApp2Var_SysBase::mcrfill_(integer *size,
 //purpose  : 
 //=======================================================================
 int mcrfree_(integer *,//ibyte,
-            uinteger *iadr,
+            void* *iadr,
             integer *ier)
 
 {
   *ier=0;
-  free((void*)*iadr);
-  if ( !*iadr ) *ier = 1;
+  Standard::Free(*iadr);
+  //Standard::Free always nullifies address, so check becomes incorrect
+  //if ( !*iadr ) *ier = 1;
   return 0;
 }
 
@@ -2559,13 +2563,13 @@ int mcrfree_(integer *,//ibyte,
 //purpose  : 
 //=======================================================================
 int mcrgetv_(integer *sz,
-            uinteger *iad,
+            void* *iad,
             integer *ier)                                            
 
 {
   
   *ier = 0;
-  *iad = (uinteger)malloc(*sz);
+  *iad = Standard::Allocate(*sz);
   if ( !*iad ) *ier = 1;
   return 0;
 }
@@ -2701,7 +2705,7 @@ int mcrlist_(integer *ier)
     i__1 = mcrgene_.ncore;
     for (i__ = 1; i__ <= i__1; ++i__) {
        nufmt = 2;
-       ifmt = mcrgene_.icore[i__ * 12 - 11] * mcrgene_.icore[i__ * 12 - 10]
+       ifmt = static_cast<integer> (mcrgene_.icore[i__ * 12 - 11] * mcrgene_.icore[i__ * 12 - 10])
                ;
        macrmsg_(subrou, &nufmt, &ifmt, &dfmt, cfmt, 7L, 1L);
        ntotal += ifmt;
@@ -2720,11 +2724,11 @@ int mcrlist_(integer *ier)
 //function : mcrlocv_
 //purpose  : 
 //=======================================================================
-int mcrlocv_(long int t,
-            long int *l)
+int mcrlocv_(void* t,
+            intptr_t *l)
 
 {
-  *l = t;
+  *l = reinterpret_cast<intptr_t> (t);
   return 0 ;
 }
 
@@ -2734,8 +2738,8 @@ int mcrlocv_(long int t,
 //=======================================================================
 int AdvApp2Var_SysBase::mcrrqst_(integer *iunit, 
                                 integer *isize, 
-                                doublereal *t, 
-                                long int *iofset, 
+                                void *t, 
+                                intptr_t *iofset, 
                                 integer *iercod)
 
 {
@@ -2747,7 +2751,7 @@ int AdvApp2Var_SysBase::mcrrqst_(integer *iunit,
   static integer ifmt, iver;
   static char subr[7];
   static integer ksys , ibyte, irest, isyst, ier;
-  static long int iadfd, iadff, iaddr,lofset, loc;
+  static intptr_t iadfd, iadff, iaddr,lofset, loc;
   static integer izu;
 
   
@@ -2897,9 +2901,6 @@ int AdvApp2Var_SysBase::mcrrqst_(integer *iunit,
 /* ----------------------------------------------------------------------*
  */
 
-    /* Parameter adjustments */
-    --t;
-
     /* Function Body */
     *iercod = 0;
 
@@ -2940,7 +2941,7 @@ int AdvApp2Var_SysBase::mcrrqst_(integer *iunit,
 /*     . add delta for alinement with the base */
 /*     . round to multiple of 8 above */
 
-  mcrlocv_((long int)&t[1], (long int *)&loc);
+  mcrlocv_(t, &loc);
     izu = ibyte + loc % *iunit;
     irest = izu % 8;
     if (irest != 0) {
@@ -2972,7 +2973,7 @@ int AdvApp2Var_SysBase::mcrrqst_(integer *iunit,
 /*      ELSE */
 /*        ALLOCATION SYSTEME */
     ksys = 2;
-    mcrgetv_((integer *)&ibyte, (uinteger *)&iaddr, (integer *)&ier);
+    mcrgetv_(&ibyte, reinterpret_cast<void**> (&iaddr), &ier);
     if (ier != 0) {
        goto L9003;
     }
@@ -3021,13 +3022,13 @@ int AdvApp2Var_SysBase::mcrrqst_(integer *iunit,
 
 /* CALL ALLOWING AUTOIMPLEMENTATION OF THE SET WATCH BY THE DEBUGGER */
 
-    macrstw_((integer *)&iadfd, (integer *)&iadff, (integer *)&mcrgene_.ncore);
+    macrstw_(&iadfd, &iadff, &mcrgene_.ncore);
 
 /* STATISTICS */
 
     ++mcrstac_.nrqst[ksys - 1];
-    mcrstac_.nbyte[ksys - 1] += mcrgene_.icore[mcrgene_.ncore * 12 - 11] * 
-           mcrgene_.icore[mcrgene_.ncore * 12 - 10];
+    mcrstac_.nbyte[ksys - 1] += static_cast<integer> (mcrgene_.icore[mcrgene_.ncore * 12 - 11] * 
+           mcrgene_.icore[mcrgene_.ncore * 12 - 10]);
 /* Computing MAX */
     i__1 = mcrstac_.mbyte[ksys - 1], i__2 = mcrstac_.nbyte[ksys - 1];
     mcrstac_.mbyte[ksys - 1] = advapp_max(i__1,i__2);
@@ -3137,7 +3138,7 @@ C***********************************************************************
 //purpose  : 
 //=======================================================================
 void AdvApp2Var_SysBase::miraz_(integer *taille,
-                               char *adt)
+                               void *adt)
 
 {
   integer offset;
@@ -3217,7 +3218,7 @@ int AdvApp2Var_SysBase::msifill_(integer *nbintg,
 
     /* Function Body */
     nocte =  *nbintg * sizeof(integer);
-    AdvApp2Var_SysBase::mcrfill_((integer *)&nocte, (char *)&ivecin[1], (char *)&ivecou[1]);
+    AdvApp2Var_SysBase::mcrfill_(&nocte, &ivecin[1], &ivecou[1]);
  return 0 ;
 } /* msifill_ */
 
@@ -3272,8 +3273,8 @@ int AdvApp2Var_SysBase::msrfill_(integer *nbreel,
     --vecent;
 
     /* Function Body */
-    nocte = *nbreel << 3;
-    AdvApp2Var_SysBase::mcrfill_((integer *)&nocte, (char *)&vecent[1], (char *)&vecsor[1]);
+    nocte = *nbreel * sizeof (doublereal);
+    AdvApp2Var_SysBase::mcrfill_(&nocte, &vecent[1], &vecsor[1]);
  return 0 ;
 } /* msrfill_ */
 
@@ -3442,7 +3443,7 @@ C***********************************************************************
 //purpose  : 
 //=======================================================================
 void AdvApp2Var_SysBase::mvriraz_(integer *taille,
-                                 char *adt)
+                                 void *adt)
 
 {
   integer offset;
index baced2a..bc6ecb1 100755 (executable)
 
 #include <Standard_Macro.hxx>
 #include <AdvApp2Var_Data_f2c.hxx>
+#if _MSC_VER
+#include <stddef.h>
+#else
+#include <stdint.h>
+#endif
 
 class AdvApp2Var_SysBase {
  public: 
@@ -32,18 +37,18 @@ class AdvApp2Var_SysBase {
   //
   Standard_EXPORT static int mcrdelt_(integer *iunit, 
                                      integer *isize, 
-                                     doublereal *t, 
-                                     long int *iofset, 
+                                     void *t, 
+                                     intptr_t *iofset, 
                                      integer *iercod);
 
   Standard_EXPORT static int mcrfill_(integer *size, 
-                                     char *tin, 
-                                     char *tout);
+                                     void *tin, 
+                                     void *tout);
 
   Standard_EXPORT static int mcrrqst_(integer *iunit, 
                                      integer *isize, 
-                                     doublereal *t, 
-                                     long int *iofset, 
+                                     void *t, 
+                                     intptr_t *iofset, 
                                      integer *iercod);
   Standard_EXPORT static integer mnfndeb_();
 
@@ -57,23 +62,23 @@ class AdvApp2Var_SysBase {
   Standard_EXPORT static int macrai4_(integer *nbelem, 
                                      integer *maxelm, 
                                      integer *itablo,
-                                     long int *iofset,
+                                     intptr_t *iofset,
                                      integer *iercod);
   Standard_EXPORT static int macrar8_(integer *nbelem, 
                                      integer *maxelm,
                                      doublereal *xtablo, 
-                                     long int *iofset, 
+                                     intptr_t *iofset, 
                                      integer *iercod);
   Standard_EXPORT static int macrdi4_(integer *nbelem, 
                                      integer *maxelm, 
                                      integer *itablo, 
-                                     long int *iofset, 
+                                     intptr_t *iofset, 
                                      integer *iercod);
 
   Standard_EXPORT static int macrdr8_(integer *nbelem,
                                      integer *maxelm, 
                                      doublereal *xtablo, 
-                                     long int *iofset, 
+                                     intptr_t *iofset, 
                                      integer *iercod);
   Standard_EXPORT static int maermsg_(const char *cnompg, 
                                      integer *icoder, 
@@ -88,7 +93,7 @@ class AdvApp2Var_SysBase {
   Standard_EXPORT static int mgsomsg_(const char *nomprg, 
                                      ftnlen nomprg_len);
   Standard_EXPORT static void miraz_(integer *taille,
-                                    char *adt);
+                                    void *adt);
   Standard_EXPORT static int msifill_(integer *nbintg, 
                                      integer *ivecin,
                                      integer *ivecou);
@@ -98,7 +103,7 @@ class AdvApp2Var_SysBase {
   Standard_EXPORT static int mswrdbg_(const char *ctexte, 
                                      ftnlen ctexte_len);
   Standard_EXPORT static void mvriraz_(integer *taille,
-                                      char *adt);
+                                      void*adt);
   
 };