Hi Mat and other developers,
I’m back. I don’t understand what the following errors mean. I have tried PGI 7.2.5 and 8.0.5. Both report the errors.
8.0.5:
FC Halos_Numbering.F90
/opt/cray/xt-asyncpe/3.0/bin/ftn: INFO: linux target is being used
Lowering Error: bad ast optype in expression [ast=1454,asttype=12,datatype=0]
Lowering Error: bad ast optype in expression [ast=1454,asttype=12,datatype=0]
PGF90-F-0000-Internal compiler error. Errors in Lowering 2 (Halos_Numbering.F90: 111)
PGF90/x86-64 Linux 8.0-5: compilation aborted
gmake[1]: *** [Halos_Numbering.o] Error 1
make: *** [lib/libdfluidity.a] Error 2
7.2.5:
FC Halos_Numbering.F90
/opt/cray/xt-asyncpe/3.0/bin/ftn: INFO: linux target is being used
Lowering Error: bad ast optype in expression [ast=1454,asttype=12,datatype=0]
Lowering Error: bad ast optype in expression [ast=1454,asttype=12,datatype=0]
PGF90-F-0000-Internal compiler error. Errors in Lowering 2 (Halos_Numbering.F90: 111)
PGF90/x86-64 Linux 7.2-5: compilation aborted
gmake[1]: *** [Halos_Numbering.o] Error 1
The code around line 111 in the .F90 is
88 #ifdef HAVE_MPI
89 integer :: communicator, i, ierr, nowned_nodes, nprocs, rank, count, node_count
90 integer, dimension(:), allocatable :: receive_types, requests,&
91 & send_types, statuses
92 logical, dimension(:), allocatable :: local_nodes
93
94 ewrite(1,*) “Creating universal numbering for a general order halo”
95
96 nprocs = halo_proc_count(halo)
97 communicator = halo_communicator(halo)
98 nowned_nodes = halo_nowned_nodes(halo)
99
100 ! Calculate the base universal node number for the owned nodes. The i th
101 ! owned node then has universal node number equal to the base + i.
102 call mpi_scan(nowned_nodes, halo%owned_nodes_unn_base, 1, getpinteger(), MPI_SUM, communicator, ierr)
103 assert(ierr == MPI_SUCCESS)
104 halo%owned_nodes_unn_base = halo%owned_nodes_unn_base - nowned_nodes
105
106 node_count = nowned_nodes + halo_all_receives_count(halo)
107
108 allocate(local_nodes(node_count))
109 local_nodes=.true.
110 assert(max_halo_receive_node(halo) <= node_count)
111 do i = 1, nprocs
112 local_nodes(halo_receives(halo, i)) = .false.
113 end do
114
115 allocate(halo%gnn_to_unn(node_count))
116 halo%gnn_to_unn=-1
117
118 count=halo%owned_nodes_unn_base
The error may refer to somewhere nearby. Is there any clue?
This is a big package. I can pass Halos_Numbering.F90 or the whole package to you.
Thanks.