Solving Fortran Error on Pascal's Triangle Program

  • Context: Fortran 
  • Thread starter Thread starter Tubs
  • Start date Start date
  • Tags Tags
    Error Fortran
Join the discussion
Ask a follow-up here, or get your own question answered by working scientists, mathematicians and engineers — people, not an autocomplete.
Real named experts · corrections over time · the nuance an AI answer skips
2 replies · 4K views
Tubs
Messages
20
Reaction score
0
I am trying to write a fortran program to take an integer n and print out the first n rows of Pascal's triangle. The code I have so far:

PROGRAM PascalTriangle
IMPLICIT NONE
INTEGER i, n, j, ktemp, ktemp1, ktemp2, ktemp3, ktemp4, ktemp5
WRITE(6,*), "Enter a positive integer n:> "

READ(5,*) n

do 10 i = 1, n
do 20 j = 1, i
ktemp1 = FACT(i)
ktemp2 = FACT(j)
ktemp3 = i - j
ktemp4 = FACT(ktemp3)
ktemp = ktemp1 / ktemp2 * ktemp4
write(*), ktemp
20 continue
10 continue
STOP
END

FUNCTION FACT(N)
FACT=1
DO 30 J=2,N
FACT=FACT*J
30 CONTINUE
RETURN
END

Whats really confusing me is that the compiler throws a single error at the ktemp1 = FACT(i) line, stating that its an invalid declaration of or reference to symbol FACT. It looks like it should be a simple fix but I can't seem to get around the error. Any help is greatly appreciated.
 
Physics news on Phys.org
Try using a local variable to hold the intermediate values of "fact" and only assigning it to the functions return value once at the completion of the function.


Code:
function fact(n)
tmpfact :: integer
tmpfact = 1 
do 30 j-2,n
    tmpfact = tmpfact * j
30 continue
fact=tmpfact
return