For Programmers: Free Programming Magazines  


Home > Archive > Fortran > August 2007 > LEN of subroutine variables









You are viewing an archived Text-only version of the thread. To view this thread in it's original format and/or if you want to reply to this thread please [click here]

 

Author LEN of subroutine variables
mrestelli@gmail.com

2007-08-20, 7:10 pm

Hello,
I would like to ask you if the following code is legal (notice the
LEN type parameter of MOD_B_STRING):


module mod_a
implicit none
character(len=100) :: mod_a_string
end module mod_a


module mod_b
use mod_a
implicit none

contains

subroutine mod_b_sub()
character(len=len(trim(mod_a_string))+2)
:: &
mod_b_string

mod_b_string = trim(mod_a_string) // '!!'
write(*,*) mod_b_string

end subroutine mod_b_sub
end module mod_b


program test_string

use mod_a
use mod_b

implicit none

mod_a_string = 'Hello'
call mod_b_sub()

end program test_string


When this code is compiled with gfortran or ifort, it behaves "as
expected", in that it prints Hello!! (no warning even when using all
the debugging options). Also, valgrind shows no errors. With pgf,
however, the code compiles with no errors but at runtime produces a
huge blank output. Here, valgrind complains about "Conditional jump or
move depends on uninitialised value(s)" at CALL MOD_B_SUB().

(more details:
gfortran --version
GNU Fortran 95 (GCC) 4.1.2 (Gentoo 4.1.2)
ifort --version
ifort (IFORT) 9.1 20061101
pgf95 -V
pgf95 6.1-1 32-bit target on x86 Linux)

Thank you!
Marco Restelli

Richard Maine

2007-08-20, 7:10 pm

On Mon, 20 Aug 2007 06:29:51 -0700, mrestelli@gmail.com wrote
(in article <1187616591.093651.68110@k79g2000hse.googlegroups.com> ):

> I would like to ask you if the following code is legal (notice the
> LEN type parameter of MOD_B_STRING):

[code elided]

Yes, that looks fine. It is even ok in f90. (This is an area where things got
progressively more liberal with each version of the standard, but this one
looks ok for f90 and later).

> When this code is compiled with gfortran or ifort, it behaves "as
> expected", in that it prints Hello!! (no warning even when using all
> the debugging options). Also, valgrind shows no errors.


Good.

> With pgf, however,...


I'd suggest a bug report. Pgf isn't the most robust compiler out there. It is
better than it used to be, but still has plenty of room to go.

--
Richard Maine | Good judgement comes from experience;
email: last name at domain . net | experience comes from bad judgement.
domain: summertriangle | -- Mark Twain


________________________________________
________

Hogwasher, Premier News and Mail for OS X
http://www.asar.com/cgi-bin/product.../hogwasher.html
________________________________________
________

Sponsored Links







Also available: Server administration forum archive | Web Design forum archive | Software forum archive | Hardware reviews archive

Copyright 2008 codecomments.com