PoMaIIIka
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору [more] [more] В данном случае - да, ошибка является воспроизводимой! повторяется все время в одном и том же месте! Я не могу прогнать отладчиком, т.к. работаю "без оболочки". На сервере под линуском... Кстати, данная ошибка появляется после вот этой вот подпрограммы: Код: subroutine creation_the_LOCAL_list_of_interface_triangles(number_of_partitions, list_of_meshes, list_of_interface_triangles, list_of_edges) implicit none !!! input data integer :: number_of_partitions type(maillage),dimension(:),pointer :: list_of_meshes integer,dimension(:,:),pointer :: list_of_interface_triangles type(edge),dimension(:),pointer :: list_of_edges !!! we need that integer :: i,j,k integer :: l integer :: number_of_triangles_here integer :: number_of_triangles ! number of INTERFACE triangles integer :: local_edge integer,dimension(:),pointer :: test_array1 number_of_triangles = size(list_of_interface_triangles(:,1)) print*," allocation memory" do i = 1,number_of_partitions number_of_triangles_here = 0 do j = 1,number_of_triangles if(list_of_interface_triangles(j,4).eq.i .or. list_of_interface_triangles(j,5).eq.i) then number_of_triangles_here = number_of_triangles_here + 1 end if end do allocate(list_of_meshes(i)%neibor_for_this_triangle(1:number_of_triangles_here)) allocate(list_of_meshes(i)%interface_triangles(1:number_of_triangles_here,1:3)) end do print*," done. . ." do i = 1,number_of_partitions print*," Partition",i,"under consideration" number_of_triangles_here = 0 do j = 1,number_of_triangles if(list_of_interface_triangles(j,4) .eq. i) then number_of_triangles_here = number_of_triangles_here + 1 do k = 1,3 ! because there are 3 edges in TRIANGLE-element local_edge = 0 do l = 1,size(list_of_edges(list_of_interface_triangles(j,k))%global_to_local_domain) if(list_of_edges(list_of_interface_triangles(j,k))%domain_number(l) .eq. i) then local_edge = list_of_edges(list_of_interface_triangles(j,k))%global_to_local_domain(l) end if end do if(local_edge .eq. 0) stop"Error 4003" list_of_meshes(i)%interface_triangles(j,k) = local_edge end do list_of_meshes(i)%neibor_for_this_triangle(j) = list_of_interface_triangles(j,5) end if if(list_of_interface_triangles(j,5) .eq. i) then number_of_triangles_here = number_of_triangles_here + 1 do k = 1,3 ! because there are 3 edges in TRIANGLE-element local_edge = 0 do l = 1,size(list_of_edges(list_of_interface_triangles(j,k))%global_to_local_domain) if(list_of_edges(list_of_interface_triangles(j,k))%domain_number(l) .eq. i) then local_edge = list_of_edges(list_of_interface_triangles(j,k))%global_to_local_domain(l) end if end do if(local_edge .eq. 0) stop"Error 4005" list_of_meshes(i)%interface_triangles(j,k) = local_edge end do list_of_meshes(i)%neibor_for_this_triangle(j) = list_of_interface_triangles(j,4) end if end do end do print*,"Before error" allocate(test_array1(1:5)) print*,"This message will never print!" end subroutine creation_the_LOCAL_list_of_interface_triangles | | Всего записей: 3 | Зарегистр. 18-01-2013 | Отправлено: 18:40 18-01-2013 | Исправлено: PoMaIIIka, 18:41 18-01-2013 |
|