This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug fortran/18022] New: problem with structure and calling a function
- From: "gruel at astro dot ufl dot edu" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 15 Oct 2004 19:01:55 -0000
- Subject: [Bug fortran/18022] New: problem with structure and calling a function
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
there are a bug when you mix structure and function. Only the first part of the
structure seems to act correctly. The best thing is to try this sample:
The tab and the pts must be equal in their components and it's not the case.
I saw another things I don't like (even if I think that the norm required
nothing), it's the initial value of a tab: the majorities of the value are 0 but
sometimes it's random, I'll prefer to have all the value random (you have no
choice to initialize all you're variable) or (better I think) to have all the
value equal at 0.
Thanks,
Nicolas
program test_bug
implicit none
character(len=20), dimension(4,2) :: tab_c
real,dimension(4,2) :: tab
integer :: i,j
type :: point
real :: x,y
end type point
type(point), dimension(4) :: pts
tab_c(:,1)(:) = (/'1','2','3','4'/)
tab_c(:,2)(:) = (/'2','3','4','5'/)
print*, tab_c
do i=1,2
tab(:,i) = char2real_1d(tab_c(:,i))
end do
pts%x = char2real_1d(tab_c(:,1))
pts%y = char2real_1d(tab_c(:,2))
print*, "pts ",pts
print*, "tab ", tab
contains
function char2real_1d (tab_c,error) result (tab_r)
character(len=*), dimension(:), intent(in) :: tab_c
real, intent(in), optional :: error
real, dimension(size(tab_c)) :: tab_r
integer :: i
real:: err
if (.not. (present(error))) then
err = 9999.99
else
err = error
end if
do i=1,size(tab_c)
if (verify(trim(tab_c(i)),"0123456789-+.Ee " ) == 0) then
read (unit=tab_c(i),fmt=*) tab_r(i)
else
tab_r (i) = err
end if
end do
end function char2real_1d
end program test_bug
--
Summary: problem with structure and calling a function
Product: gcc
Version: 4.0.0
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: gruel at astro dot ufl dot edu
CC: gcc-bugs at gcc dot gnu dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18022