next up previous contents
Next: Travelling Salesman Problem Up: Salaries Example Previous: Salaries Example

Solution

  PROGRAM salaries_calculation
   IMPLICIT NONE
   INTEGER, DIMENSION(9) :: salaries = &
       (/10500,16140,22300,15960,14150,12180,13230,15760,31000/)
   INTEGER, DIMENSION(9) :: category = (/1,2,3,2,1,1,1,2,3/)
   REAL, DIMENSION(3) :: increment = (/.05,.04,.02/)
   REAL :: sumsal
    sumsal = 0.0
    DO I = 1, 9
     sumsal = sumsal + salaries(I) * increment(category(I))
    END DO
    PRINT*, 'Cost of increase (DO loop method) = ', sumsal
  END PROGRAM salaries_calculation

or, using array notation / intrinsics,

  PROGRAM salaries_calculation2
   IMPLICIT NONE
   INTEGER, DIMENSION(9) :: salaries = &
       (/10500,16140,22300,15960,14150,12180,13230,15760,31000/)
   INTEGER, DIMENSION(9) :: category = (/1,2,3,2,1,1,1,2,3/)
   REAL, DIMENSION(3) :: increment = (/.05,.04,.02/)
   REAL :: sumsal
    sumsal = SUM(salaries * increment(category))
    PRINT*, 'Cost of increase = ', sumsal
  END PROGRAM salaries_calculation2


next up previous contents
Next: Travelling Salesman Problem Up: Salaries Example Previous: Salaries Example

©University of Liverpool, 1997
Thu May 29 10:11:26 BST 1997
Not for commercial use.