MFIX  2016-1
get_values.f
Go to the documentation of this file.
1 ! program test; call tester; end program test
2 
3  subroutine get_values_tester
4  implicit none
5 
6  integer :: i
7  double precision :: value1 , value2 , value3
8  character(len=81) :: line
9 
10  open (unit=10,file='BURCAT.THR',status='old')
11  do i = 1,9765
12  read (10,'(a80)') line
13  end do
14 
15  write (*,'(1x,a80)') line
16 
17  call get_values(line,value1,value2,value3)
18 
19  write (*,*) value1
20  write (*,*) value2
21  write (*,*) value3
22 
23  stop
24  end subroutine get_values_tester
25 
26 
27  subroutine get_values(line,value1,value2,value3)
28 
29  implicit none
30 
31  character(*) :: line
32  character(len=80) :: tokens(80)
33  logical :: bSpace
34  integer :: nTokens , start , i
35  double precision :: value1 , value2 , value3
36 
37  bspace = .false.
38  ntokens = 0
39  start = 1
40 
41  do i = 1,len(line)
42  if (line(i:i).eq.char(9) .or. line(i:i).eq.char(32)) then
43  if (.not.bspace) then
44  bspace = .true.
45  ntokens = ntokens + 1
46  tokens(ntokens) = line(start:i-1)
47  end if
48  else
49  if (bspace) start = i
50  bspace = .false.
51  end if
52  end do
53 
54  if (start .ne. len(line)) ntokens = ntokens - 1
55 
56  if (ntokens .ge. 4) then
57  read (tokens(ntokens ),'(f16.8)') value3
58  read (tokens(ntokens-1),'(f16.8)',err=111) value2
59  read (tokens(ntokens-2),'(f16.8)') value1
60  return
61  111 continue
62  read (tokens(ntokens-3),'(f16.8)') value1
63  read (tokens(ntokens-2),'(f16.8)') value2
64  end if
65 
66 
67  return
68  end
subroutine get_values_tester
Definition: get_values.f:4
subroutine get_values(line, value1, value2, value3)
Definition: get_values.f:28