c c file: /export/software/puddle0/dems/cumarea.f c Last Modified: 11/19/96 c c Written by: Glenn E. Moglen c c Program calculates the cummulative area histogram c program cumarea character*80 areaifile, trash integer*4 areai(1450, 1450), nx, ny real*4 area(2200000), maxarea igridy = 1450 open (15, file = 'branch.in', form = 'formatted', status = 'old') read (15, 100) trash read (15, 100) trash read (15, 100) areaifile close (15, status = 'keep') call demread (areai, areaifile, nx, ny, igridy, dx, dy) call makevector (areai, area, nx, ny, maxarea) call getprob (area, nx, ny, maxarea) 100 format (a80) end * * * subroutine makevector (areai, area, nx, ny, maxarea) integer*4 areai(1450, 1450), nx, ny real*4 area(2200000), maxarea do j = 1, ny do i = 1, nx index = (j - 1) * nx + i area(index) = areai(j, i) if (area(index) .gt. maxarea) maxarea = area(index) end do end do return end * * * subroutine getprob (area, nx, ny, maxarea) integer*4 a, count, nx, ny real*4 area(2200000), maxarea logical isarea print *, 'Maximum area: ', maxarea print *, 1, 1 do a = 2, int(maxarea) count = 0 isarea = .false. do i = 1, nx * ny if (int(area(i)) .ge. a) count = count + 1 if (int(area(i)) .eq. a) isarea = .true. end do p = float(count) / maxarea if (isarea) print *, a, p end do return end