Fortran - Fortran. intent

 
Vista:

Fortran. intent

Publicado por Martin (1 intervención) el 03/06/2012 21:14:58
Soy un usuario inicial de fortran (por motivos de la facultad comenze a utilizarlo). Estoy haciendo un tp en el que tengo que usar varias subrutinas y al querer declarar algunas variables como de salida, me tira un error: "Error: Syntax error, found '(' when expecting one of: ::
type, intent(OUT) :: region" y no encuentro la forma correcta de expresarlo. La version que estoy utilizando es la 6.1.
Les dejo el programa por si les sirve de algo
program tp2
implicit none
character*1 opc
write(*,*)"Elija la opcion deseada y luego escriba la letra correspondiente"
write(*,*)"P.- Promedio de lluvia por región"
write(*,*)"L.- Mes/es de menor lluvia entre todas las regiones"
write(*,*)"R.-Regiones"
write(*,*)"F.- Fin"
read(*,*) opc
select case(opc)
case ("p")
call opcion_p
case("l")
case("r")
case("f")
end select
end program


subroutine leer_lluvia
integer mes
integer m
character*3 cod_region
type lluvia
character*3 cod_region
integer mes
real mm
end type
type (lluvia) c(1000)
!intent(OUT) lluvia,m
m=0
open(4,file="lluvia_reg.dat", action="read")
do while (.not. eof(4))
m=m+1
read(4,"(a3,f7.2,i4)") c(m)%cod_region, c(m)%mm, c(m)%mes
end do
close(4)
end subroutine leer_lluvia

subroutine leer_region
integer categoria
character*3 cod_region
character*25 nombre
type region
character*3 cod_region
integer categoria
character*25 nombre
end type
type (region) v(1000)
type, intent(OUT) :: region
w=0
open(5,file="regiones.dat",action="read")
do while (.not. eof(5))
w=w+1
read(5,"(a3,a25,i4)") v(w)%cod_region, v(w)%nombre, v(w)%categoria
end do
close(5)
end subroutine leer_region

subroutine opcion_p
integer h,o
intent(in) region
call leer_lluvia
call leer_region
o=0
write(*,*)"Region", " Promedio"
do h=1,w
prom=0
acum=0
if ((v(h)%cod_region)=(c(m)%cod_region)) then
acum=acum+(c(m)%mm)
prom=acum/12
else
o=o+1
write(*,*) v(h)%nombre, prom
end if
end do
end subroutine opcion_p
El objetivo de la opcion p es mostrar el promedio de la lluvia caida en las distintas regiones. Los nombres de las regiones estan en un archivo y la lluvia caida por mes en cada region, en otro. Los archivos se relacionan por el cod_region. Cualquier duda, consulten por favor.
gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder