App-SeismicUnixGui
view release on metacpan or search on metacpan
lib/App/SeismicUnixGui/fortran/src/read_option_file.f view on Meta::CPAN
subroutine read_option_file(result,inbound)
implicit none
! read option file with an integer number
character (len=30) :: format1
character (len=255) :: inbound, inbound_locked
integer :: err_message, counter, ready
integer :: result
inbound_locked=trim(inbound)//"_locked"
format1= "(I3)"
! print *, 'read_option_file, inbound is:', trim(inbound)
! in case inbound is of a different, but shorter length in main
! inbound=inbound
! open(unit=28,file=trim(inbound),status='old')
! read (28,format1) result
!! print *, 'read_option_file, result',result
! close (unit=28)
! create a temporary, new, lock file
10 open(status='new',unit=28,file=inbound_locked,iostat=ready)
! print *, 'read_option_file.f,inbound_locked iostat:',ready
! if (ready.eq.17) print *, 'locked, try again'
if (ready.eq.0) then
open(unit=29,file=trim(inbound),status='old',iostat=err_message)
! counter = counter +1
! check whether file opens data file
if (err_message.eq.0) then
read (29,format1) result
! print *, 'read_option_file.f, result',result
close (unit=29)
else
! print *, 'read_option_file.f, err_message=',err_message
! print *, 'read_option_file.f, counter=',counter
! rest a little before trying again
! call sleep(1)
go to 10
end if
else
! print *, 'read_option_file.f,locked, try again,read =',ready
go to 10
end if
! remove lock file
11 close (status='delete',unit=28,iostat=err_message)
if (err_message.ne.0) then
go to 11
! print *, 'read_option_file.f, err_messg=',err_message
end if
end subroutine read_option_file
( run in 0.727 second using v1.01-cache-2.11-cpan-d8267643d1d )