C SUBROUTINE draw_axes(xmin,xmax,ymin,ymax) IMPLICIT NONE REAL x0,y0,xmin,xmax,ymin,ymax,dx,dy,tx,ty,x,y INTEGER IR_, itick, ntick ntick = 10 ! number of tick marks * distance between tick marks on x-axis dx = (xmax - xmin)/ntick * distance between tick marks on y-axis dy = (ymax - ymin)/ntick * include margin CALL GWindow(IR_, xmin - dx, ymin - dy, xmax + dx, ymax + dy) x0 = max(0.0,xmin) IF(ymin*ymax .LT. 0) then y0 = 0 ELSE y0 = ymin END IF CALL GWline(IR_, xmin, y0, xmax, y0) ! horizontal axis CALL GWline(IR_, x0, ymin, x0, ymax) ! vertical axis tx = 0.1*dy ! size of tick mark ty = 0.1*dx DO itick = 0, ntick x = xmin + itick*dx CALL GWline(IR_, x, y0 - tx, x, y0 + tx) * draw ticks on x axis y = ymin + itick*dy CALL GWline(IR_, x0 - ty, y, x0 + ty, y) * draw ticks on y axis ENDDO END C SUBROUTINE compute_aspect_ratio(r,x,y) IMPLICIT NONE REAL aspect_ratio, m, size, r, x, y INTEGER IR_, px, py m = 0.1*r ! margin size = r + m * px, py: # pixels in horizonal and vertical direction CALL GWsize(IR_, 7, px,py) IF(px .GT. py) THEN aspect_ratio = REAL(px)/py x = aspect_ratio*size y = size ELSE aspect_ratio = REAL(py)/px x = size y = aspect_ratio*size END IF END