integer ilong;
intptr_t iofwr;
doublereal* wrkar = 0;
+ doublereal* wrkar_off;
integer iszwr;
integer ibb, ier = 0;
integer isz1, isz2, isz3, isz4;
- intptr_t ipt1, ipt2, ipt3, ipt4;
+ intptr_t ipt1, ipt2, ipt3;
if (ier > 0) {
goto L9013;
}
- ipt1 = iofwr;
- ipt2 = ipt1 + isz1;
- ipt3 = ipt2 + isz2;
- ipt4 = ipt3 + isz3;
+ wrkar_off = reinterpret_cast<double*>(iofwr * sizeof(double));
+ ipt1 = isz1;
+ ipt2 = ipt1 + isz2;
+ ipt3 = ipt2 + isz3;
if (*iordru >= 0 && *iordru <= 2) {
/* --- Return 2*(IORDRU+1) coeff of 2*(IORDRU+1) polynoms of Hermite
--- */
- AdvApp2Var_ApproxF2var::mma1her_(iordru, &wrkar[ipt1], iercod);
+ AdvApp2Var_ApproxF2var::mma1her_(iordru, wrkar_off, iercod);
if (*iercod > 0) {
goto L9100;
}
/* ---- Subract discretizations of polynoms of constraints
---- */
- mma2cd3_(ndimen, nbpntu, &urootl[1], nbpntv, iordru, &sotbu1[1], &
- sotbu2[1], &ditbu1[1], &ditbu2[1], &wrkar[ipt3], &wrkar[ipt1],
- &sosotb[sosotb_offset], &soditb[soditb_offset], &disotb[
- disotb_offset], &diditb[diditb_offset]);
+ mma2cd3_(ndimen, nbpntu, &urootl[1], nbpntv, iordru, &sotbu1[1],
+ &sotbu2[1], &ditbu1[1], &ditbu2[1], &wrkar_off[ipt2], wrkar_off,
+ &sosotb[sosotb_offset], &soditb[soditb_offset],
+ &disotb[disotb_offset], &diditb[diditb_offset]);
}
if (*iordrv >= 0 && *iordrv <= 2) {
/* --- Return 2*(IORDRV+1) coeff of 2*(IORDRV+1) polynoms of Hermite
--- */
- AdvApp2Var_ApproxF2var::mma1her_(iordrv, &wrkar[ipt2], iercod);
+ AdvApp2Var_ApproxF2var::mma1her_(iordrv, &wrkar_off[ipt1], iercod);
if (*iercod > 0) {
goto L9100;
}
/* ---- Subtract discretisations of polynoms of constraint
---- */
- mma2cd2_(ndimen, nbpntu, nbpntv, &vrootl[1], iordrv, &sotbv1[1], &
- sotbv2[1], &ditbv1[1], &ditbv2[1], &wrkar[ipt4], &wrkar[ipt2],
- &sosotb[sosotb_offset], &soditb[soditb_offset], &disotb[
- disotb_offset], &diditb[diditb_offset]);
+ mma2cd2_(ndimen, nbpntu, nbpntv, &vrootl[1], iordrv, &sotbv1[1],
+ &sotbv2[1], &ditbv1[1], &ditbv2[1], &wrkar_off[ipt3], &wrkar_off[ipt1],
+ &sosotb[sosotb_offset], &soditb[soditb_offset],
+ &disotb[disotb_offset], &diditb[diditb_offset]);
}
/* --------------- Subtract constraints of corners ----------------
if (*iordru >= 0 && *iordrv >= 0) {
mma2cd1_(ndimen, nbpntu, &urootl[1], nbpntv, &vrootl[1], iordru,
- iordrv, &contr1[contr1_offset], &contr2[contr2_offset], &
- contr3[contr3_offset], &contr4[contr4_offset], &wrkar[ipt3], &
- wrkar[ipt4], &wrkar[ipt1], &wrkar[ipt2], &sosotb[
- sosotb_offset], &soditb[soditb_offset], &disotb[disotb_offset]
- , &diditb[diditb_offset]);
+ iordrv, &contr1[contr1_offset], &contr2[contr2_offset],
+ &contr3[contr3_offset], &contr4[contr4_offset], &wrkar_off[ipt2],
+ &wrkar_off[ipt3], wrkar_off, &wrkar_off[ipt1],
+ &sosotb[sosotb_offset], &soditb[soditb_offset],
+ &disotb[disotb_offset], &diditb[diditb_offset]);
}
goto L9999;
logical ldbg;
intptr_t iofwr;
doublereal* wrkar = 0;
+ doublereal* wrkar_off;
integer iszwr;
integer ier;
integer isz1, isz2, isz3, isz4, isz5, isz6, isz7;
- intptr_t ipt1, ipt2, ipt3, ipt4, ipt5, ipt6, ipt7;
+ intptr_t ipt1, ipt2, ipt3, ipt4, ipt5, ipt6;
iszwr = isz1 + isz2 + isz3 + isz4 + isz5 + isz6 + isz7;
AdvApp2Var_SysBase anAdvApp2Var_SysBase;
anAdvApp2Var_SysBase.mcrrqst_(&c__8, &iszwr, wrkar, &iofwr, &ier);
+ wrkar_off = reinterpret_cast<double*> (iofwr * sizeof(double));
if (ier > 0) {
goto L9013;
}
- ipt1 = iofwr;
- ipt2 = ipt1 + isz1;
- ipt3 = ipt2 + isz2;
- ipt4 = ipt3 + isz3;
- ipt5 = ipt4 + isz4;
- ipt6 = ipt5 + isz5;
- ipt7 = ipt6 + isz6;
+ ipt1 = isz1;
+ ipt2 = ipt1 + isz2;
+ ipt3 = ipt2 + isz3;
+ ipt4 = ipt3 + isz4;
+ ipt5 = ipt4 + isz5;
+ ipt6 = ipt5 + isz6;
/* ----------------- Return Gauss coefficients of integration ----------------
*/
- AdvApp2Var_ApproxF2var::mmapptt_(ndjacu, nbpntu, iordru, &wrkar[ipt1], iercod);
+ AdvApp2Var_ApproxF2var::mmapptt_(ndjacu, nbpntu, iordru, wrkar_off, iercod);
if (*iercod > 0) {
goto L9999;
}
- AdvApp2Var_ApproxF2var::mmapptt_(ndjacv, nbpntv, iordrv, &wrkar[ipt2], iercod);
+ AdvApp2Var_ApproxF2var::mmapptt_(ndjacv, nbpntv, iordrv, &wrkar_off[ipt1], iercod);
if (*iercod > 0) {
goto L9999;
}
/* ------------------- Return max polynoms of Jacobi ------------
*/
- AdvApp2Var_ApproxF2var::mma2jmx_(ndjacu, iordru, &wrkar[ipt5]);
- AdvApp2Var_ApproxF2var::mma2jmx_(ndjacv, iordrv, &wrkar[ipt6]);
+ AdvApp2Var_ApproxF2var::mma2jmx_(ndjacu, iordru, &wrkar_off[ipt5]);
+ AdvApp2Var_ApproxF2var::mma2jmx_(ndjacv, iordrv, &wrkar_off[ipt5]);
/* ------ Calculate the coefficients and their contribution to the error ----
*/
mma2ce2_(numdec, ndimen, nbsesp, &ndimse[1], ndminu, ndminv, ndguli,
- ndgvli, ndjacu, ndjacv, iordru, iordrv, nbpntu, nbpntv, &epsapr[1]
- , &sosotb[sosotb_offset], &disotb[disotb_offset], &soditb[
- soditb_offset], &diditb[diditb_offset], &wrkar[ipt1], &wrkar[ipt2]
- , &wrkar[ipt5], &wrkar[ipt6], &wrkar[ipt7], &wrkar[ipt3], &wrkar[
- ipt4], &patjac[patjac_offset], &errmax[1], &errmoy[1], ndegpu,
+ ndgvli, ndjacu, ndjacv, iordru, iordrv, nbpntu, nbpntv, &epsapr[1],
+ &sosotb[sosotb_offset], &disotb[disotb_offset], &soditb[soditb_offset],
+ &diditb[diditb_offset], wrkar_off, &wrkar_off[ipt1],
+ &wrkar_off[ipt4], &wrkar_off[ipt5], &wrkar_off[ipt6], &wrkar_off[ipt2],
+ &wrkar_off[ipt3], &patjac[patjac_offset], &errmax[1], &errmoy[1], ndegpu,
ndegpv, itydec, iercod);
if (*iercod > 0) {
goto L9999;
integer ideb1, ibid1, ibid2, ncfja, ndgre, ilong,
ndwrk;
doublereal* wrkar = 0;
+ doublereal* wrkar_off;
integer nupil;
intptr_t iofwr;
doublereal uvpav[4] /* was [2][2] */;
integer ncb1;
doublereal eps3;
integer isz1, isz2, isz3, isz4, isz5;
- intptr_t ipt1, ipt2, ipt3, ipt4, ipt5,iptt, jptt;
+ intptr_t ipt1, ipt2, ipt3, ipt4,iptt, jptt;
/* **********************************************************************
*/
ndwrk = isz1 + isz2 + isz3 + isz4 + isz5;
anAdvApp2Var_SysBase.mcrrqst_(&c__8, &ndwrk, wrkar, &iofwr, &ier);
+ wrkar_off = reinterpret_cast<double*>(iofwr * sizeof(double));
if (ier > 0) {
goto L9013; }
/* --> For the parameters of discretisation (NBROOT+2 extremities). */
- ipt1 = iofwr;
/* --> For the points of discretisation FPNTAB(NDIMEN,NBROOT+2), */
/* FPNTAB(NBROOT,2*(IORDRE+1)) and for WRKAR of MMAPCMP. */
- ipt2 = ipt1 + isz1;
+ ipt1 = isz1;
/* --> For the polynoms of Hermit */
- ipt3 = ipt2 + isz2;
+ ipt2 = ipt1 + isz2;
/* --> For the Gauss coeff of integration. */
- ipt4 = ipt3 + isz3;
+ ipt3 = ipt2 + isz3;
/* --> For the curve in Jacobi. */
- ipt5 = ipt4 + isz4;
+ ipt4 = ipt3 + isz4;
/* ------------------ Initialisation of management of cuts ---------
*/
/* -------------------- Normalization of parameters -------------------- */
- mma1nop_(nbroot, &rootlg[1], uvpav, isofav, &wrkar[ipt1], &ier);
+ mma1nop_(nbroot, &rootlg[1], uvpav, isofav, wrkar_off, &ier);
if (ier > 0) {
goto L9100;
}
/* -------------------- Discretisation of FONCNP ------------------------ */
- mma1fdi_(ndimen, uvpav, foncnp, isofav, tconst, nbroot, &wrkar[ipt1],
- iordre, ideriv, &wrkar[ipt2], &somtab[(ncb1 * somtab_dim2 + 1) *
+ mma1fdi_(ndimen, uvpav, foncnp, isofav, tconst, nbroot, wrkar_off,
+ iordre, ideriv, &wrkar_off[ipt1], &somtab[(ncb1 * somtab_dim2 + 1) *
somtab_dim1], &diftab[(ncb1 * diftab_dim2 + 1) * diftab_dim1], &
contr1[(ncb1 * contr1_dim2 + 1) * contr1_dim1 + 1], &contr2[(ncb1
* contr2_dim2 + 1) * contr2_dim1 + 1], iercod);
contr1_dim2 + 1) * contr1_dim1 + 1], &contr2[(ncb1 *
contr2_dim2 + 1) * contr2_dim1 + 1], &somtab[(ncb1 *
somtab_dim2 + 1) * somtab_dim1], &diftab[(ncb1 * diftab_dim2
- + 1) * diftab_dim1], &wrkar[ipt2], &wrkar[ipt3], &ier);
+ + 1) * diftab_dim1], &wrkar_off[ipt1], &wrkar_off[ipt2], &ier);
if (ier > 0) {
goto L9100;
}
*/
mma1jak_(ndimen, nbroot, iordre, ndgjac, &somtab[(ncb1 * somtab_dim2 + 1)
- * somtab_dim1], &diftab[(ncb1 * diftab_dim2 + 1) * diftab_dim1], &
- wrkar[ipt4], &wrkar[ipt5], &ier);
+ * somtab_dim1], &diftab[(ncb1 * diftab_dim2 + 1) * diftab_dim1],
+ &wrkar_off[ipt3], &wrkar_off[ipt4], &ier);
if (ier > 0) {
goto L9100;
}
if (*iordre >= 0) {
mma1cnt_(ndimen, iordre, &contr1[(ncb1 * contr1_dim2 + 1) *
contr1_dim1 + 1], &contr2[(ncb1 * contr2_dim2 + 1) *
- contr2_dim1 + 1], &wrkar[ipt3], ndgjac, &wrkar[ipt5]);
+ contr2_dim1 + 1], &wrkar_off[ipt2], ndgjac, &wrkar_off[ipt4]);
}
/* **********************************************************************
/* **********************************************************************
*/
- mma1fer_(ndimen, nbsesp, &ndimse[1], iordre, ndgjac, &wrkar[ipt5], ncflim,
- &epsapr[1], &wrkar[ipt2], &errmax[ncb1 * errmax_dim1 + 1], &
+ mma1fer_(ndimen, nbsesp, &ndimse[1], iordre, ndgjac, &wrkar_off[ipt4], ncflim,
+ &epsapr[1], &wrkar_off[ipt1], &errmax[ncb1 * errmax_dim1 + 1], &
errmoy[ncb1 * errmoy_dim1 + 1], &ncoeff[ncb1], &ier);
if (ier > 0) {
goto L9100;
AdvApp2Var_MathBase::mmapcmp_((integer*)ndimen,
&ncfja,
&ncoeff[ncb1],
- &wrkar[ipt5],
- &wrkar[ipt2]);
+ &wrkar_off[ipt4],
+ &wrkar_off[ipt1]);
/*pkv t*/
ilong = *ndimen * *ncflim;
- AdvApp2Var_SysBase::mvriraz_(&ilong, &wrkar[ipt5]);
+ AdvApp2Var_SysBase::mvriraz_(&ilong, &wrkar_off[ipt4]);
/* -> Passage to canonic base (-1,1) (result in WRKAR(IPT5)).
*/
ndgre = ncoeff[ncb1] - 1;
i__1 = *ndimen;
for (nd = 1; nd <= i__1; ++nd) {
- iptt = ipt2 + ((nd - 1) << 1) * (ndgre / 2 + 1);
- jptt = ipt5 + (nd - 1) * ncoeff[ncb1];
- AdvApp2Var_MathBase::mmjacan_(iordre, &ndgre, &wrkar[iptt], &wrkar[jptt]);
+ iptt = ipt1 + ((nd - 1) << 1) * (ndgre / 2 + 1);
+ jptt = ipt4 + (nd - 1) * ncoeff[ncb1];
+ AdvApp2Var_MathBase::mmjacan_(iordre, &ndgre, &wrkar_off[iptt], &wrkar_off[jptt]);
/* L400: */
}
/* -> Store the calculated curve */
ibid1 = 1;
- AdvApp2Var_MathBase::mmfmca8_(&ncoeff[ncb1], ndimen, &ibid1, ncflim, ndimen, &ibid1, &
- wrkar[ipt5], &courbe[(ncb1 * courbe_dim2 + 1) * courbe_dim1 +
+ AdvApp2Var_MathBase::mmfmca8_(&ncoeff[ncb1], ndimen, &ibid1, ncflim, ndimen, &ibid1,
+ &wrkar_off[ipt4], &courbe[(ncb1 * courbe_dim2 + 1) * courbe_dim1 +
1]);
/* -> Before normalization of constraints on (-1,1), recalculate */