From 6d202472ddd4e7e176ef7e359f0894f01c7f3dcf Mon Sep 17 00:00:00 2001 From: hgoelzer Date: Sat, 16 May 2026 17:59:57 +0200 Subject: [PATCH 1/2] Fix wrong type bug in parallel --- libglimmer/parallel_mpi.F90 | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/libglimmer/parallel_mpi.F90 b/libglimmer/parallel_mpi.F90 index 39a06994..b5e379cc 100644 --- a/libglimmer/parallel_mpi.F90 +++ b/libglimmer/parallel_mpi.F90 @@ -6737,20 +6737,20 @@ subroutine parallel_halo_integer_3d(a, parallel) endif ! unstaggered grid - call mpi_irecv(wrecv,size(wrecv),mpi_real8,west,west,& + call mpi_irecv(wrecv,size(wrecv),mpi_integer,west,west,& comm,wrequest,ierror) - call mpi_irecv(erecv,size(erecv),mpi_real8,east,east,& + call mpi_irecv(erecv,size(erecv),mpi_integer,east,east,& comm,erequest,ierror) - call mpi_irecv(srecv,size(srecv),mpi_real8,south,south,& + call mpi_irecv(srecv,size(srecv),mpi_integer,south,south,& comm,srequest,ierror) - call mpi_irecv(nrecv,size(nrecv),mpi_real8,north,north,& + call mpi_irecv(nrecv,size(nrecv),mpi_integer,north,north,& comm,nrequest,ierror) esend(:,:,:) = & a(:,local_ewn-uhalo-lhalo+1:local_ewn-uhalo,1+lhalo:local_nsn-uhalo) - call mpi_send(esend,size(esend),mpi_real8,east,this_rank,comm,ierror) + call mpi_send(esend,size(esend),mpi_integer,east,this_rank,comm,ierror) wsend(:,:,:) = a(:,1+lhalo:1+lhalo+uhalo-1,1+lhalo:local_nsn-uhalo) - call mpi_send(wsend,size(wsend),mpi_real8,west,this_rank,comm,ierror) + call mpi_send(wsend,size(wsend),mpi_integer,west,this_rank,comm,ierror) call mpi_wait(wrequest,mpi_status_ignore,ierror) a(:,:lhalo,1+lhalo:local_nsn-uhalo) = wrecv(:,:,:) @@ -6758,9 +6758,9 @@ subroutine parallel_halo_integer_3d(a, parallel) a(:,local_ewn-uhalo+1:,1+lhalo:local_nsn-uhalo) = erecv(:,:,:) nsend(:,:,:) = a(:,:,local_nsn-uhalo-lhalo+1:local_nsn-uhalo) - call mpi_send(nsend,size(nsend),mpi_real8,north,this_rank,comm,ierror) + call mpi_send(nsend,size(nsend),mpi_integer,north,this_rank,comm,ierror) ssend(:,:,:) = a(:,:,1+lhalo:1+lhalo+uhalo-1) - call mpi_send(ssend,size(ssend),mpi_real8,south,this_rank,comm,ierror) + call mpi_send(ssend,size(ssend),mpi_integer,south,this_rank,comm,ierror) call mpi_wait(srequest,mpi_status_ignore,ierror) a(:,:,:lhalo) = srecv(:,:,:) @@ -7267,20 +7267,20 @@ subroutine parallel_halo_real8_3d(a, parallel) endif ! unstaggered grid - call mpi_irecv(wrecv,size(wrecv),mpi_real8,west,west,& + call mpi_irecv(wrecv,size(wrecv),mpi_integer,west,west,& comm,wrequest,ierror) - call mpi_irecv(erecv,size(erecv),mpi_real8,east,east,& + call mpi_irecv(erecv,size(erecv),mpi_integer,east,east,& comm,erequest,ierror) - call mpi_irecv(srecv,size(srecv),mpi_real8,south,south,& + call mpi_irecv(srecv,size(srecv),mpi_integer,south,south,& comm,srequest,ierror) - call mpi_irecv(nrecv,size(nrecv),mpi_real8,north,north,& + call mpi_irecv(nrecv,size(nrecv),mpi_integer,north,north,& comm,nrequest,ierror) esend(:,:,:) = & a(:,local_ewn-uhalo-lhalo+1:local_ewn-uhalo,1+lhalo:local_nsn-uhalo) - call mpi_send(esend,size(esend),mpi_real8,east,this_rank,comm,ierror) + call mpi_send(esend,size(esend),mpi_integer,east,this_rank,comm,ierror) wsend(:,:,:) = a(:,1+lhalo:1+lhalo+uhalo-1,1+lhalo:local_nsn-uhalo) - call mpi_send(wsend,size(wsend),mpi_real8,west,this_rank,comm,ierror) + call mpi_send(wsend,size(wsend),mpi_integer,west,this_rank,comm,ierror) call mpi_wait(wrequest,mpi_status_ignore,ierror) a(:,:lhalo,1+lhalo:local_nsn-uhalo) = wrecv(:,:,:) @@ -7288,9 +7288,9 @@ subroutine parallel_halo_real8_3d(a, parallel) a(:,local_ewn-uhalo+1:,1+lhalo:local_nsn-uhalo) = erecv(:,:,:) nsend(:,:,:) = a(:,:,local_nsn-uhalo-lhalo+1:local_nsn-uhalo) - call mpi_send(nsend,size(nsend),mpi_real8,north,this_rank,comm,ierror) + call mpi_send(nsend,size(nsend),mpi_integer,north,this_rank,comm,ierror) ssend(:,:,:) = a(:,:,1+lhalo:1+lhalo+uhalo-1) - call mpi_send(ssend,size(ssend),mpi_real8,south,this_rank,comm,ierror) + call mpi_send(ssend,size(ssend),mpi_integer,south,this_rank,comm,ierror) call mpi_wait(srequest,mpi_status_ignore,ierror) a(:,:,:lhalo) = srecv(:,:,:) From f52f7311730f1ce831f62e7f80eb3d8077cd9a7e Mon Sep 17 00:00:00 2001 From: hgoelzer Date: Sat, 16 May 2026 18:14:35 +0200 Subject: [PATCH 2/2] completing the bug fix --- libglimmer/parallel_mpi.F90 | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/libglimmer/parallel_mpi.F90 b/libglimmer/parallel_mpi.F90 index b5e379cc..71411058 100644 --- a/libglimmer/parallel_mpi.F90 +++ b/libglimmer/parallel_mpi.F90 @@ -7267,20 +7267,20 @@ subroutine parallel_halo_real8_3d(a, parallel) endif ! unstaggered grid - call mpi_irecv(wrecv,size(wrecv),mpi_integer,west,west,& + call mpi_irecv(wrecv,size(wrecv),mpi_real8,west,west,& comm,wrequest,ierror) - call mpi_irecv(erecv,size(erecv),mpi_integer,east,east,& + call mpi_irecv(erecv,size(erecv),mpi_real8,east,east,& comm,erequest,ierror) - call mpi_irecv(srecv,size(srecv),mpi_integer,south,south,& + call mpi_irecv(srecv,size(srecv),mpi_real8,south,south,& comm,srequest,ierror) - call mpi_irecv(nrecv,size(nrecv),mpi_integer,north,north,& + call mpi_irecv(nrecv,size(nrecv),mpi_real8,north,north,& comm,nrequest,ierror) esend(:,:,:) = & a(:,local_ewn-uhalo-lhalo+1:local_ewn-uhalo,1+lhalo:local_nsn-uhalo) - call mpi_send(esend,size(esend),mpi_integer,east,this_rank,comm,ierror) + call mpi_send(esend,size(esend),mpi_real8,east,this_rank,comm,ierror) wsend(:,:,:) = a(:,1+lhalo:1+lhalo+uhalo-1,1+lhalo:local_nsn-uhalo) - call mpi_send(wsend,size(wsend),mpi_integer,west,this_rank,comm,ierror) + call mpi_send(wsend,size(wsend),mpi_real8,west,this_rank,comm,ierror) call mpi_wait(wrequest,mpi_status_ignore,ierror) a(:,:lhalo,1+lhalo:local_nsn-uhalo) = wrecv(:,:,:) @@ -7288,9 +7288,9 @@ subroutine parallel_halo_real8_3d(a, parallel) a(:,local_ewn-uhalo+1:,1+lhalo:local_nsn-uhalo) = erecv(:,:,:) nsend(:,:,:) = a(:,:,local_nsn-uhalo-lhalo+1:local_nsn-uhalo) - call mpi_send(nsend,size(nsend),mpi_integer,north,this_rank,comm,ierror) + call mpi_send(nsend,size(nsend),mpi_real8,north,this_rank,comm,ierror) ssend(:,:,:) = a(:,:,1+lhalo:1+lhalo+uhalo-1) - call mpi_send(ssend,size(ssend),mpi_integer,south,this_rank,comm,ierror) + call mpi_send(ssend,size(ssend),mpi_real8,south,this_rank,comm,ierror) call mpi_wait(srequest,mpi_status_ignore,ierror) a(:,:,:lhalo) = srecv(:,:,:)