/* Copyright (C) 1995 Evgenii Rudnyi, http://Evgenii.Rudnyi.Ru Program bacuy_eq: Computing Phase Diagram of Ba-Cu-Y This software is a copyrighted work licensed under the terms, described in the file "FREE_LICENSE". */ #ifndef _DONLP_ #define _DONLP_ #include "f2c.h" #include "f2clib.h" void memerr(void); extern int singular; struct mem_1 { // real accinf[9600] /* was [300][32] */; real* accinf; mem_1() {accinf = new real[9600]; if (!accinf) memerr();} ~mem_1() {delete accinf;} }; extern mem_1 o6itin1_; #define o6itin1_1 o6itin1_ struct mem_2 { // doublereal gradf[20], gfn, qgf[20], gres[600] /* was [20][30] */, // gresn[30], gphi0[20], gphi1[20]; doublereal *gradf, gfn, *qgf, *gres, *gresn, *gphi0, *gphi1; mem_2() { gradf = new doublereal[20]; if (!gradf) memerr(); qgf = new doublereal[20]; if (!qgf ) memerr(); gres = new doublereal[600]; if (!gres ) memerr(); gresn = new doublereal[30]; if (!gresn) memerr(); gphi0 = new doublereal[20]; if (!gphi0) memerr(); gphi1 = new doublereal[20]; if (!gphi1) memerr(); } ~mem_2() { delete gradf; delete qgf ; delete gres ; delete gresn; delete gphi0; delete gphi1; } }; extern mem_2 o6grd_; #define o6grd_1 o6grd_ struct mem_3 { // doublereal a[400] /* was [20][20] */, b[400] /* was [20][20] */, // b22[400] /* was [20][20] */, dnb[20], dgdgts[20], lam, scalm, // scalm2, matsc; doublereal *a, *b, *b22, *dnb, *dgdgts, lam, scalm, scalm2, matsc; mem_3() { a = new doublereal[400]; if (!a ) memerr(); b = new doublereal[400]; if (!b ) memerr(); b22 = new doublereal[400]; if (!b22 ) memerr(); dnb = new doublereal[20]; if (!dnb ) memerr(); dgdgts = new doublereal[20]; if (!dgdgts) memerr(); } ~mem_3() { delete a ; delete b ; delete b22 ; delete dnb ; delete dgdgts; } }; extern mem_3 o6qn_; #define o6qn_1 o6qn_ struct mem_4 { // doublereal qr[400] /* was [20][20] */, betaq[20], diag[20], cscal[20]; // integer perm[20], perm1[20]; doublereal *qr, *betaq, *diag, *cscal; integer *perm, *perm1; mem_4() { qr = new doublereal[400]; if (!qr ) memerr(); betaq = new doublereal[20]; if (!betaq) memerr(); diag = new doublereal[20]; if (!diag ) memerr(); cscal = new doublereal[20]; if (!cscal) memerr(); perm = new integer [20]; if (!perm ) memerr(); perm1 = new integer [20]; if (!perm1) memerr(); } ~mem_4() { delete qr ; delete betaq ; delete diag ; delete cscal ; delete perm ; delete perm1 ; } }; extern mem_4 o6rdat_; #define o6rdat_1 o6rdat_ struct mem_5 { // doublereal xj[8100] /* was [90][90] */; doublereal *xj; mem_5() {xj = new doublereal[8100]; if (!xj) memerr();} ~mem_5() {delete xj;} }; extern mem_5 dualup1_; #define dualup1_1 dualup1_ struct mem_6 { // doublereal ddual[90], np[90], ud[120], ud1[120]; doublereal *ddual, *np, *ud, *ud1; mem_6() { ddual = new doublereal[90]; if (!ddual) memerr(); np = new doublereal[90]; if (!np ) memerr(); ud = new doublereal[120]; if (!ud ) memerr(); ud1 = new doublereal[120]; if (!ud1 ) memerr(); } ~mem_6() { delete ddual; delete np ; delete ud ; delete ud1 ; } }; extern mem_6 dualup2_; #define dualup2_1 dualup2_ struct mem_7 { // doublereal r[8100] /* was [90][90] */; doublereal *r; mem_7() {r = new doublereal[8100]; if (!r) memerr();} ~mem_7() {delete r;} }; extern mem_7 dualup3_; #define dualup3_1 dualup3_ struct mem_8 { real optite; integer itstep, phase; real runtim; integer ifill; }; extern mem_8 o6itin_; #define o6itin_1 o6itin_ struct mem_9 { doublereal x[20], x0[20], x1[20], d[20], d0[20], dd[20], difx[20], xnorm, x0norm, dnorm, d0norm, sig, sig0, dscal, upsi, upsi0, upsi1, upsist, psi, psi0, psi1, psist, fx, fx0, fx1, fxst, b2n, b2n0, dirder, cosphi; }; extern mem_9 o6xdat_; #define o6xdat_1 o6xdat_ struct mem_10 { logical val[31], gconst[31]; integer gunit[93] /* was [3][31] */; }; extern mem_10 o6gri_; #define o6gri_1 o6gri_ struct mem_11 { logical intakt, inx, std, te0, te1, te2, te3, regul, singul, ident, suplin, eqres, silent, analyt; doublereal alpha, beta, theta, sigsm, sigla, delta, stptrm; }; extern mem_11 o6stpa_; #define o6stpa_1 o6stpa_ struct mem_12 { integer bind[30], bind0[30], violis[1201], delist[31], alist__[31]; }; extern mem_12 o6resi_; #define o6resi_1 o6resi_ struct mem_13 { doublereal res[30], res0[30], res1[30], resst[30], u[30], u0[30], wold[30] , w[30], w1[30], scf, scf0; }; extern mem_13 o6resd_; #define o6resd_1 o6resd_ struct mem_14 { integer n, nh, ng, nr, nres; }; extern mem_14 o6dim_; #define o6dim_1 o6dim_ struct mem_15 { doublereal epsmac, tolmac; }; extern mem_15 o6mpar_; #define o6mpar_1 o6mpar_ struct mem_16 { doublereal del0, del01, del, delmin, tau0, tau, smalld, smallw, rho, rho1, eta, ny, epsx, c1d, c2u, c3dg, scfmax, wfac; integer iterma, ifill1; }; extern mem_16 o6par_; #define o6par_1 o6par_ struct mem_17 { integer clow, cf, cgf, cfincr, cres[30], cgres[30], idum; }; extern mem_17 o6cnt_; #define o6cnt_1 o6cnt_ struct mem_18 { char name[40]; }; extern mem_18 o6id_; #define o6id_1 o6id_ struct mem_19 { doublereal epsdif; }; extern mem_19 o6der_; #define o6der_1 o6der_ struct mem_20 { integer prou, meu; }; extern mem_20 o6io_; #define o6io_1 o6io_ struct mem_21 { doublereal ug[20], og[20], delfac[30]; }; extern mem_21 o6bd_; #define o6bd_1 o6bd_ struct mem_22 { integer nreset; }; extern mem_22 o6rst_; #define o6rst_1 o6rst_ struct mem_23 { doublereal xst[20]; }; extern mem_23 o6stv_; #define o6stv_1 o6stv_ struct mem_24 { doublereal yu[20]; }; extern mem_24 o6acmu_; #define o6acmu_1 o6acmu_ struct mem_25 { doublereal usc[30]; }; extern mem_25 o6sc_; #define o6sc_1 o6sc_ struct mem_26 { doublereal rnorm, rlow; integer ndual, mi, me, iq; }; extern mem_26 dualparm_; #define dualparm_1 dualparm_ extern "C" { int donlp_(void); E_f o6cpu_(integer *idum); int o6tida_(integer *chan); int o6st_(void); int o6fin_(void); int o6info_(integer *icase); int o6sce_(void); int o6bfg2_(void); int o6bfg1_(void); int o6csi_(void); int o6shms_(void); int o6msg_(integer *num); int o6opti_(void); int o6unim_(void); doublereal o6sc1_(integer *i, integer *j, doublereal *a, doublereal *b); doublereal o6sc2_(integer *n, integer *m, integer *j, doublereal *a, doublereal *b); doublereal o6sc3_(integer *n, integer *m, integer *j, doublereal *a, doublereal *b); int o6bupa_(integer *nm, integer *nlow, integer *n, doublereal *al, integer *ix, doublereal *dn, integer *ind); int o6perm_(integer *nm, integer *nlow, integer *n, integer *i8, integer *i9, doublereal *al, integer *ix); int o6e1x1_(integer *nm, integer *n, integer *ipz, doublereal *al, doublereal *dn, integer *ind, doublereal *almax, integer *imax, integer *jmax); int o6e2x2_(integer *nm, integer *n, integer *ipz, doublereal *al, doublereal *dn, integer *ind, doublereal *almax, integer *imax, integer *jmax); int o6buso_(integer *nm, integer *nlow, integer *n, doublereal *a, integer *ix, doublereal *d, doublereal *b, doublereal *x); int o6reg_(integer *nm, integer *nlow, integer *n, doublereal *a, doublereal *d, doublereal *lam, doublereal *rho, integer *ifail); int o6mdru_(doublereal *a, integer *me, integer *ne, integer *ma, integer *na, char *head, integer *lognum, logical *fix, ftnlen head_len); int o6tra_(void); int o6egph_(doublereal *gphi); int o6dec_(integer *nlow, integer *nrl, integer *ifail, integer *case__); int o6ht_(integer *id, integer *incr, integer *is1, integer *is2, integer *m, doublereal *a, doublereal *beta, doublereal *b, doublereal *c); int o6sol_(integer *nlow, integer *nup, doublereal *b, doublereal *x); int o6solt_(integer *nlow, integer *nup, doublereal *b, doublereal *x); int o6fuqp_(void); int o6zup_(doublereal *z); int o6rup_(doublereal *rv); int o6delc_(integer *ai, integer *l); int o6addc_(void); int o6linv_(integer *ndim, integer *n, doublereal *a, integer *ndualm, doublereal *x); int o6buch_(integer *ndim, integer *n, doublereal *a, doublereal *d); doublereal o6dsq1_(doublereal *a, doublereal *b); void gettimeofday_(long *tp, long *tzp); long times_(long *b); int setup_(void); int setup0_(void); int ef_(doublereal *, doublereal *); int egradf_(doublereal *, doublereal *); int eg_(integer *, doublereal *, doublereal *); int egradg_(integer *, doublereal *, doublereal *); int eh_(integer *, doublereal *, doublereal *); int egradh_(integer *, doublereal *, doublereal *); int MAIN__(); } #endif