|
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 |