How Do I Resolve Syntax Errors in My Fortran 90 Tridiagonal System Solver?

  • Thread starter Thread starter jonephy
  • Start date Start date
AI Thread Summary
The discussion revolves around a user seeking help with a Fortran program designed to solve a tridiagonal system of equations. The user is learning Fortran 90 and has shared their code, which contains several syntax errors and logical issues. Key problems identified include incorrect array declarations, duplicated loop variables, and missing "end do" statements. A suggestion was made to modify the array declarations to the correct syntax, but the user reported continuing errors. Participants emphasized the importance of careful code review and self-checking to resolve issues. The user acknowledged the need for diligence in fixing the program.
jonephy
Messages
6
Reaction score
0
Hi
I have written a program in FOTRAN for solving special system called Tridiagonal system
has 5 equation
I'm in the learning stage of FOTRAN 90
and this my program::
Please help me

program triiagonal
implicit none
real, dimension A(5,5),B(5,5),f(5),X(5)
integer::n,i,j,m,k,l,s1,s2
print*,"input the number of element(n)"
read*,n
do i=1,n
do j=1,n+1
print*,"input the matrix a(i,j)"
read*,A(i,j)
end do
end do
m=n*(n-1)/2
do i=2,n
do k=1,n-1
if(A(i,j)/=0)then
do j=1,n+1
A(i,j)=A(i,j)-f(i,k)*A(j,k)
end do
else
do l=i-1,i-1
do j=1,n+1
b(i,j)=a(i,j)
a(i,j)=a(i+1,j)
a(i+1,j)=b(i,j)
end do
end do
end if
do i=n,1,-1
do j=i+1,n
s2=s2+A(i,j)*(j)
end do
s1=a(i,n+1)
x(i)=(s1-s2)/a(i.i)
end program triiagonal


this my error::
C:\Documents and Settings\eXtreme\Desktop\New Folder\ffff\fff.f90
C:\Documents and Settings\eXtreme\Desktop\New Folder\ffff\fff.f90(3): error FOR3852: syntax error detected between DIMENSION and A
C:\Documents and Settings\eXtreme\Desktop\New Folder\ffff\fff.f90(10): error FOR3701: symbol A is not a variable
C:\Documents and Settings\eXtreme\Desktop\New Folder\ffff\fff.f90(18): error FOR3712: symbol A is not an array
C:\Documents and Settings\eXtreme\Desktop\New Folder\ffff\fff.f90(24): error FOR3712: symbol A is not an array
C:\Documents and Settings\eXtreme\Desktop\New Folder\ffff\fff.f90(25): error FOR3712: symbol A is not an array
C:\Documents and Settings\eXtreme\Desktop\New Folder\ffff\fff.f90(29): error FOR3541: duplicated DO index variable - I
C:\Documents and Settings\eXtreme\Desktop\New Folder\ffff\fff.f90(34): error FOR3251: symbol I is not a derived type detected between % and I
C:\Documents and Settings\eXtreme\Desktop\New Folder\ffff\fff.f90(36): error FOR3597: missing 3 END DO statements
C:\Documents and Settings\eXtreme\Desktop\New Folder\ffff\fff.f90(36): error FOR2290: implicit type for X
C:\Documents and Settings\eXtreme\Desktop\New Folder\ffff\fff.f90(36): error FOR2290: implicit type for F
C:\Documents and Settings\eXtreme\Desktop\New Folder\ffff\fff.f90(36): error FOR2290: implicit type for B
C:\Documents and Settings\eXtreme\Desktop\New Folder\ffff\fff.f90(36): error FOR2290: implicit type for A

Your help would be appreciated.
Thanks
 
Technology news on Phys.org
Replace this:
Code:
real, dimension A(5,5),B(5,5),f(5),X(5)
with this:
Code:
real, dimension(5,5) :: A,B
real, dimension(5) :: f,X
and try again.
 
ooooooh no ... the same errors !?
 
please repost source, use code tags
 
Code:
program  tridiagonal	
implicit none 
real, dimension  A(5,5),B(5,5),f(5),X(5)
integer::n,i,j,m,k,l,s1,s2
print*,"input the number of element(n)"
read*,n
do i=1,n
 do j=1,n+1
  print*,"input the matrix a(i,j)"
  read*,A(i,j) 
 end do
end do
  m=n*(n-1)/2
do i=2,n
 do k=1,n-1
 if(A(i,j)/=0)then
 do j=1,n+1
 A(i,j)=A(i,j)-f(i,k)*A(j,k)
 end do
 else
do l=i-1,i-1
 do j=1,n+1
 b(i,j)=a(i,j)
 a(i,j)=a(i+1,j)
 a(i+1,j)=b(i,j)
 end do								  
end do
end if 
do i=n,1,-1
do j=i+1,n
  s2=s2+A(i,j)*(j)
 end do
 s1=a(i,n+1)
 x(i)=(s1-s2)/a(i.i)

end program  tridiagonal
my program in attachment ...
 

Attachments

o.k., so, you did not implement what I suggested...no wonder you are getting the same errors!
 
No No ... This my ... i implemented what you suggested :)
But i am getting the same errors ,,,,,,, so i post the program before Modifying >>
^_^
Please help me ,,,
Bye
 
Then what does your code look like now?
 
jonephy:

please try to be more careful and let it be you who does the double checking of things...we are here to guide you, not to do the work for you.

please double check what you are doing and make sure you implemented the changes I suggested earlier.

also, you have a mess with your do-loops and the loop variables...step back and double check all that; there are also a couple of "end do" missing.
 
  • #10
Thanks all
Ok, i will be more careful
and i will trying to fix all problems in my program
>>>>
Good Bye
 

Similar threads

Replies
4
Views
2K
Replies
7
Views
3K
Replies
2
Views
1K
Replies
16
Views
2K
Replies
5
Views
5K
Replies
8
Views
4K
Replies
2
Views
2K
Back
Top