error F0000 : Internal compiler error. readin_func:can’t scan 1st line
I use PVF,windows 13.10
Hi bigwbxu,
The compiler can’t read a temp file for some reason. Does this occur for all compiles or only when compiling a particular file? Have compiles worked in the past?
I’m wondering if your TMP directory (typically C://temp) has filled up or you don’t have read/write permissions. Can you check?
- Mat
Hi Mat,
I have checked my TMP directory,it’s ok.
And ,my compiler worked properly in this file except when I used openacc to accelerate the code.
-bigwbxu
Ok, we’ll need to try and recreate the error here to understand the problem.
Can you please a reproducing example to PGI Customer Service (trs@pgroup.com)?
Thanks,
MAt
hi MAT,
The following is part of my code
subroutine mapped_into_list_yz()
implicit none
integer :: nb_dem, eid
integer :: ny, nz, nx
nb_dem = get_total_number_dem()
head_yz = 0
!$acc kernels
!$acc do independent,private(eid)
do eid = 1, nb_dem
call in_bin( eid, nx=nx,ny = ny, nz = nz) ! into which cell the element is mapped
call push_down( eid, ny, nz) ! push down EID to the list (ny, nz)
end do
!$acc end kernels
return
end subroutine mapped_into_list_yz
And the error point to [ call in_bin( eid, ny = nyi ) ] in the following code
subroutine update_layer( nz )
implicit none
integer, intent(in) :: nz
integer :: next_eid, eid, ny, nyi
real(kind = RK) :: boundz, radius, posi(3)
if(nz == boundary % nz) return
boundz = nz * boundary % DcellZ + boundary % zmin
do ny=1, boundary % ny
eid = head_yz( ny, nz )
if( eid == 0 ) cycle ! switch to next row if meet an empty row.
radius = get_dem_radius(eid)
call obtain_DEM_kinematic(eid, Pos = posi )
next_eid = list_yz(eid)
if( posi(3) + radius >= boundz ) then
call in_bin( eid, ny = nyi ) ! determine the index in y-direction.
call push_down( eid, nyi, nz + 1 )
mask(eid) = 100 ! refresh the mask
end if
eid = next_eid
do
if( eid == 0 ) exit ! encounter the end of row.
radius = get_dem_radius(eid)
call obtain_DEM_kinematic(eid, Pos = posi )
next_eid = list_yz(eid)
if( posi(3) + radius >= boundz ) then
call in_bin( eid, ny = nyi )
call push_down( eid, nyi, nz + 1 )
mask(eid) = 100
end if
eid = next_eid
end do
end do
return
end subroutine update_layer
Hi bigwbxu,
Can you please post or send to PGI Customer Service (trs@pgroup.com) a reproducing example?
I’m unable to reproduce the problem with the first code fragment and the second doesn’t compile since “RK” and “boundary” aren’t defined.
Thanks,
Mat
Hi Mat,
I am sorry I cannot send you the reproducing example.But I find the same problem in the Programming and Compiling forum.
http://www.pgroup.com/userforum/viewtopic.php?t=1072&postdays=0&postorder=asc&start=0
This is the link .
Thanks
bigwbxu
Hi bigwbxu,
Yes, I saw this error in our issue tracker. However, that error was caused during the inline extraction stage and was fixed many years ago. I also checked that the reproducing example for this error is still run in our regression tests and is working as expected. Your issue could be a variation on the same problem or entirely new issue, but without a reproducing example it’s impossible to tell.
- Mat