/* zzaxyy.f -- translated by f2c (version 19961017).
You must link the resulting object file with the libraries:
-lf2c -lm (in that order)
*/
#include "f2c.h"
/* Common Block Declarations */
extern struct {
real xpgmin, ypgmin, xpgmax, ypgmax, xclbot, yclbot, xcltop, ycltop, xbot,
ybot, xtop, ytop, xmin, ymin, xmax, ymax;
integer ixcoor, iycoor;
real alphxx, betaxx, alphyy, betayy, tmajx, tminx, tmajy, tminy;
integer majrx, minrx, majry, minry, isizx, isizy;
real xphold, yphold;
} zzzplt_;
#define zzzplt_1 zzzplt_
extern struct {
real xphmax, yphmax;
integer ixpmax, iypmax;
real xpscal, ypscal;
integer iflip, nplotr;
char cfile[64];
} zzpltr_;
#define zzpltr_1 zzpltr_
/* Table of constant values */
static integer c__1 = 1;
static integer c__0 = 0;
/* Subroutine */ int zzaxyy_(real *x, real *y1, real *y2, integer *iside,
integer *ilab)
{
/* Format strings */
static char fmt_101[] = "(\0021.E\002,i2)";
static char fmt_102[] = "(\0021.E\002,i3)";
/* System generated locals */
integer i__1, i__2, i__3;
real r__1, r__2;
static char equiv_0[10];
/* Builtin functions */
integer s_wsfi(icilist *), do_fio(integer *, char *, ftnlen), e_wsfi(void)
;
/* Local variables */
static integer ndec, nlab;
#define buf10 (equiv_0)
static real xlab, temp;
static integer nchar;
static real dylab, csize, dycsz;
static integer il;
static real yv, xx, yy;
extern /* Subroutine */ int zzlgin_(real *, real *, integer *);
static integer nl1, nl2, npower, nshift;
extern /* Subroutine */ int zzlabl_(real *, char *, integer *, ftnlen),
pwritf_(real *, real *, char *, integer *, integer *, integer *,
integer *, ftnlen), zzlogy_(real *, real *, real *, integer *,
real *, real *), zzliny_(real *, real *, real *, integer *, real *
, integer *, real *);
static real yv1, yv2, yy1, yy2;
extern /* Subroutine */ int zzphys_(real *, real *);
#define buf (equiv_0)
static real dyv;
/* Fortran I/O blocks */
static icilist io___23 = { 0, buf10, 0, fmt_101, 10, 1 };
static icilist io___24 = { 0, buf10, 0, fmt_102, 10, 1 };
/* Draw an axis in the y-direction from (X,Y1) to (X,Y2) [user coords]
*/
/* with the specified divisions and tics. If ISIDE is positive, the */
/* tic marks appear in the +x direction and the labels in the -x */
/* direction from the axis. If ILAB = 0, no labels are drawn. */
/* .......................................................................
*/
/* +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
*/
/* Internal Data for PLOTPAK */
if (*y1 == *y2) {
goto L8000;
}
yv1 = dmin(*y1,*y2);
yv2 = dmax(*y1,*y2);
/* For log y-axis, must push lower value of Y down and upper value of */
/* Y up to powers of 10. */
if (zzzplt_1.iycoor < 0) {
zzlgin_(&yv1, &yv1, &nl1);
temp = yv2;
zzlgin_(&temp, &yv2, &nl2);
if (yv2 <= temp * .999f) {
yv2 *= 10.f;
++nl2;
}
ndec = nl2 - nl1;
if (ndec <= 0) {
goto L8000;
}
}
/* .......................................................................
*/
/* Convert to physical coordinates and plot axes */
yy1 = yv1;
yy2 = yv2;
xx = *x;
zzphys_(&temp, &yy1);
zzphys_(&xx, &yy2);
if (zzzplt_1.iycoor >= 0) {
r__1 = *iside * zzzplt_1.tmajy;
r__2 = *iside * zzzplt_1.tminy;
zzliny_(&xx, &yy1, &yy2, &zzzplt_1.majry, &r__1, &zzzplt_1.minry, &
r__2);
} else {
r__1 = *iside * zzzplt_1.tmajy;
r__2 = *iside * zzzplt_1.tminy;
zzlogy_(&xx, &yy1, &yy2, &ndec, &r__1, &r__2);
}
/* .......................................................................
*/
/* Plot labels */
if (*ilab == 0) {
goto L8000;
}
if (zzzplt_1.iycoor >= 0) {
nlab = zzzplt_1.majry;
} else {
nlab = ndec;
}
/* Calculate the max number of characters needed for labels into NSHIFT.
*/
if (zzzplt_1.iycoor < 0) {
/* Log-axis: 1.E+x or 1.E+xx are the possibilities */
/* Computing MAX */
i__1 = abs(nl1), i__2 = abs(nl2);
npower = max(i__1,i__2);
if (npower < 10) {
nshift = 5;
} else {
nshift = 6;
}
} else {
/* Linear-axis: calculate all labels and find the longest */
nshift = 1;
dyv = (yv2 - yv1) / nlab;
i__1 = nlab;
for (il = 0; il <= i__1; ++il) {
yv = yv1 + il * dyv;
/* Computing MIN */
r__1 = dabs(yv1), r__2 = dabs(yv2);
if (dabs(yv) <= dmin(r__1,r__2) * 1e-5f) {
yv = 0.f;
}
zzlabl_(&yv, buf, &nchar, 1L);
nshift = max(nshift,nchar);
/* L50: */
}
}
dylab = (yy2 - yy1) / nlab;
csize = zzzplt_1.isizy * .0011f * (zzzplt_1.xpgmax - zzzplt_1.xpgmin);
xlab = xx - csize * *iside * nshift;
dycsz = csize * .5f;
if (dylab < 0.f) {
dycsz = -dycsz;
}
i__1 = nlab;
for (il = 0; il <= i__1; ++il) {
if (zzzplt_1.iycoor >= 0) {
yv = yv1 + il * dyv;
/* Computing MIN */
r__1 = dabs(yv1), r__2 = dabs(yv2);
if (dabs(yv) <= dmin(r__1,r__2) * 1e-5f) {
yv = 0.f;
}
zzlabl_(&yv, buf, &nchar, 1L);
} else {
npower = nl1 + il;
if (abs(npower) < 10) {
s_wsfi(&io___23);
do_fio(&c__1, (char *)&npower, (ftnlen)sizeof(integer));
e_wsfi();
nchar = 5;
} else {
s_wsfi(&io___24);
do_fio(&c__1, (char *)&npower, (ftnlen)sizeof(integer));
e_wsfi();
nchar = 6;
}
if (*(unsigned char *)&buf[3] == ' ') {
*(unsigned char *)&buf[3] = '+';
}
}
if (il == 0) {
yy = yy1 + dycsz;
} else {
yy = yy1 + il * dylab;
if (il == nlab) {
yy -= dycsz;
}
}
i__2 = -nchar;
i__3 = -(*iside);
pwritf_(&xlab, &yy, buf, &i__2, &zzzplt_1.isizy, &c__0, &i__3, 1L);
/* L100: */
}
/* .......................................................................
*/
L8000:
return 0;
} /* zzaxyy_ */
#undef buf
#undef buf10
syntax highlighted by Code2HTML, v. 0.9.1