Abrindo vários arquivos no FORTRAN (int2char) PDF Imprimir E-mail
Escrito por Administrator   
Qua, 10 de Setembro de 2008 11:14

Para quem é iniciante em FORTRAN e precisa trabalhar com simulações que envolvem a escrita de dados em vários arquivos diferentes.
O GNUscience desenvolveu uma subrotina para facilitar esta tarefa:


!------------------------------------------------------------------------------
subroutine int2char(x,string)
  !transforma integer em character + zeros
  !autor: www.GNUscience.org

  !input
  !x      => integer

  !output
  !string => character*10

  implicit none
  character aux*9,string*10,xchar*10
  integer pos_char,x

  aux="000000000";pos_char=0

  write(xchar,'(I10)') x
  pos_char=scan(xchar," ",back=.true.)
  string=aux(1:pos_char)//xchar((pos_char+1):10)

end subroutine
!------------------------------------------------------------------------------


A seguir um exemplo .f90 de como a subrotina int2char pode ser utilizada:


!------------------------------------------------------------------------------
!Exemplo int2char www.gnuscience.org
program int2char_GNUscience
character string*10
integer t

t=1

call int2char(t,string)
open(1,file="file"//string//".dat")
  write(1,*) "exemplo int2char www.GNUscience.org"
close(1)
end program int2char_GNUscience
!------------------------------------------------------------------------------
subroutine int2char(x,string)
  !transforma integer em character + zeros
  !autor: www.GNUscience.org

  !input
  !x      => integer

  !output
  !string => character*10

  implicit none
  character aux*9,string*10,xchar*10
  integer pos_char,x

  aux="000000000";pos_char=0

  write(xchar,'(I10)') x
  pos_char=scan(xchar," ",back=.true.)
  string=aux(1:pos_char)//xchar((pos_char+1):10)

end subroutine
!------------------------------------------------------------------------------

No exemplo int2char.f90 ainda podemos ver como utilizar várias variáveis
caracter para montar o nome do arquivo de saída, usando as "//".

O mesmo procedimento pode se trabalhar com arquivos já existentes! Note que
para a int2char você consegue abrir no máximo 9999999999 aquivos!

key words: int2char, fortran, write, read, output file, input file, linux

LAST_UPDATED2
 
Banner
Copyright © 2010 GNUSCIENCE.ORG. Todos os direitos reservados.
Joomla! é um Software Livre com licença GNU/GPL v2.0.