
412203946
(usa Outra)
Enviado em 09/06/2021 - 19:57h
Olá.
Estou fazendo um programa que lê um arquivo input.dat, e na terceira linha desse arquivo tem 2 dados que eu preciso armazená-los como dois números inteiros. A linha é: ZONE I= 93 J= 15 DATAPACKING=POINT.
Eu preciso armazenar IMAX = 93 e JMAX=15.
O máximo que consegui foi fazer com que o programa leia a terceira linha do arquivo e armazene ela como um character, mas não consigo extrair os valores 93 e 15 e armazená-los separadamente. Segue o início do arquivo completo:
TITLE = "PROJECT "
VARIABLES = "X", "Y"
ZONE I= 93 J= 15 DATAPACKING=POINT
1.00000000E+00 -0.00000000E+00
9.78260870E-01 -4.25330813E-03
9.56521739E-01 -8.31758034E-03
O modo como escrevi o programa, ele retorna IMAX = 0:
implicit none
character(len=100) :: full_line
integer(4) :: i, ndata, stat, lskip, IMAX, JMAX
real, dimension(:), allocatable :: x, y
open (unit=10, file='mesh_parabolic.dat', status='old', action='read')
ndata=0
!Skip header
do lskip = 1,3
read(10,*)
end do
backspace(10)
if (full_line .eq. 'I=') then
read(full_line,*) IMAX
end if
print*, IMAX
stop
Agradeço a ajuda.