Fortran Help

  • Fortran
  • Thread starter wellnis20
  • Start date
  • #1
1
0

Main Question or Discussion Point

Hi all, I just started learning computer languages and Im having an extremely difficult time understanding it all. I need to write a function which gives the next power of three after input n.

Logical Function next_power_three(n)
Integer::n,p
if (n<1) then
next_power_three=.false.
return
endif
p=1
do while (.not. p>n)
if (n==p) then
next_power_three=.true.
p=p+1
return
Else
p=3*p
endif
enddo
next_power_three=.false.
endfunction

program test_next_power_three
integer:: is_power_of_three
print *,'02 ->', next_power_three(2)
print *,'03 ->', next_power_three(3)
print *,'28 ->',next_power_three(28)
endprogram

This is what I have, but i cant see where i went wrong. Any help would be greatly appreciated.
 

Answers and Replies

  • #2
1,065
53
Take a look at the reply to your post in Tek-Tips.
 
  • #3
103
0
Can you give some expected output?
 

Related Threads on Fortran Help

  • Last Post
Replies
1
Views
2K
  • Last Post
Replies
2
Views
2K
  • Last Post
Replies
4
Views
2K
  • Last Post
Replies
7
Views
4K
  • Last Post
Replies
1
Views
1K
  • Last Post
Replies
2
Views
2K
  • Last Post
Replies
2
Views
641
  • Last Post
Replies
3
Views
979
  • Last Post
Replies
4
Views
2K
  • Last Post
Replies
3
Views
2K
Top