home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Professional / OS2PRO194.ISO / os2 / prgramer / adaptor / examples / fakul / fakul1.f < prev    next >
Text File  |  1993-06-28  |  945b  |  42 lines

  1.       Program fakul
  2. CC
  3. CC    Fakultaetsprogram, FORTRAN 90 Version
  4. CC
  5.       integer max
  6.       integer feld(:), carry(:)
  7.       integer I,K,N
  8.       integer length
  9.       integer s, lastval
  10.  
  11.       print *, 'Input value N !'
  12.       read *, N
  13.       print *, 'Input upper limit for size !'
  14.       read *, max
  15.  
  16.       allocate (feld(1:max), carry(1:max))
  17.  
  18.       feld = 0
  19.       carry = 0
  20.       feld(1)=1
  21.       length = 1
  22.  
  23.       do K=N,1,-1
  24. !hpf$   independent, local_access
  25.         do I = 1, length
  26.          feld(i)  = (feld(i) + carry(i))*K
  27.          carry(i) = feld(i) / 65536
  28.          feld(i)  = feld(i) - carry(i) * 65536
  29.         end do
  30.         if (carry(length) .NE. 0) length = length + 1
  31.         carry = cshift (carry,1,-1)
  32.       end do
  33.      
  34.       lastval = feld(length)
  35.       s = sum (feld)
  36.       print *, 'Size        = ', length
  37.       print *, 'Lastval     = ', lastval
  38.       print *, 'Control sum = ', s
  39.       deallocate (carry, feld)
  40.       end
  41.  
  42.